# Table of Contents - [Getting Started | BaklavaJS](#getting-started-baklavajs) - [BaklavaJS](#baklavajs) - [Reference - BaklavaJS](#reference-baklavajs) - [Forward Engine | BaklavaJS](#forward-engine-baklavajs) - [Node Lifecycle | BaklavaJS](#node-lifecycle-baklavajs) - [Core Concepts | BaklavaJS](#core-concepts-baklavajs) - [Migrating from Baklava V1 | BaklavaJS](#migrating-from-baklava-v1-baklavajs) - [Dependency Engine | BaklavaJS](#dependency-engine-baklavajs) - [Browser Build | BaklavaJS](#browser-build-baklavajs) - [Saving and Loading | BaklavaJS](#saving-and-loading-baklavajs) - [Registering Nodes | BaklavaJS](#registering-nodes-baklavajs) - [Pre-defined interfaces | BaklavaJS](#pre-defined-interfaces-baklavajs) - [Graph Execution | BaklavaJS](#graph-execution-baklavajs) - [Event System | BaklavaJS](#event-system-baklavajs) - [Interface Types | BaklavaJS](#interface-types-baklavajs) - [Toolbar | BaklavaJS](#toolbar-baklavajs) - [Subgraphs | BaklavaJS](#subgraphs-baklavajs) - [Commands | BaklavaJS](#commands-baklavajs) - [Dynamic Nodes | BaklavaJS](#dynamic-nodes-baklavajs) - [Sidebar | BaklavaJS](#sidebar-baklavajs) - [Creating Nodes | BaklavaJS](#creating-nodes-baklavajs) - [Setup | BaklavaJS](#setup-baklavajs) - [Node Interfaces | BaklavaJS](#node-interfaces-baklavajs) - [Customization | BaklavaJS](#customization-baklavajs) - [Reference - BaklavaJS](#reference-baklavajs) - [NodeInterface | Reference - BaklavaJS](#nodeinterface-reference-baklavajs) - [@baklavajs/engine | Reference - BaklavaJS](#-baklavajs-engine-reference-baklavajs) - [@baklavajs/events | Reference - BaklavaJS](#-baklavajs-events-reference-baklavajs) - [@baklavajs/interface-types | Reference - BaklavaJS](#-baklavajs-interface-types-reference-baklavajs) - [@baklavajs/renderer-vue | Reference - BaklavaJS](#-baklavajs-renderer-vue-reference-baklavajs) - [@baklavajs/core | Reference - BaklavaJS](#-baklavajs-core-reference-baklavajs) - [AbstractNode | Reference - BaklavaJS](#abstractnode-reference-baklavajs) - [GraphTemplate | Reference - BaklavaJS](#graphtemplate-reference-baklavajs) - [defineDynamicNode | Reference - BaklavaJS](#definedynamicnode-reference-baklavajs) - [Connection | Reference - BaklavaJS](#connection-reference-baklavajs) - [INodeDefinition | Reference - BaklavaJS](#inodedefinition-reference-baklavajs) - [EngineStatus | Reference - BaklavaJS](#enginestatus-reference-baklavajs) - [CycleError | Reference - BaklavaJS](#cycleerror-reference-baklavajs) - [AfterNodeCalculationEventData | Reference - BaklavaJS](#afternodecalculationeventdata-reference-baklavajs) - [BeforeNodeCalculationEventData | Reference - BaklavaJS](#beforenodecalculationeventdata-reference-baklavajs) - [BaseEngine | Reference - BaklavaJS](#baseengine-reference-baklavajs) - [ITopologicalSortingResult | Reference - BaklavaJS](#itopologicalsortingresult-reference-baklavajs) - [allowMultipleConnections | Reference - BaklavaJS](#allowmultipleconnections-reference-baklavajs) - [DependencyEngine | Reference - BaklavaJS](#dependencyengine-reference-baklavajs) - [applyResult | Reference - BaklavaJS](#applyresult-reference-baklavajs) - [containsCycle | Reference - BaklavaJS](#containscycle-reference-baklavajs) - [sortTopologically | Reference - BaklavaJS](#sorttopologically-reference-baklavajs) - [DummyConnection | Reference - BaklavaJS](#dummyconnection-reference-baklavajs) - [CheckConnectionHookResult | Reference - BaklavaJS](#checkconnectionhookresult-reference-baklavajs) - [DynamicNode | Reference - BaklavaJS](#dynamicnode-reference-baklavajs) - [CalculationContext | Reference - BaklavaJS](#calculationcontext-reference-baklavajs) - [DynamicNodeUpdateResult | Reference - BaklavaJS](#dynamicnodeupdateresult-reference-baklavajs) - [IAddConnectionEventData | Reference - BaklavaJS](#iaddconnectioneventdata-reference-baklavajs) - [IConnectionState | Reference - BaklavaJS](#iconnectionstate-reference-baklavajs) - [IAddNodeTypeEventData | Reference - BaklavaJS](#iaddnodetypeeventdata-reference-baklavajs) - [GraphInputNode | Reference - BaklavaJS](#graphinputnode-reference-baklavajs) - [IConnection | Reference - BaklavaJS](#iconnection-reference-baklavajs) - [IEditorState | Reference - BaklavaJS](#ieditorstate-reference-baklavajs) - [GraphOutputNode | Reference - BaklavaJS](#graphoutputnode-reference-baklavajs) - [IDynamicNodeDefinition | Reference - BaklavaJS](#idynamicnodedefinition-reference-baklavajs) - [Node | Reference - BaklavaJS](#node-reference-baklavajs) - [Editor | Reference - BaklavaJS](#editor-reference-baklavajs) - [Graph | Reference - BaklavaJS](#graph-reference-baklavajs) - [IEngine | Reference - BaklavaJS](#iengine-reference-baklavajs) - [IGraphInterface | Reference - BaklavaJS](#igraphinterface-reference-baklavajs) - [IGraphNodeState | Reference - BaklavaJS](#igraphnodestate-reference-baklavajs) - [IGraphNode | Reference - BaklavaJS](#igraphnode-reference-baklavajs) - [IGraphState | Reference - BaklavaJS](#igraphstate-reference-baklavajs) - [IGraphTemplateState | Reference - BaklavaJS](#igraphtemplatestate-reference-baklavajs) - [INodeInterfaceState | Reference - BaklavaJS](#inodeinterfacestate-reference-baklavajs) - [INodeState | Reference - BaklavaJS](#inodestate-reference-baklavajs) - [INodeTypeInformation | Reference - BaklavaJS](#inodetypeinformation-reference-baklavajs) - [INodeUpdateEventData | Reference - BaklavaJS](#inodeupdateeventdata-reference-baklavajs) - [IRegisterNodeTypeOptions | Reference - BaklavaJS](#iregisternodetypeoptions-reference-baklavajs) - [AbstractNodeConstructor | Reference - BaklavaJS](#abstractnodeconstructor-reference-baklavajs) - [CalculateFunction | Reference - BaklavaJS](#calculatefunction-reference-baklavajs) - [CalculateFunctionReturnType | Reference - BaklavaJS](#calculatefunctionreturntype-reference-baklavajs) - [CalculationResult | Reference - BaklavaJS](#calculationresult-reference-baklavajs) - [CheckConnectionResult | Reference - BaklavaJS](#checkconnectionresult-reference-baklavajs) - [DynamicNodeDefinition | Reference - BaklavaJS](#dynamicnodedefinition-reference-baklavajs) - [GraphOutputNodeState | Reference - BaklavaJS](#graphoutputnodestate-reference-baklavajs) - [GraphInputNodeState | Reference - BaklavaJS](#graphinputnodestate-reference-baklavajs) - [InterfaceFactory | Reference - BaklavaJS](#interfacefactory-reference-baklavajs) - [NodeConstructor | Reference - BaklavaJS](#nodeconstructor-reference-baklavajs) - [NodeInstanceOf | Reference - BaklavaJS](#nodeinstanceof-reference-baklavajs) - [NodeInterfaceDefinition | Reference - BaklavaJS](#nodeinterfacedefinition-reference-baklavajs) - [NodeInterfaceDefinitionStates | Reference - BaklavaJS](#nodeinterfacedefinitionstates-reference-baklavajs) - [NodeInterfaceFactory | Reference - BaklavaJS](#nodeinterfacefactory-reference-baklavajs) - [NodeInterfaceMiddleware | Reference - BaklavaJS](#nodeinterfacemiddleware-reference-baklavajs) - [GRAPH_INPUT_NODE_TYPE | Reference - BaklavaJS](#graph-input-node-type-reference-baklavajs) - [GRAPH_NODE_TYPE_PREFIX | Reference - BaklavaJS](#graph-node-type-prefix-reference-baklavajs) - [GRAPH_OUTPUT_NODE_TYPE | Reference - BaklavaJS](#graph-output-node-type-reference-baklavajs) - [createGraphNodeType | Reference - BaklavaJS](#creategraphnodetype-reference-baklavajs) - [defineNode | Reference - BaklavaJS](#definenode-reference-baklavajs) - [getGraphNodeTypeString | Reference - BaklavaJS](#getgraphnodetypestring-reference-baklavajs) - [BaklavaEvent | Reference - BaklavaJS](#baklavaevent-reference-baklavajs) - [DynamicSequentialHook | Reference - BaklavaJS](#dynamicsequentialhook-reference-baklavajs) - [ParallelHook | Reference - BaklavaJS](#parallelhook-reference-baklavajs) - [PreventableBaklavaEvent | Reference - BaklavaJS](#preventablebaklavaevent-reference-baklavajs) - [SequentialHook | Reference - BaklavaJS](#sequentialhook-reference-baklavajs) - [IBaklavaEventEmitter | Reference - BaklavaJS](#ibaklavaeventemitter-reference-baklavajs) - [IBaklavaTapable | Reference - BaklavaJS](#ibaklavatapable-reference-baklavajs) - [ISubscribableProxy | Reference - BaklavaJS](#isubscribableproxy-reference-baklavajs) - [Subscribable | Reference - BaklavaJS](#subscribable-reference-baklavajs) - [EventListener | Reference - BaklavaJS](#eventlistener-reference-baklavajs) - [GetListenersFn | Reference - BaklavaJS](#getlistenersfn-reference-baklavajs) - [HookTap | Reference - BaklavaJS](#hooktap-reference-baklavajs) - [PreventableEventListener | Reference - BaklavaJS](#preventableeventlistener-reference-baklavajs) - [TokenType | Reference - BaklavaJS](#tokentype-reference-baklavajs) - [createProxy | Reference - BaklavaJS](#createproxy-reference-baklavajs) - [BaklavaInterfaceTypesOptions | Reference - BaklavaJS](#baklavainterfacetypesoptions-reference-baklavajs) - [IConversion | Reference - BaklavaJS](#iconversion-reference-baklavajs) - [getType | Reference - BaklavaJS](#gettype-reference-baklavajs) - [NodeInterfaceType | Reference - BaklavaJS](#nodeinterfacetype-reference-baklavajs) - [setType | Reference - BaklavaJS](#settype-reference-baklavajs) - [BaklavaInterfaceTypes | Reference - BaklavaJS](#baklavainterfacetypes-reference-baklavajs) - [setTypeForMultipleConnections | Reference - BaklavaJS](#settypeformultipleconnections-reference-baklavajs) - [StartSelectionBoxCommand | Reference - BaklavaJS](#startselectionboxcommand-reference-baklavajs) - [START_SELECTION_BOX_COMMAND | Reference - BaklavaJS](#start-selection-box-command-reference-baklavajs) - [Components | Reference - BaklavaJS](#components-reference-baklavajs) - [TemporaryConnectionState | Reference - BaklavaJS](#temporaryconnectionstate-reference-baklavajs) - [ButtonInterface | Reference - BaklavaJS](#buttoninterface-reference-baklavajs) - [CheckboxInterface | Reference - BaklavaJS](#checkboxinterface-reference-baklavajs) - [IntegerInterface | Reference - BaklavaJS](#integerinterface-reference-baklavajs) - [NumberInterface | Reference - BaklavaJS](#numberinterface-reference-baklavajs) - [SelectInterface | Reference - BaklavaJS](#selectinterface-reference-baklavajs) - [SliderInterface | Reference - BaklavaJS](#sliderinterface-reference-baklavajs) - [SubgraphInputNode | Reference - BaklavaJS](#subgraphinputnode-reference-baklavajs) - [TextareaInputInterface | Reference - BaklavaJS](#textareainputinterface-reference-baklavajs) - [IAdvancedSelectInterfaceItem | Reference - BaklavaJS](#iadvancedselectinterfaceitem-reference-baklavajs) - [TextInputInterface | Reference - BaklavaJS](#textinputinterface-reference-baklavajs) - [IClipboard | Reference - BaklavaJS](#iclipboard-reference-baklavajs) - [TextInterface | Reference - BaklavaJS](#textinterface-reference-baklavajs) - [SubgraphOutputNode | Reference - BaklavaJS](#subgraphoutputnode-reference-baklavajs) - [ICommand | Reference - BaklavaJS](#icommand-reference-baklavajs) - [IResolvedDomElements | Reference - BaklavaJS](#iresolveddomelements-reference-baklavajs) - [IHistory | Reference - BaklavaJS](#ihistory-reference-baklavajs) - [ISubgraphInterfaceNode | Reference - BaklavaJS](#isubgraphinterfacenode-reference-baklavajs) - [ICommandHandler | Reference - BaklavaJS](#icommandhandler-reference-baklavajs) - [ITemporaryConnectionHandler | Reference - BaklavaJS](#itemporaryconnectionhandler-reference-baklavajs) - [ITemporaryConnection | Reference - BaklavaJS](#itemporaryconnection-reference-baklavajs) - [IBaklavaViewModel | Reference - BaklavaJS](#ibaklavaviewmodel-reference-baklavajs) - [IViewNodeState | Reference - BaklavaJS](#iviewnodestate-reference-baklavajs) - [SetViewNodePropertiesSettings | Reference - BaklavaJS](#setviewnodepropertiessettings-reference-baklavajs) - [ToolbarCommand | Reference - BaklavaJS](#toolbarcommand-reference-baklavajs) - [Commands | Reference - BaklavaJS](#commands-reference-baklavajs) - [IViewSettings | Reference - BaklavaJS](#iviewsettings-reference-baklavajs) - [ClearClipboardCommand | Reference - BaklavaJS](#clearclipboardcommand-reference-baklavajs) - [ClearHistoryCommand | Reference - BaklavaJS](#clearhistorycommand-reference-baklavajs) - [CommitTransactionCommand | Reference - BaklavaJS](#committransactioncommand-reference-baklavajs) - [ContextMenuItem | Reference - BaklavaJS](#contextmenuitem-reference-baklavajs) - [CopyCommand | Reference - BaklavaJS](#copycommand-reference-baklavajs) - [CreateSubgraphCommand | Reference - BaklavaJS](#createsubgraphcommand-reference-baklavajs) - [DeleteNodesCommand | Reference - BaklavaJS](#deletenodescommand-reference-baklavajs) - [InputNode | Reference - BaklavaJS](#inputnode-reference-baklavajs) - [OpenSidebarCommand | Reference - BaklavaJS](#opensidebarcommand-reference-baklavajs) - [OutputNode | Reference - BaklavaJS](#outputnode-reference-baklavajs) - [PasteCommand | Reference - BaklavaJS](#pastecommand-reference-baklavajs) - [RedoCommand | Reference - BaklavaJS](#redocommand-reference-baklavajs) - [SaveSubgraphCommand | Reference - BaklavaJS](#savesubgraphcommand-reference-baklavajs) - [SelectInterfaceItem | Reference - BaklavaJS](#selectinterfaceitem-reference-baklavajs) - [StartTransactionCommand | Reference - BaklavaJS](#starttransactioncommand-reference-baklavajs) - [SwitchGraph | Reference - BaklavaJS](#switchgraph-reference-baklavajs) - [SwitchToMainGraphCommand | Reference - BaklavaJS](#switchtomaingraphcommand-reference-baklavajs) - [UndoCommand | Reference - BaklavaJS](#undocommand-reference-baklavajs) - [ZoomToFitGraphCommand | Reference - BaklavaJS](#zoomtofitgraphcommand-reference-baklavajs) - [ZoomToFitNodesCommand | Reference - BaklavaJS](#zoomtofitnodescommand-reference-baklavajs) - [ZoomToFitRectCommand | Reference - BaklavaJS](#zoomtofitrectcommand-reference-baklavajs) - [CLEAR_CLIPBOARD_COMMAND | Reference - BaklavaJS](#clear-clipboard-command-reference-baklavajs) - [CLEAR_HISTORY_COMMAND | Reference - BaklavaJS](#clear-history-command-reference-baklavajs) - [COMMIT_TRANSACTION_COMMAND | Reference - BaklavaJS](#commit-transaction-command-reference-baklavajs) - [COPY_COMMAND | Reference - BaklavaJS](#copy-command-reference-baklavajs) - [CREATE_SUBGRAPH_COMMAND | Reference - BaklavaJS](#create-subgraph-command-reference-baklavajs) - [DEFAULT_SETTINGS | Reference - BaklavaJS](#default-settings-reference-baklavajs) - [DEFAULT_TOOLBAR_SUBGRAPH_COMMANDS | Reference - BaklavaJS](#default-toolbar-subgraph-commands-reference-baklavajs) - [DEFAULT_TOOLBAR_COMMANDS | Reference - BaklavaJS](#default-toolbar-commands-reference-baklavajs) - [DELETE_NODES_COMMAND | Reference - BaklavaJS](#delete-nodes-command-reference-baklavajs) - [EditorComponent | Reference - BaklavaJS](#editorcomponent-reference-baklavajs) - [OPEN_SIDEBAR_COMMAND | Reference - BaklavaJS](#open-sidebar-command-reference-baklavajs) - [PASTE_COMMAND | Reference - BaklavaJS](#paste-command-reference-baklavajs) - [REDO_COMMAND | Reference - BaklavaJS](#redo-command-reference-baklavajs) - [SAVE_SUBGRAPH_COMMAND | Reference - BaklavaJS](#save-subgraph-command-reference-baklavajs) - [START_TRANSACTION_COMMAND | Reference - BaklavaJS](#start-transaction-command-reference-baklavajs) - [SUBGRAPH_INPUT_NODE_TYPE | Reference - BaklavaJS](#subgraph-input-node-type-reference-baklavajs) - [SUBGRAPH_OUTPUT_NODE_TYPE | Reference - BaklavaJS](#subgraph-output-node-type-reference-baklavajs) - [SWITCH_TO_MAIN_GRAPH_COMMAND | Reference - BaklavaJS](#switch-to-main-graph-command-reference-baklavajs) - [TOOLBAR_COMMANDS | Reference - BaklavaJS](#toolbar-commands-reference-baklavajs) - [TOOLBAR_SUBGRAPH_COMMANDS | Reference - BaklavaJS](#toolbar-subgraph-commands-reference-baklavajs) - [UNDO_COMMAND | Reference - BaklavaJS](#undo-command-reference-baklavajs) - [useCommandHandler | Reference - BaklavaJS](#usecommandhandler-reference-baklavajs) - [ZOOM_TO_FIT_GRAPH_COMMAND | Reference - BaklavaJS](#zoom-to-fit-graph-command-reference-baklavajs) - [ZOOM_TO_FIT_NODES_COMMAND | Reference - BaklavaJS](#zoom-to-fit-nodes-command-reference-baklavajs) - [ZOOM_TO_FIT_RECT_COMMAND | Reference - BaklavaJS](#zoom-to-fit-rect-command-reference-baklavajs) - [displayInSidebar | Reference - BaklavaJS](#displayinsidebar-reference-baklavajs) - [getDomElementOfNode | Reference - BaklavaJS](#getdomelementofnode-reference-baklavajs) - [getDomElements | Reference - BaklavaJS](#getdomelements-reference-baklavajs) - [getNodePosition | Reference - BaklavaJS](#getnodeposition-reference-baklavajs) - [getPortCoordinates | Reference - BaklavaJS](#getportcoordinates-reference-baklavajs) - [isInputElement | Reference - BaklavaJS](#isinputelement-reference-baklavajs) - [providePlugin | Reference - BaklavaJS](#provideplugin-reference-baklavajs) - [provideTemporaryConnection | Reference - BaklavaJS](#providetemporaryconnection-reference-baklavajs) - [registerCreateSubgraphCommand | Reference - BaklavaJS](#registercreatesubgraphcommand-reference-baklavajs) - [registerDeleteNodesCommand | Reference - BaklavaJS](#registerdeletenodescommand-reference-baklavajs) - [registerGraphCommands | Reference - BaklavaJS](#registergraphcommands-reference-baklavajs) - [registerSaveSubgraphCommand | Reference - BaklavaJS](#registersavesubgraphcommand-reference-baklavajs) - [registerSidebarCommands | Reference - BaklavaJS](#registersidebarcommands-reference-baklavajs) - [registerSwitchToMainGraphCommand | Reference - BaklavaJS](#registerswitchtomaingraphcommand-reference-baklavajs) - [registerZoomToFitCommands | Reference - BaklavaJS](#registerzoomtofitcommands-reference-baklavajs) - [setNodePosition | Reference - BaklavaJS](#setnodeposition-reference-baklavajs) - [setViewNodeProperties | Reference - BaklavaJS](#setviewnodeproperties-reference-baklavajs) - [useBaklava | Reference - BaklavaJS](#usebaklava-reference-baklavajs) - [useClipboard | Reference - BaklavaJS](#useclipboard-reference-baklavajs) - [useDragMove | Reference - BaklavaJS](#usedragmove-reference-baklavajs) - [useGraph | Reference - BaklavaJS](#usegraph-reference-baklavajs) - [useHistory | Reference - BaklavaJS](#usehistory-reference-baklavajs) - [useNodeCategories | Reference - BaklavaJS](#usenodecategories-reference-baklavajs) - [useSwitchGraph | Reference - BaklavaJS](#useswitchgraph-reference-baklavajs) - [useTemporaryConnection | Reference - BaklavaJS](#usetemporaryconnection-reference-baklavajs) - [useTransform | Reference - BaklavaJS](#usetransform-reference-baklavajs) - [useViewModel | Reference - BaklavaJS](#useviewmodel-reference-baklavajs) --- # Getting Started | BaklavaJS [Skip to content](https://baklava.tech/getting-started.html#VPContent) Return to top Getting Started [​](https://baklava.tech/getting-started.html#getting-started) =============================================================================== Installation [​](https://baklava.tech/getting-started.html#installation) ------------------------------------------------------------------------- TIP While not recommended, it is possible to use BaklavaJS standalone; without Vue and any build tools. For more information see [Browser Build](https://baklava.tech/browser-build.html) BaklavaJS is split into multiple packages: * `@baklavajs/core`: Contains all the core elements that Baklava needs to work * `@baklavajs/engine`: The engine is used to execute the graph * `@baklavajs/interface-types`: Adds the functionality to assign types to interfaces, which allows only certain connections to be created * `@baklavajs/renderer-vue`: Used to display and edit the graph in a Vue 3 application You can install the packages individually or use the combined `baklavajs` package: bash # npm npm i baklavajs # yarn yarn add baklavajs # pnpm pnpm add baklavajs Now you can use Baklava in your Vue application: vue Creating your first node [​](https://baklava.tech/getting-started.html#creating-your-first-node) ------------------------------------------------------------------------------------------------- When initializing Baklava, you can't see any nodes in the palette. This is because you haven't registered any nodes yet. To do this, we first need to create a node type, which is essentially a template for the node instances. In object-oriented programming, the node type is similar to a class and the node instances are instances of that class. To create a node you can use the `defineNode()` method: ts // file: MyNode.ts import { defineNode, NodeInterface, NumberInterface, SelectInterface } from "baklavajs"; export default defineNode({ type: "MyNode", inputs: { number1: () => new NumberInterface("Number", 1), number2: () => new NumberInterface("Number", 10), operation: () => new SelectInterface("Operation", "Add", ["Add", "Subtract"]).setPort(false), }, outputs: { output: () => new NodeInterface("Output", 0), }, }); Now register the node type so the editor knows it exists: ts import MyNode from "./MyNode"; // this code is from the setup function above const baklava = useBaklava(); baklava.editor.registerNodeType(MyNode); return { baklava }; That's it! You should now be able to create nodes and connect them. --- # BaklavaJS [Skip to content](https://baklava.tech/#VPContent) BaklavaJS ========= Graph / node editor in the browser using VueJS [Get Started](https://baklava.tech/getting-started.html) [View on GitHub](https://github.com/newcat/baklavajs) 🏗️ Modular ------- BaklavaJS puts a strong emphasis on extensibility by leveraging a versatile plugin system ![](https://baklava.tech/ts.svg) Type-Safe --------- To guarantee type safety, the entirety of the BaklavaJS ecosystem is written in TypeScript 🛠️ Packages -------- A single package for the core functionality; any other functionality can be added a-la-carte by installing the desired plugins --- # Reference - BaklavaJS Reference - BaklavaJS ===================== BaklavaJS[](https://baklava.tech/api/#baklavajs) ================================================= ![build-status](https://github.com/newcat/baklavajs/actions/workflows/build.yml/badge.svg) ![npm](https://img.shields.io/npm/v/baklavajs.svg) Graph / node editor in the browser using VueJS **[Online Demo](https://codesandbox.io/s/baklavajs-v2-example-zpfkec?file=/src/App.vue) ** ![example](https://baklava.tech/api/media/example.png) | Package | Version | | --- | --- | | baklavajs | ![npm](https://img.shields.io/npm/v/baklavajs.svg?style=flat-square) | | @baklavajs/core | ![npm (scoped)](https://img.shields.io/npm/v/@baklavajs/core.svg?style=flat-square) | | @baklavajs/engine | ![npm (scoped)](https://img.shields.io/npm/v/@baklavajs/engine.svg?style=flat-square) | | @baklavajs/interface-types | ![npm (scoped)](https://img.shields.io/npm/v/@baklavajs/interface-types.svg?style=flat-square) | | @baklavajs/renderer-vue | ![npm (scoped)](https://img.shields.io/npm/v/@baklavajs/renderer-vue.svg?style=flat-square) | | @baklavajs/themes | ![npm (scoped)](https://img.shields.io/npm/v/@baklavajs/themes.svg?style=flat-square) | Introduction[](https://baklava.tech/api/#introduction) ------------------------------------------------------- BaklavaJS is a graph/node editor for the web. It provides an easy-to-use editor together with the ability to create custom nodes. Aditionally, it puts a strong emphasis on extensibility, which leads to a versatile plugin system. To guarantee type safety, the entirety of the BaklavaJS ecosystem is written in TypeScript. The core functionality is shipped in the `@baklavajs/core` package. Any other functionality can be added a-la-carte by installing the desired plugins: * **Engine**: Provides functions to run calculations with the graph. * **Interface Types**: Adds types to node interfaces and allowing connections only between types that you want to. It can also automatically convert values from one type to another. * **Vue Renderer**: Displays the editor in the browser using VueJS * **Themes**: A collection of pre-built themes for BaklavaJS There is also the `baklavajs` package, which contains the core package as well as all plugins. Getting Started & Documentation[](https://baklava.tech/api/#getting-started-documentation) ------------------------------------------------------------------------------------------- You can find the documentation here: [https://baklava.tech](https://baklava.tech/) BaklavaJS v1[](https://baklava.tech/api/#baklavajs-v1) ------------------------------------------------------- The old version of BaklavaJS can be found here: [https://github.com/newcat/baklavajs/tree/v1](https://github.com/newcat/baklavajs/tree/v1) Sponsors[](https://baklava.tech/api/#sponsors) ----------------------------------------------- ### Top Sponsors[](https://baklava.tech/api/#top-sponsors) [ThePixelDeveloper](https://github.com/ThePixelDeveloper)  · [Reece Dunham](https://github.com/RDIL)  · [Adrian Rudnik](https://github.com/adrianrudnik)  · [Chris Bolton](https://github.com/yochrisbolton)  · [LittleMouseGames](https://github.com/LittleMouseGames)  · [Andrei Bosco B. Torres](https://github.com/andreibosco)  · [eviltik](https://github.com/eviltik) ### Gold Sponsors[](https://baklava.tech/api/#gold-sponsors) [Tiger Tang](https://github.com/TigerHix) ### Sponsors[](https://baklava.tech/api/#sponsors-1) [John Nunley](https://github.com/notgull) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page [BaklavaJS](https://baklava.tech/api/#baklavajs) * [Introduction](https://baklava.tech/api/#introduction) * [Getting Started & Documentation](https://baklava.tech/api/#getting-started-documentation) * [BaklavaJS v1](https://baklava.tech/api/#baklavajs-v1) * [Sponsors](https://baklava.tech/api/#sponsors) * * [Top Sponsors](https://baklava.tech/api/#top-sponsors) * [Gold Sponsors](https://baklava.tech/api/#gold-sponsors) * [Sponsors](https://baklava.tech/api/#sponsors-1) --- # Forward Engine | BaklavaJS [Skip to content](https://baklava.tech/execution/forward.html#VPContent) Return to top Forward Engine [​](https://baklava.tech/execution/forward.html#forward-engine) =============================================================================== Info This engine is still WIP --- # Node Lifecycle | BaklavaJS [Skip to content](https://baklava.tech/nodes/lifecycle.html#VPContent) Return to top Node Lifecycle [​](https://baklava.tech/nodes/lifecycle.html#node-lifecycle) ============================================================================= Each node exposes lifecycle methods that can be overridden. When using the `defineNode()` approach for creating node types, the lifecycle methods have `this` bound to the node instance. `onCreate` [​](https://baklava.tech/nodes/lifecycle.html#oncreate) ------------------------------------------------------------------- This method is called when the node is instantiated. It can be seen as the "constructor". TIP This lifecycle is only available when using the `defineNode()` approach. When using the class-based approach, use the `constructor` instead `onPlaced` [​](https://baklava.tech/nodes/lifecycle.html#onplaced) ------------------------------------------------------------------- This method is called as soon as the node instance has been placed into a graph. Therefore, the `this.graph` property has been set and can be used when this method is called. `onDestroy` [​](https://baklava.tech/nodes/lifecycle.html#ondestroy) --------------------------------------------------------------------- This method is called when the node instance is removed from the graph. You can use this method for clean-up. --- # Core Concepts | BaklavaJS [Skip to content](https://baklava.tech/core-concepts.html#VPContent) Return to top Core Concepts [​](https://baklava.tech/core-concepts.html#core-concepts) ========================================================================= Baklava consists of different building blocks. This chapter provides a brief overview of those blocks as well as describe, how they relate to each other. Editor [​](https://baklava.tech/core-concepts.html#editor) ----------------------------------------------------------- The _editor_ is the main model class in Baklava. Everything lives inside the editor. It provides functions for saving and loading, [registering node types](https://baklava.tech/editor/registering-nodes.html) and allows [subscribing to events](https://baklava.tech/event-system.html) . An editor instance always has one main _Graph_, called **root graph** (`editor.graph`). It also maintains a list of all graph instances inside the editor, since graphs can have _[subgraphs](https://baklava.tech/editor/subgraphs.html) _ inside them. The list can be accessed via `editor.graphs`. Graph [​](https://baklava.tech/core-concepts.html#graph) --------------------------------------------------------- A _graph_ contains a set of [nodes](https://baklava.tech/nodes/nodes.html) as well as connections between these nodes. It also provides functions to modify these sets and listen to events. Graph Template [​](https://baklava.tech/core-concepts.html#graph-template) --------------------------------------------------------------------------- A _graph template_ is basically a "save-state" of a graph. It is used to implement _[subgraphs](https://baklava.tech/editor/subgraphs.html) _. Engine [​](https://baklava.tech/core-concepts.html#engine) ----------------------------------------------------------- An _[engine](https://baklava.tech/execution/setup.html) _ is used to execute logic based on the graph. --- # Migrating from Baklava V1 | BaklavaJS [Skip to content](https://baklava.tech/migration.html#VPContent) Return to top Migrating from Baklava V1 [​](https://baklava.tech/migration.html#migrating-from-baklava-v1) ============================================================================================= Editor [​](https://baklava.tech/migration.html#editor) ------------------------------------------------------- * Nodes and Connections are not part of the editor anymore. They moved to `editor.graph` * There is no "plugin" concept anymore. Instead of calling `editor.use(...)` for engine etc., use the new constructors * The parameters of the `editor.registerNodeType()` method have changed. See the documentation for more details. Nodes [​](https://baklava.tech/migration.html#nodes) ----------------------------------------------------- * The `NodeBuilder` doesn't exist in V2 anymore. You can either use [class-based](https://baklava.tech/nodes/nodes.html#class-based-approach) or [declaration-based](https://baklava.tech/nodes/nodes.html#definenode) approach. * The [class-based approach](https://baklava.tech/nodes/nodes.html#class-based-approach) has been completely changed in comparison to v1 * Node options have been removed. They are now interfaces with `.setPort(false)` * The `calculate` function behaves differently, see [Graph Execution](https://baklava.tech/execution/setup.html) * The `name` property has been changed to `title` to reduce confusion * Node interfaces don't receive a `name` prop anymore. Instead, use the `name` property of the interface instance provided by the `intf` prop: `intf.name` * The sidebar is now per-node instead of per-option / per-interface as before. See TODO: Sidebar Events [​](https://baklava.tech/migration.html#events) ------------------------------------------------------- * `addListener` has been renamed to `subscribe` * `removeListener` has been renamed to `unsubscribe` * The way preventable events works has [slightly changed](https://baklava.tech/event-system.html) Engine [​](https://baklava.tech/migration.html#engine) ------------------------------------------------------- * Instead of a single engine there are multiple different Engine implementations now. If you want to keep the behavior of the v1 engine, use the new `DependencyEngine` * There is no longer a boolean parameter for the constructor to enable the calculate-on-change-behavior. Instead, call `engine.start()` Interface Types [​](https://baklava.tech/migration.html#interface-types) ------------------------------------------------------------------------- * The interface type plugin does not use strings anymore to identify node interface types. Instead, you need to create `NodeInterfaceType`s. See the [documentation](https://baklava.tech/nodes/interface-types.html) for more information. * Conversions have to be added directly to the `NodeInterfaceType`. * It is no longer possible to specify the color of the port using JS/TS. Instead, you need to use CSS. Vue Renderer [​](https://baklava.tech/migration.html#vue-renderer) ------------------------------------------------------------------- * Since the plugin concept has been abandoned, the `ViewPlugin` is now called `ViewModel` * The `registerOption` method has been removed, since the options are now directly defined in the node interfaces. --- # Dependency Engine | BaklavaJS [Skip to content](https://baklava.tech/execution/dependency.html#VPContent) Return to top Dependency Engine [​](https://baklava.tech/execution/dependency.html#dependency-engine) ======================================================================================== The dependency engine determines the execution order by [topologically sorting](https://en.wikipedia.org/wiki/Topological_sorting) the node graph. ![Node Execution Order](https://baklava.tech/assets/node_execution_order.Bg4M7k15.png) In this example, the node execution order is either * `A -> D -> B -> C` * `D -> A -> B -> C` Multiple Connections to a Single Input [​](https://baklava.tech/execution/dependency.html#multiple-connections-to-a-single-input) ---------------------------------------------------------------------------------------------------------------------------------- By default, the dependency engine doesn't allow multiple connections to a single input interface. You can, however, opt-in and allow multiple connections: ts import { defineNode, NodeInterface } from "@baklavajs/core"; import { allowMultipleConnections } from "@baklavajs/engine"; export default defineNode({ inputs: { multiple: () => new NodeInterface("Multiple Numbers", []).use(allowMultipleConnections), }, // ... }); If you are using TypeScript, make sure the type of your node interface is an array (like `number[]` in this case). The value of the interface is an array with all the values of all incoming connections. --- # Browser Build | BaklavaJS [Skip to content](https://baklava.tech/browser-build.html#VPContent) Return to top Browser Build [​](https://baklava.tech/browser-build.html#browser-build) ========================================================================= While not recommended, it is possible to use BaklavaJS standalone; without Vue and any build tools. html Document
--- # Saving and Loading | BaklavaJS [Skip to content](https://baklava.tech/editor/saving-loading.html#VPContent) Return to top Saving and Loading [​](https://baklava.tech/editor/saving-loading.html#saving-and-loading) =========================================================================================== Saving [​](https://baklava.tech/editor/saving-loading.html#saving) ------------------------------------------------------------------- The editor provides a `[save()](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#save-1) ` method. This method can be used to save the current state into a plain JS object. This object can, for example, be JSONified and saved. ### Saving custom data [​](https://baklava.tech/editor/saving-loading.html#saving-custom-data) It is possible to add additional data to the save object. This can be done using the `afterSave` hook: ts node.hooks.afterSave.subscribe(token, (state) => { state.myCustomValue = "hello world"; return state; }); If you want to do it for all nodes in all graphs, use the `nodeHooks` property of the editor instance: ts editor.nodeHooks.afterSave.subscribe(token, (state, node) => { state.myCustomValue = "hello world"; return state; }); Loading [​](https://baklava.tech/editor/saving-loading.html#loading) --------------------------------------------------------------------- Similar to saving, the editor also provides a `[load(state)](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#load-1) ` method. It receives the previously saved JS object as its only parameter. The function returns an array of strings with every entry in the array being an error that occured during loading. If the array is empty, there were no errors. ### Loading custom data [​](https://baklava.tech/editor/saving-loading.html#loading-custom-data) To load your previously saved custom data, use the `beforeLoad` hook: ts node.hooks.beforeLoad.subscribe(token, (state) => { console.log(state.myCustomValue); }); If you want to do it for all nodes in all graphs, use the `nodeHooks` property of the editor instance as shown in the example for saving. --- # Registering Nodes | BaklavaJS [Skip to content](https://baklava.tech/editor/registering-nodes.html#VPContent) Return to top Registering Nodes [​](https://baklava.tech/editor/registering-nodes.html#registering-nodes) ============================================================================================ Basic Usage [​](https://baklava.tech/editor/registering-nodes.html#basic-usage) -------------------------------------------------------------------------------- ts import MyNode from "./MyNode"; editor.registerNodeType(MyNode); Advanced Options [​](https://baklava.tech/editor/registering-nodes.html#advanced-options) ------------------------------------------------------------------------------------------ ### Category [​](https://baklava.tech/editor/registering-nodes.html#category) When you have a lot of node types, the node palette can get a bit convoluted. To help your users find node types quicker, you can divide them into **categories**. You don't need to create the category manually; just specify the name of the category when registering the node type: ts editor.registerNodeType(MyNode, { category: "My Category" }); ### Custom Title [​](https://baklava.tech/editor/registering-nodes.html#custom-title) By default, the node title is determined by the `title` property of the node type. However, you can set a custom title for the node palette: ts editor.registerNodeType(MyNode, { title: "Custom title" }); WARNING This only changes the title in the node palette. It does not change the title of the nodes being created. For that, you need to modify the title property of your node type. --- # Pre-defined interfaces | BaklavaJS [Skip to content](https://baklava.tech/nodes/pre-defined-interfaces.html#VPContent) Return to top Pre-defined interfaces [​](https://baklava.tech/nodes/pre-defined-interfaces.html#pre-defined-interfaces) ========================================================================================================== ButtonInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#buttoninterface) -------------------------------------------------------------------------------------------- Displays a button and calls the provided callback when the button is clicked. js import { ButtonInterface } from "baklavajs"; new ButtonInterface("Name", () => console.log("Button clicked")); CheckboxInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#checkboxinterface) ------------------------------------------------------------------------------------------------ Displays a checkbox. Expects a `boolean` value. js import { CheckboxInterface } from "baklavajs"; new CheckboxInterface("Name", true); IntegerInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#integerinterface) ---------------------------------------------------------------------------------------------- Displays a numeric input that accepts integers. You can optionally provide minimum and maximum values. js import { IntegerInterface } from "baklavajs"; // without min and max values new IntegerInterface("Name", 5); // with min and max values new IntegerInterface("Name", 5, 0, 10); NumberInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#numberinterface) -------------------------------------------------------------------------------------------- Similar to the [`IntegerInterface`](https://baklava.tech/nodes/pre-defined-interfaces.html#integerinterface) , but also accepts decimal values. js import { NumberInterface } from "baklavajs"; // without min and max values new NumberInterface("Name", 0.5); // with min and max values new NumberInterface("Name", 0.5, 0, 1); SelectInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#selectinterface) -------------------------------------------------------------------------------------------- Displays a dropdown from which a single value can be chosen. Expects a list of possible values as the third parameter. The list of values can either be an array of strings (`string[]`) or an array of objects with this format: js { text: "I will be displayed", // must be a string value: 1 // can be any type } js import { SelectInterface } from "baklavajs"; new SelectInterface("Name", "Add", ["Add", "Subtract"]); new SelectInterface("Name", 1, [\ { text: "A", value: 1 },\ { text: "B", value: 2 },\ { text: "C", value: 3 },\ ]); SliderInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#sliderinterface) -------------------------------------------------------------------------------------------- Similar to the [`NumberInterface`](https://baklava.tech/nodes/pre-defined-interfaces.html#numberinterface) but displays a slider instead of increase/decrease buttons. Minimum and maximum values are required for this interface. js import { SliderInterface } from "baklavajs"; new SliderInterface("Name", 0.5, 0, 1); TextInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#textinterface) ---------------------------------------------------------------------------------------- A simple interface that just displays the value as text. Can't be used to edit the value. WARNING The name of this interface will likely change in the future. js import { TextInterface } from "baklavajs"; new TextInterface("Name", "Hello World!"); TextInputInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#textinputinterface) -------------------------------------------------------------------------------------------------- This interface displays a text field that the user can type into. js import { TextInputInterface } from "baklavajs"; new TextInputInterface("Name", "Edit me"); TextareaInputInterface [​](https://baklava.tech/nodes/pre-defined-interfaces.html#textareainputinterface) ---------------------------------------------------------------------------------------------------------- This interface displays a textarea field that the user can type into. js import { TextareaInputInterface } from "baklavajs"; new TextareaInputInterface("Name", "Edit me"); --- # Graph Execution | BaklavaJS [Skip to content](https://baklava.tech/execution/setup.html#VPContent) Return to top Graph Execution [​](https://baklava.tech/execution/setup.html#graph-execution) =============================================================================== BaklavaJS not only offers a way to edit compute graphs but also to execute them. This is done by _engines_. There are different types of engines which execute the graph in different ways. * [Dependency Engine](https://baklava.tech/execution/dependency.html) * [Forward Engine](https://baklava.tech/execution/forward.html) TIP If you want the behavior of Baklava V1's engine, use the dependency engine. There are, however, some prerequisites that are indenpendent of the engine implementation: Node calculate function [​](https://baklava.tech/execution/setup.html#node-calculate-function) ----------------------------------------------------------------------------------------------- Each node needs to have a caluate function. The calculate function receives the node inputs as a JavaScript object (and optionally some [global calculation data](https://baklava.tech/execution/setup.html#global-calculation-data) ), does the calculation and returns the values for the outputs as a JavaScript object. Let's take a simple "Add Node" as an example. Mathematically speaking, it should perform this function: `f(a, b) = a + b`. This is done in Baklava as follows: js import { defineNode, NodeInterface } from "@baklavajs/core"; import { NumberInterface, SelectInterface } from "@baklavajs/renderer-vue"; export default defineNode({ type: "AddNode", inputs: { number1: () => new NumberInterface("Number", 1), number2: () => new NumberInterface("Number", 10), }, outputs: { result: () => new NodeInterface("Result", 0), }, calculate(inputs) { return { result: inputs.number1 + inputs.number2, }; }, }); `inputs` in this case has the following format: js { number1: 1, number2: 10 } Of course the actual values depend on the values of the input interfaces. The calculate function needs to return an object that contains all the outputs as keys mapping to their corresponding values (see example above). Setting up the engine [​](https://baklava.tech/execution/setup.html#setting-up-the-engine) ------------------------------------------------------------------------------------------- The general setup is independent of which engine you choose. js import { Editor } from "@baklavajs/core"; import { DependencyEngine } from "@baklavajs/engine"; const editor = new Editor(); const engine = new DependencyEngine(editor); engine.start(); Global calculation data [​](https://baklava.tech/execution/setup.html#global-calculation-data) ----------------------------------------------------------------------------------------------- You can provide data that is passed to every node's `calculate()` function as a second parameter. There are two ways to provide the global calculation to the engine: ### When using the engine in manual mode with `runOnce` [​](https://baklava.tech/execution/setup.html#when-using-the-engine-in-manual-mode-with-runonce) ts engine.runOnce({ offset: 5 }); ### When using the engine in automatic mode (after `engine.start()`) [​](https://baklava.tech/execution/setup.html#when-using-the-engine-in-automatic-mode-after-engine-start) In this case you need to register a hook beforehand. This hook is called for every calculation; except the ones triggered manually with `engine.runOnce()` ts const token = Symbol("token"); engine.hooks.gatherCalculationData.subscribe(token, () => { return { offset: 5 }; }); engine.start(); You can find more information about hooks in the documentation for the [event system](https://baklava.tech/event-system.html) . ### Consuming global data [​](https://baklava.tech/execution/setup.html#consuming-global-data) You can now use the global data in the `calculate` function of your nodes: ts export default defineNode({ // ... calculate(inputs, { globalValues }) { return { result: inputs.number1 + inputs.number2 + globalValues.offset, }; }, }); Applying the result to the graph [​](https://baklava.tech/execution/setup.html#applying-the-result-to-the-graph) ----------------------------------------------------------------------------------------------------------------- By default, you just get the calculated values of the output interfaces in the calculation result object. The values are not applied to the output interfaces inside the graph. If you want to use the output interfaces to display the calculation result in the graph, you can use the `applyResult` function provided by the engine: ts import { applyResult } from "@baklavajs/engine"; const token = Symbol(); engine.events.afterRun.subscribe(token, (result) => { engine.pause(); applyResult(result, editor); engine.resume(); }); WARNING It is important to call `engine.pause()` before calling `applyResult()`. Otherwise it would lead to an infinite loop. --- # Event System | BaklavaJS [Skip to content](https://baklava.tech/event-system.html#VPContent) Return to top Event System [​](https://baklava.tech/event-system.html#event-system) ====================================================================== BaklavaJS uses a custom event system to allow for extensibility and plugins. Each class that supports it has an `events` and/or a `hook` property, which can be used to subscribe to an event or tap into a hook. Most JS event systems need a reference to the listener function to remove an event listener. However, this doesn't work well with inline arrow-functions. To support such functions as well, Baklava uses so-called `tokens` for adding and removing a listener. The token can be any reference-type (for example and object, array, or `this` when you are in a class) or symbol. It is provided when adding an event listener and provided again when removing the listener. ts import { BaklavaEvent } from "@baklavajs/events"; const ev = new BaklavaEvent(null); const token = Symbol(); ev.subscribe(token, (data) => { console.log("Event triggered:", data); }); ev.emit("Hello World"); ev.unsubscribe(token); ev.emit("This won't be printed"); // Console output: // Event triggered: Hello World Events [​](https://baklava.tech/event-system.html#events) ---------------------------------------------------------- There are two types of events: _normal_ and _preventable_ events. _Normal_ events are usually fired after an action, to react to that action. _Preventable_ events, on the other hand, are fired before an action and can be used by the listener to prevent the action from happening. This is done by calling the `prevent` function in a listener function. Most preventable events have the `before` prefix in their name. ts import { PreventableBaklavaEvent } from "@baklavajs/events"; const ev = new PreventableBaklavaEvent(null); const token = Symbol(); ev.subscribe(token, (data, prevent) => { if (data === "prevent me") { prevent(); return; } console.log(data); }); function emit(data: string) { if (ev.emit(data)) { console.log("prevented"); } } emit("prevent me"); emit("this works"); // Console output: // prevented // this works This can for example be used to prevent certain connections from being created: ts editor.graphEvents.beforeAddConnection.subscribe(token, (conn, prevent) => { // check, whether the user should be able to create this connection. if (/* user not allowed to create connection */) { prevent(); return; } }); Hooks [​](https://baklava.tech/event-system.html#hooks) -------------------------------------------------------- Hooks are similar to events, however, hooks have the ability to pass data from one hook to another. They are executed in the order they have been tapped into. Proxied Events and the Entity Argument [​](https://baklava.tech/event-system.html#proxied-events-and-the-entity-argument) -------------------------------------------------------------------------------------------------------------------------- When you wanted to listen to an event on every node in Baklava v1, you had to subscribe to the event for every node manually. Thanks to _proxied events_ this is no longer the case in Baklava v2. Let's say you want to listen to the `update` event of every node in all graphs: ts const token = Symbol() editor.nodeEvents.update.subscribe(token, (data, node) => { // put your code here }); As you can see, events actually receive two arguments: 1. The event data, like in Baklava v1 2. The entity that emitted the event In our case this allows us to determine which node emitted the event and do some special handling, for example. You can find out what event provides what entity type in the API reference, but usually node events provide the emitting node, graph events the emitting graph and so on. --- # Interface Types | BaklavaJS [Skip to content](https://baklava.tech/nodes/interface-types.html#VPContent) Return to top Interface Types [​](https://baklava.tech/nodes/interface-types.html#interface-types) ===================================================================================== This plugin allows you to add types to node interfaces. By default, two node interfaces can only be connected if they have the same type. You can, however, override this behavior by using conversions. Usage [​](https://baklava.tech/nodes/interface-types.html#usage) ----------------------------------------------------------------- The plugin is included in the `baklavajs` package. If you installed the packages individually, make sure to also install `@baklavajs/interface-types` Afterwards you can use the plugin like this: 1. Create the types that you need js // Create the types. It is recommended to define them // in a separate file and import them when creating the nodes. import { NodeInterfaceType } from "@baklavajs/interface-types"; export const stringType = new NodeInterfaceType("string"); export const numberType = new NodeInterfaceType("number"); export const booleanType = new NodeInterfaceType("boolean"); TIP The constructor of the `NodeInterfaceType` class expects a name for the type. This name can be arbitrary and is used for [styling](https://baklava.tech/nodes/interface-types.html#styling) . 2. Create the `BaklavaInterfaceTypes` instance js // In your App.vue or wherever you use the import { BaklavaInterfaceTypes, NodeInterfaceType } from "@baklavajs/interface-types"; import { stringType, numberType, booleanType } from "./interfaceTypes"; const baklavaView = useBaklava(); const editor = baklavaView.editor; const nodeInterfaceTypes = new BaklavaInterfaceTypes(editor, { viewPlugin: baklavaView }); nodeInterfaceTypes.addTypes(stringType, numberType, booleanType); 3. Set the types of your node interfaces js // when creating a node import { setType } from "@baklavajs/interface-types"; import { stringType } from "./interfaceTypes"; defineNode({ inputs: { myInput: () => new NodeInterface("My Input", "default1").use(setType, stringType), }, // ... }); TypeScript [​](https://baklava.tech/nodes/interface-types.html#typescript) --------------------------------------------------------------------------- When using TypeScript, it is recommended to specify the value type when creating a new `NodeInterfaceType`: ts new NodeInterfaceType("number"); This allows typechecking for both conversions, as well as when setting the type for a `NodeInterface`: ts const stringType = new NodeInterfaceType("string"); const numberType = new NodeInterfaceType("number"); // Argument of type 'NodeInterfaceType' is not assignable to parameter of type 'NodeInterfaceType'. // Type 'number' is not assignable to type 'string'. new NodeInterface("Foo", "value").use(setType, numberType); // Type 'boolean' is not assignable to type 'string'. numberType.addConversion(stringType, () => false); When using `allowMultipleConnections`, use the `setTypeForMultipleConnections` function: ts new NodeInterface("Foo", []).use(allowMultipleConnections).use(setTypeForMultipleConnections, numberType); Conversions [​](https://baklava.tech/nodes/interface-types.html#conversions) ----------------------------------------------------------------------------- By default, only connections between two interfaces of the same type are allowed. To allow one type to be connected to another type, you can create a conversion. A conversion optionally accepts a _transformation function_, that can convert values. This is used when executing the graph. ts export const stringType = new NodeInterfaceType("string"); export const numberType = new NodeInterfaceType("number"); stringType.addConversion(numberType, (v) => parseFloat(v)); In this example, node interfaces with type `stringType` can be connected to node interfaces with type `numberType`. Note, however, that conversions are not commutative, meaning while connections from `stringType` to `numberType` are allowed, connections from `numberType` to `stringType` are not! To achieve this, another conversion is needed: ts numberType.addConversion(stringType, (v) => (v !== null && v !== undefined && v.toString()) || "0"); Styling [​](https://baklava.tech/nodes/interface-types.html#styling) --------------------------------------------------------------------- It is recommended to tell the user, what type a node interface has. The plugin therefore adds the `data-interface-type` attribute when rendering the node interface. This attribute can be used to style the interfaces using CSS. Here is an example of how to set the color of the ports depending on the interface type: css .baklava-node-interface[data-interface-type="string"] { --baklava-node-interface-port-color: green; } .baklava-node-interface[data-interface-type="number"] { --baklava-node-interface-port-color: red; } .baklava-node-interface[data-interface-type="boolean"] { --baklava-node-interface-port-color: purple; } Options [​](https://baklava.tech/nodes/interface-types.html#options) --------------------------------------------------------------------- The `BaklavaInterfaceTypes` can receive up to two arguments: * The editor instance (required) * Configuration options (not required) The configuration options have the following format: ts interface BaklavaInterfaceTypesOptions { viewPlugin?: IBaklavaView; engine?: BaseEngine; } Both the `viewPlugin` and `engine` are optional. The `viewPlugin` is used for applying the `data-interface-type` attribute on node interfaces. The `engine` plugin is used for applying the conversions during calculation. Backend Usage [​](https://baklava.tech/nodes/interface-types.html#backend-usage) --------------------------------------------------------------------------------- By default, the `BaklavaInterfaceTypes` constructor expects two arguments: the editor and the return value of the `useBaklava` function. The second parameter, however, is optional and can be omitted. This is especially useful when running BaklavaJS in the backend and just needing the conversions. js new BaklavaInterfaceTypes(editor); --- # Toolbar | BaklavaJS [Skip to content](https://baklava.tech/visual-editor/toolbar.html#VPContent) Return to top Toolbar [​](https://baklava.tech/visual-editor/toolbar.html#toolbar) ===================================================================== The toolbar provides a set of clickable buttons for common editor operations. BaklavaJS includes a default set of commands like copy, paste, undo, redo, and more that can be customized to fit your application's needs. Default Toolbar [​](https://baklava.tech/visual-editor/toolbar.html#default-toolbar) ------------------------------------------------------------------------------------- By default, the toolbar includes these commands: * Copy - Copy selected nodes * Paste - Paste copied nodes * Delete Selected Nodes - Remove selected nodes from the graph * Undo - Revert the last action * Redo - Reapply a reverted action * Zoom to Fit - Adjust the view to fit all nodes * Box Select - Enable box selection mode * Create Subgraph - Create a subgraph from selected nodes Enabling/Disabling the Toolbar [​](https://baklava.tech/visual-editor/toolbar.html#enabling-disabling-the-toolbar) ------------------------------------------------------------------------------------------------------------------- You can enable or disable the toolbar through view settings: typescript // Enable toolbar baklavaView.settings.toolbar.enabled = true; // Disable toolbar baklavaView.settings.toolbar.enabled = false; Using a Subset of Default Commands [​](https://baklava.tech/visual-editor/toolbar.html#using-a-subset-of-default-commands) --------------------------------------------------------------------------------------------------------------------------- If you want to use only specific default commands, you can import `TOOLBAR_COMMANDS` and select just the ones you need: typescript import { useBaklava, TOOLBAR_COMMANDS } from "@baklavajs/renderer-vue"; const baklavaView = useBaklava(); // Use only copy, paste, and undo commands baklavaView.settings.toolbar.commands = [TOOLBAR_COMMANDS.COPY, TOOLBAR_COMMANDS.PASTE, TOOLBAR_COMMANDS.UNDO]; Adding Custom Commands [​](https://baklava.tech/visual-editor/toolbar.html#adding-custom-commands) --------------------------------------------------------------------------------------------------- You can add your own custom commands to the toolbar by: 1. Registering a new command with the command handler 2. Creating a toolbar command object 3. Adding it to the toolbar commands array typescript import { useBaklava, DEFAULT_TOOLBAR_COMMANDS } from "@baklavajs/renderer-vue"; import { defineComponent, h, markRaw } from "vue"; const baklavaView = useBaklava(); // 1. Register a custom command const CLEAR_ALL_COMMAND = "CLEAR_ALL"; baklavaView.commandHandler.registerCommand(CLEAR_ALL_COMMAND, { execute: () => { // Clear all nodes from the graph baklavaView.displayedGraph.nodes.forEach((node) => { baklavaView.displayedGraph.removeNode(node); }); }, // Optional: Define when the command can be executed canExecute: () => baklavaView.displayedGraph.nodes.length > 0, }); // 2. & 3. Add the command to the toolbar baklavaView.settings.toolbar.commands = [\ ...DEFAULT_TOOLBAR_COMMANDS,\ {\ command: CLEAR_ALL_COMMAND,\ title: "Clear All", // Tooltip text\ icon: markRaw(\ defineComponent(() => {\ return () => h("div", "Clear All");\ }),\ ),\ },\ ]; Creating Icons for Custom Commands [​](https://baklava.tech/visual-editor/toolbar.html#creating-icons-for-custom-commands) --------------------------------------------------------------------------------------------------------------------------- You can create custom icons for your toolbar commands in several ways: 1. Using a Vue component: typescript import { defineComponent, h, markRaw } from "vue"; const ClearAllIcon = markRaw(defineComponent(() => { return () => h("div", { class: "my-icon-class" }, "X"); })); // Use the component as the icon { command: CLEAR_ALL_COMMAND, title: "Clear All", icon: ClearAllIcon } 2. Using an SVG icon library: typescript import { markRaw } from "vue"; import { TrashIcon } from "@heroicons/vue/24/outline"; // Use the imported icon component directly { command: CLEAR_ALL_COMMAND, title: "Clear All", icon: markRaw(TrashIcon) } Subgraph Toolbar Commands [​](https://baklava.tech/visual-editor/toolbar.html#subgraph-toolbar-commands) --------------------------------------------------------------------------------------------------------- When working with subgraphs, BaklavaJS provides special commands for navigating and working with them: typescript import { TOOLBAR_SUBGRAPH_COMMANDS } from "@baklavajs/renderer-vue"; // Default subgraph commands include: // - SAVE_SUBGRAPH: Save changes to the subgraph // - SWITCH_TO_MAIN_GRAPH: Return to the main graph // You can customize the subgraph toolbar: baklavaView.settings.toolbar.subgraphCommands = [\ TOOLBAR_SUBGRAPH_COMMANDS.SWITCH_TO_MAIN_GRAPH,\ // Add your custom subgraph commands here\ ]; Complete Toolbar Customization Example [​](https://baklava.tech/visual-editor/toolbar.html#complete-toolbar-customization-example) ----------------------------------------------------------------------------------------------------------------------------------- Here's a complete example showing how to customize the toolbar: typescript import { useBaklava, TOOLBAR_COMMANDS, TOOLBAR_SUBGRAPH_COMMANDS } from "@baklavajs/renderer-vue"; import { defineComponent, h, markRaw } from "vue"; const baklavaView = useBaklava(); // Register a custom command const TOGGLE_MINIMAP_COMMAND = "TOGGLE_MINIMAP"; baklavaView.commandHandler.registerCommand(TOGGLE_MINIMAP_COMMAND, { execute: () => { baklavaView.settings.enableMinimap = !baklavaView.settings.enableMinimap; }, canExecute: () => true, }); // Customize the toolbar with a mix of default and custom commands baklavaView.settings.toolbar.commands = [\ TOOLBAR_COMMANDS.COPY,\ TOOLBAR_COMMANDS.PASTE,\ TOOLBAR_COMMANDS.DELETE_NODES,\ TOOLBAR_COMMANDS.UNDO,\ TOOLBAR_COMMANDS.REDO,\ {\ command: TOGGLE_MINIMAP_COMMAND,\ title: "Toggle Minimap",\ icon: markRaw(\ defineComponent(() => {\ return () => h("div", "Map");\ }),\ ),\ },\ ]; // Customize subgraph commands baklavaView.settings.toolbar.subgraphCommands = [\ TOOLBAR_SUBGRAPH_COMMANDS.SAVE_SUBGRAPH,\ TOOLBAR_SUBGRAPH_COMMANDS.SWITCH_TO_MAIN_GRAPH,\ ]; By following these patterns, you can fully customize the toolbar to meet your application's specific needs. --- # Subgraphs | BaklavaJS [Skip to content](https://baklava.tech/editor/subgraphs.html#VPContent) Return to top Subgraphs [​](https://baklava.tech/editor/subgraphs.html#subgraphs) ==================================================================== Subgraphs are a way to have graphs inside graphs. The core of the subgraph concept is a [Graph Template](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) . A graph template contains the saved state of a graph (nodes and connections). It can be used to create one or multiple graphs based on the template. Additionally, a graph template can have inputs and outputs. This allows the graph template to act similar to a node and is the basis for GraphNodes. With this concept, users can create their own reusable nodes from other nodes. Creating a Subgraph [​](https://baklava.tech/editor/subgraphs.html#creating-a-subgraph) ---------------------------------------------------------------------------------------- Users can create subgraphs by 1. Selecting one or more nodes 2. Clicking on the "Create Subgraph" button in the toolbar This action will also create an entry in the node palette so users are able to create graph nodes for this subgraph. Editing a Subgraph [​](https://baklava.tech/editor/subgraphs.html#editing-a-subgraph) -------------------------------------------------------------------------------------- Users can edit existing subgraphs by clicking the menu icon on either the subgraph in the node palette or any instance of a subgraph node and selecting "Edit Subgraph". The editor will then switch to _Subgraph Mode_, meaning it displays the subgraph only. Subgraph instances in the corresponding GraphNodes aren't updated until the "Save" or "Back" buttons in the toolbar are pressed. When in _Subgraph Mode_, users can add inputs and output to the subgraph via the node palette. Other subgraphs can also be added, unless this leads to an infinite recursion (e. g. when adding `Subgraph A` inside `Subgraph A`). If that is the case for a specific subgraph it is not displayed in the node palette. How it works [​](https://baklava.tech/editor/subgraphs.html#how-it-works) -------------------------------------------------------------------------- Each Graph Node has an internal graph instance that is based on the graph template of the subgraph. graph TD subgraph Editor subgraph RG\["Root Graph (displayed)"\] subgraph GN1\[GraphNode\] G1\[Graph\] end subgraph GN2\[GraphNode\] G2\[Graph\] end subgraph GN3\[GraphNode\] G3\[Graph\] end end GT\[Graph Template\] G1 -->|references| GT G2 -->|references| GT G3 -->|references| GT end graph TD subgraph Editor subgraph RG\["Root Graph"\] subgraph GN1\[GraphNode\] G1\[Graph\] end subgraph GN2\[GraphNode\] G2\[Graph\] end subgraph GN3\[GraphNode\] G3\[Graph\] end end DG\["Temporary Graph (displayed)"\] GT\[Graph Template\] G1 -->|references| GT G2 -->|references| GT G3 -->|references| GT DG -->|based on, updates| GT end --- # Commands | BaklavaJS [Skip to content](https://baklava.tech/visual-editor/commands.html#VPContent) Return to top Commands [​](https://baklava.tech/visual-editor/commands.html#commands) ======================================================================== Commands are an abstraction to allow for extension of actions in Baklava. You can do everything related to commands using the [`commandHandler`](https://baklava.tech/api/interfaces/_baklavajs_renderer_vue.ICommandHandler.html) Executing existing commands [​](https://baklava.tech/visual-editor/commands.html#executing-existing-commands) -------------------------------------------------------------------------------------------------------------- You can invoke an existing command by its name: ts import { Commands } from "@baklavajs/renderer-vue"; viewModel.commandHandler.executeCommand(Commands.UNDO_COMMAND); Creating new commands [​](https://baklava.tech/visual-editor/commands.html#creating-new-commands) -------------------------------------------------------------------------------------------------- Let's say you want to create a command that deletes the node with a given id and returns its node type. You can create the command like this: ts import type { ICommandHandler, ICommand } from "../commands"; // first type argument is the return value of the command // second type argument are the inputs to the command type MyCommand = ICommand; viewModel.commandHandler.registerCommand("MyCommand", { canExecute: (id) => !!viewModel.displayedGraph.findNodeById(id), execute: (id) => { const node = viewModel.displayedGraph.findNodeById(id)!; viewModel.displayedGraph.removeNode(node); return node.type; }, }); // for invoking this command: viewModel.commandHandler.executeCommand("MyCommand", true, "myNodeId"); --- # Dynamic Nodes | BaklavaJS [Skip to content](https://baklava.tech/nodes/dynamic-nodes.html#VPContent) Return to top Dynamic Nodes [​](https://baklava.tech/nodes/dynamic-nodes.html#dynamic-nodes) =============================================================================== Sometimes you may want to have nodes, that have a different set interfaces based on certain parameters. For example, a `Math Node` that can add or subtract two numeric values, but also calculate the sine of a single number. To easily implement this, you can use the `[defineDynamicNode](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html) ` function: js import { defineDynamicNode, NodeInterface, NumberInterface, SelectInterface } from "baklavajs"; export default defineDynamicNode({ type: "DynamicMathNode", inputs: { operation: () => new SelectInterface("Operation", "Addition", ["Addition", "Subtraction", "Sine"]), }, outputs: { result: () => new NodeInterface("Result", 0), }, onUpdate({ operation }) { if (operation === "Sine") { return { inputs: { input1: () => new NumberInterface("Input", 0), }, }; } else { return { inputs: { input1: () => new NumberInterface("Input", 0), input2: () => new NumberInterface("Input", 0), }, }; } }, calculate(inputs) { let result = 0; switch (inputs.operation) { case "Addition": result = inputs.input1 + inputs.input2; break; case "Subtraction": result = inputs.input1 - inputs.input2; break; case "Sine": result = Math.sin(inputs.input1); break; } return { result }; }, }); The definition of a dynamic node is similar to the one of a normal node with these notable differences: * The inputs and outputs defined as part of the node definition are called _static interfaces_. They are always present in the dynamic node. * A dynamic node definition requires an `onUpdate` function. This function is called once the node is placed as well as whenever the value of one of the static interfaces changes. The `onUpdate(inputValues, outputValues)` function receives the values of the static interfaces as parameters. Based on that, it must return an object with the following type: ts type DynamicNodeDefinition = Record NodeInterface>; interface DynamicNodeUpdateResult { inputs?: DynamicNodeDefinition; outputs?: DynamicNodeDefinition; forceUpdateInputs?: string[]; forceUpdateOutputs?: string[]; } The `inputs` and `outputs` properties have the same format as when defining a normal node. They define, which _dynamic interfaces_ the dynamic node should have based on the values of the static interfaces. The keys of the object are used as identifiers. If an interface with the specified key does not exist on the dynamic node yet, it will be created. Similarly, if there is an interface with a key that is not specified in the `DynamicNodeUpdateResult` it is removed. Essentially, the `DynamicNodeUpdateResult` describes a target state and the dynamic node automatically performs the necessary steps (adding / removing interfaces) to achieve that target state. Force Updates [​](https://baklava.tech/nodes/dynamic-nodes.html#force-updates) ------------------------------------------------------------------------------- By default, when an interface with a key is specified in the `DynamicNodeUpdateResult` and the key does already exist on the dynamic node, nothing is done for that key. This can be an issue, for example when switching types of node interfaces. Let's consider this `onUpdate` method: js onUpdate({ type }) { return type === "Number" ? { inputs: { myInput: () => new NumberInterface("Input", 0) } } : { inputs: { myInput: () => new TextInputInterface("Input", "") } }; } In this case, the `myInput` node interface is not replaced, as the key already exists. To fix this issue, you can provide keys that should always be updated: js onUpdate({ type }) { const inputs = type === "Number" ? { myInput: () => new NumberInterface("Input", 0) } : { myInput: () => new TextInputInterface("Input", "") }; return { input, forceUpdateInputs: ["myInput"] }; } Note, however, that this will always delete any interfaces with key `myInput` and therefore destroy all connections to it, even if a node interface of the same type is created afterwards. --- # Sidebar | BaklavaJS [Skip to content](https://baklava.tech/visual-editor/sidebar.html#VPContent) Return to top The sidebar can be used to display additional settings for a node, that wouldn't fit inside the node (a code editor or a chart). Defining Sidebar Node Interfaces [​](https://baklava.tech/visual-editor/sidebar.html#defining-sidebar-node-interfaces) ----------------------------------------------------------------------------------------------------------------------- To display a node interface in the sidebar, use the [`displayInSidebar`](https://baklava.tech/api/functions/_baklavajs_renderer_vue.displayInSidebar.html) function: ts import { defineNode, NodeInterface, NumberInterface, SelectInterface, displayInSidebar } from "baklavajs"; export default defineNode({ type: "SidebarNode", inputs: { sidebarOption1: () => new SelectInterface("Dropdown", "foo", ["foo", "bar", "blub"]).use(displayInSidebar, true).setPort(false), sidebarOption2: () => new NumberInterface("Test", 4).setHidden(true).use(displayInSidebar, true), }, }); Opening the Sidebar [​](https://baklava.tech/visual-editor/sidebar.html#opening-the-sidebar) --------------------------------------------------------------------------------------------- There are two options to open the sidebar: * Use the `OPEN_SIDEBAR` command * Emit an `openSidebar` event in your node interface display component For example: `SidebarButton.vue`: vue `SidebarNode.ts`: ts import { markRaw } from "vue"; import { defineNode, NodeInterface, NumberInterface, SelectInterface, displayInSidebar } from "baklavajs"; import SidebarButton from "./SidebarButton.vue"; export default defineNode({ type: "SidebarNode", inputs: { openButton: () => new NodeInterface("Open Sidebar", undefined).setComponent(markRaw(SidebarButton)).setPort(false), sidebarOption1: () => new SelectInterface("Dropdown", "foo", ["foo", "bar", "blub"]).use(displayInSidebar, true).setPort(false), sidebarOption2: () => new NumberInterface("Test", 4).setHidden(true).use(displayInSidebar, true), }, }); --- # Creating Nodes | BaklavaJS [Skip to content](https://baklava.tech/nodes/nodes.html#VPContent) Return to top Creating Nodes [​](https://baklava.tech/nodes/nodes.html#creating-nodes) ========================================================================= A graph is comprised of nodes as well as connections between these nodes. A node inside the graph can be seen as the instance of a class. You have to define the "class" before being able to create the node. Each node is similar to a function in programming: It receives input data, performs some calculation and returns output data. For input and output so-called [Node Interfaces](https://baklava.tech/nodes/interfaces.html) are used. The calculation is done inside the `calculate` function. You can find more about it [here](https://baklava.tech/execution/setup.html) . There are two approaches for defining node types: defineNode() [​](https://baklava.tech/nodes/nodes.html#definenode) ------------------------------------------------------------------- This is the recommended way to create node types as it is easier to understand what's happening and provides more type safety when using TypeScript. The `defineNode` function is similar to the `defineComponent` function of Vue (hence the name). It expects a single argument, which is an object defining the node type. You can find all the properties of the object [here](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html) , but these are the most important ones: * `type`: This is the only required property. The node type is used for saving and loading graphs, for example. It can essentially be seen as the name of your class. Therefore, it has to be unique. * `title`: (_optional_) The default title of the node. If this property isn't specified, the `type` is used as the default title. (Note that users can rename nodes, so don't rely on the title for identifying nodes). * `inputs`: (_optional_) An object specifying the input interfaces of the node. The keys are the "handle" for the node interface, while the values are functions that return a `NodeInterface` instance (or an instance of a subclass of `NodeInterface`). * `outputs`: (_optional_) An object specifying the output interfaces of the node. It has the same structure as the `inputs` object. * `calculate`: (_optional_) A function that is called whenever the node is executed. You can find more details on the [Graph Execution](https://baklava.tech/execution/setup.html) page. Additionally, you can provide [lifecycle callbacks](https://baklava.tech/nodes/lifecycle.html) . Let's put it all together into an example. In this case, we want to have a node that receives two numbers, performs an arithmetic operation on them and outputs the result. This means we need three inputs (the two numbers and the arithmetic operation) and one output (the result of the calculation): ts import { defineNode, NodeInterface, NumberInterface, SelectInterface } from "baklavajs"; export default defineNode({ type: "MathNode", inputs: { number1: () => new NumberInterface("Number", 1), number2: () => new NumberInterface("Number", 10), operation: () => new SelectInterface("Operation", "Add", ["Add", "Subtract"]).setPort(false), }, outputs: { output: () => new NodeInterface("Output", 0), }, calculate({ number1, number2, operation }) { let output: number; if (operation === "Add") { output = number1 + number2; } else if (operation === "Subtract") { output = number1 - number2; } else { throw new Error("Unknown operation: " + operation); } return { output }; }, }); There are also other properties that allow you to customize your nodes : | name | data type | default | | --- | --- | --- | | position.x | number | 0 | | position.y | number | 0 | | width | number | settings.defaultWidth | | disablePointerEvents | boolean | false | | twoColumn | boolean | false | | reverseY | boolean? | undefined | ts import { AbstractNode, CalculateFunction, NodeInterface } from "@baklavajs/core"; import { TextareaInputInterface } from "../src/nodeinterfaces/textareainput/TextareaInputInterface"; import { ButtonInterface } from "../src"; import { InputAnswerInterface } from "./interface/InputAnswerInterface"; export default class AnswerNode extends AbstractNode { public type = "answer"; public inputs: Record> = { input: new NodeInterface("Content", ""), description: new TextareaInputInterface("", "").setPort(false), }; public outputs: Record> = {}; private counter = 0; public constructor() { super(); this.initializeIo(); this.width = 400; this.title = "Answer"; this.reverseY = true; } public addChoice(value?: string) { const name = "answer" + ++this.counter; this.addOutput( name, new InputAnswerInterface(name, value, () => { this.removeOutput(name); }), ); } public onPlaced() { this.addInput("addAnswer", new ButtonInterface("Add " + this.title, () => this.addChoice())); } calculate?: CalculateFunction | undefined; } Class-based approach [​](https://baklava.tech/nodes/nodes.html#class-based-approach) ------------------------------------------------------------------------------------- For nodes that have dynamic inputs and outputs, it is also possible to use a class-based approach similar to BaklavaJS v1. WARNING It is very important to call `this.initializeIo()` in your constructor! Otherwise, the node might not work properly. Although it doesn't really make sense to use it in this case, here is the `MathNode` from the example above written using the class-based approach: --- # Setup | BaklavaJS [Skip to content](https://baklava.tech/visual-editor/setup.html#VPContent) Return to top Setup [​](https://baklava.tech/visual-editor/setup.html#setup) =============================================================== View Model [​](https://baklava.tech/visual-editor/setup.html#view-model) ------------------------------------------------------------------------- There is one key component you need when using the visual editor: the _view model_. You can create a new view model by using the [`useBaklava`](https://baklava.tech/api/functions/_baklavajs_renderer_vue.useBaklava.html) function. The view model has the following type: ts interface IBaklavaViewModel { editor: Editor; /** Currently displayed graph */ displayedGraph: Graph; /** True if the currently displayed graph is a subgraph, false if it is the root graph */ isSubgraph: Readonly; settings: IViewSettings; commandHandler: ICommandHandler; history: IHistory; clipboard: IClipboard; hooks: { /** Called whenever a node is rendered */ renderNode: SequentialHook<{ node: AbstractNode; el: HTMLElement }, null>; /** Called whenever an interface is rendered */ renderInterface: SequentialHook<{ intf: NodeInterface; el: HTMLElement }, null>; }; switchGraph: (newGraph: Graph | GraphTemplate) => void; } The view model is reactive so it can be used in watchers, computed properties, etc. WARNING The `useBaklava` function accepts an existing editor instance as parameter. However, because of the way Vue's reactivity system works you'll need to use the viewModel.editor property afterwards instead of your own reference to the editor. Editor Component [​](https://baklava.tech/visual-editor/setup.html#editor-component) ------------------------------------------------------------------------------------- Now you can pass the view model to the editor component: vue To use this component, use the `setComponent()` function of the node interface: js import { markRaw } from "vue"; import { NodeInterface } from "baklavajs"; import MyComponent from "MyComponent.vue"; new NodeInterface("My Interface", 0).setComponent(markRaw(MyComponent)); WARNING Use Vue's `markRaw` function, since the node interface will be made reactive. This can cause performance issues (and will also print warnings to the console). TIP If you'll be using the node interface multiple times, it makes sense to [create a custom node interface class](https://baklava.tech/nodes/interfaces.html#extending-the-node-interface-class) . Middleware [​](https://baklava.tech/nodes/interfaces.html#middleware) ---------------------------------------------------------------------- The node interface class also provides the option to use _middleware_. This can be used to set additional meta-data of the node interface in a type-safe way. A middleware is essentially just a function that is called with the node interface as the first parameter and an arbitrary amount of other parameters. Let's take the `setType` middleware of the [Interface Types Plugin](https://baklava.tech/nodes/interface-types.html) as an example: js function setType(intf, type) { intf.type = type.name; } // usage - just an example, the interface types plugin works a bit different new NodeInterface("My Interface", 0).use(setType, "number"); As can be seen, the function just sets a new `type` property on the interface to the value it receives as parameter. Extending the Node Interface Class [​](https://baklava.tech/nodes/interfaces.html#extending-the-node-interface-class) ---------------------------------------------------------------------------------------------------------------------- Always setting the component and middleware when creating a node interface is very tedious and leads to a lot of code duplication. Instead, a new class can be created that extends the base `NodeInterface` (or one of the [pre-defined interfaces](https://baklava.tech/nodes/pre-defined-interfaces.html) , which in turn are also just subclasses of the base `NodeInterface` class): js import { markRaw } from "vue"; import { NodeInterface, setType } from "baklavajs"; import MyComponent from "MyComponent.vue"; class MyNodeInterface extends NodeInterface { constructor(name: string) { super(name, 0); this.setComponent(markRaw(MyComponent)); // this is just an example, the interface types plugin works a bit different this.use(setType, "number"); } } const i = new MyNodeInterface("My Interface"); i.value; // -> 0 i.component === MyComponent; // -> true i.type; // -> "number" --- # Customization | BaklavaJS [Skip to content](https://baklava.tech/visual-editor/customization.html#VPContent) Return to top Customization [​](https://baklava.tech/visual-editor/customization.html#customization) ======================================================================================= Baklava offers many levels of customization, from simple theming up to full-blown custom components. Theming [​](https://baklava.tech/visual-editor/customization.html#theming) --------------------------------------------------------------------------- You can use a theme by installing the `@baklavajs/themes` package and importing the theme-specific CSS file. For example: js import "@baklavajs/themes/syrup-dark.css"; There are currently two themes available: * Classic (Baklava v1 theme): `classic.css` * Syrup Dark: `syrup-dark.css` Baklava's themes make heavy use of CSS variables. This means that you can easily change colors or other visual properties by overriding the values of the variables in your CSS. Check out [this file](https://github.com/newcat/baklavajs/blob/master/packages/themes/src/classic/variables.scss) for a list of variables. CSS Classes [​](https://baklava.tech/visual-editor/customization.html#css-classes) ----------------------------------------------------------------------------------- Baklava applies different CSS classes to the HTML elements to make customization via CSS as easy as possible. You can override styles to customize most aspects of the look and feel. Apart from the [standard CSS classes](https://baklava.tech/visual-editor/customization.html#list-of-css-classes) , Baklava also sets certain `data-` properties you can use for styling. For example, to make all nodes of type `MyNodeType` have a blue background, you can use the following CSS: css .baklava-node[data-node-type="MyNodeType"] { background-color: lightblue; } Custom Components [​](https://baklava.tech/visual-editor/customization.html#custom-components) ----------------------------------------------------------------------------------------------- If these options don't fulfill your needs for customization, you can provide custom components. For this, the editor provides the following slots: * `background` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/editor/Background.vue) * `toolbar` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/toolbar/Toolbar.vue) * `palette` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/nodepalette/NodePalette.vue) * `connection` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/connection/ConnectionWrapper.vue) * Props: * `connection` (type: `[Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) `) * `temporaryConnection` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/connection/TemporaryConnection.vue) * Props: * `temporaryConnection` (type: `[ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_core.ITemporaryConnection.html) | null`) * `node` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/node/Node.vue) * Props: * `node` (type: `[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) `) * `selected` (type: `boolean`) * `select` (type: `() => void`) callback for node being selected * `sidebar` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/sidebar/Sidebar.vue) * `minimap` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/components/Minimap.vue) * `contextMenu` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/components/ContextMenu.vue) * Props: * `contextMenu` (type: return value of [`useContextMenu`](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/contextMenu.ts) ) There are other components that provide slots as well: * Node * `nodeInterface` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/node/NodeInterface.vue) * Props: * `type` (type: `"input"|"output"`) * `node` (type: `[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) `) * `intf` (type: `[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) `) * NodeInterface * `portTooltip` [(default component)](https://github.com/newcat/baklavajs/blob/master/packages/renderer-vue/src/node/NodeInterface.vue#L11-L13) * Props: * `showTooltip` (type: `boolean`) So, for example, if you want to use a custom component for a certain node type, you could do it like this: vue List of CSS Classes [​](https://baklava.tech/visual-editor/customization.html#list-of-css-classes) --------------------------------------------------------------------------------------------------- Below you can find a list of CSS classes used in Baklava: * **Editor:** * `baklava-editor`: Base class for the editor * **Nodes:** * `baklava-node`: Base class for each node * `--selected`: Applied when a node is selected * `--dragging`: Applied when a node is being dragged * `--two-column`: Applied if a node is a two-column node * `--palette`: Applied to a node if it is used as an entry in the node palette * `__title`: Title (top-bar) of a node * `__title-label`: Actual title (label) of the node * `__menu`: Contains the three dots (menu button) on the right side of each node * `__content`: Container for the inputs and outputs of the node * `__inputs`: Container for all inputs * `__outputs`: Container for all outputs * **Node Interfaces:** * `baklava-node-interface`: Base class for each node interface * `--input`: Applied when the node interface is an input * `--output`: Applied when the node interface is an output * `--connected`: Applied when the node interface has a connection * `__port`: The "dot" via which the node interface can be connected * `__tooltip`: The tooltip that is shown when hovering over the node interface * **Connection:** * `baklava-connection`: Base class for each connection * `--temporary`: Applied when the connection is still being dragged (in the process of being created or changed) * `--allowed`: Applied when the connection can be created (the default styles display the connection green in this case) * `--forbidden`: Applied when the connection can not be created (the default styles display the connection red in this case) or when this connection would be destroyed when creating a different connection * **Sidebar:** * `baklava-sidebar`: Base class for the sidebar * `--open`: Applied when the sidebar should be visible * `__resizer`: Handle for resizing the sidebar * `__header`: Header of the sidebar. * `__close`: Close button * `__node-name`: The title of the currently selected node * `__interface`: Each interface shown in the sidebar * **Toolbar:** * `baklava-toolbar`: Base class for the toolbar * `baklava-toolbar-entry`: Base class for each entry in the toolbar * `baklava-toolbar-button`: This class is applied to every entry that is clickable * **Others:** * `baklava-node-palette`: Base class for the node palette --- # Reference - BaklavaJS Reference - BaklavaJS ===================== Modules ------- [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) [](https://baklava.tech/api/modules.html#baklavajscore) [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) [](https://baklava.tech/api/modules.html#baklavajsengine) [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) [](https://baklava.tech/api/modules.html#baklavajsevents) [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) [](https://baklava.tech/api/modules.html#baklavajsinterface-types) [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) [](https://baklava.tech/api/modules.html#baklavajsrenderer-vue) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Modules [@baklavajs/core](https://baklava.tech/api/modules.html#baklavajscore) [@baklavajs/engine](https://baklava.tech/api/modules.html#baklavajsengine) [@baklavajs/events](https://baklava.tech/api/modules.html#baklavajsevents) [@baklavajs/interface-types](https://baklava.tech/api/modules.html#baklavajsinterface-types) [@baklavajs/renderer-vue](https://baklava.tech/api/modules.html#baklavajsrenderer-vue) --- # NodeInterface | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) Class NodeInterface ====================== #### Type Parameters * T = any #### Implements * IBaklavaEventEmitter * IBaklavaTapable ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructor) ### Properties [component?](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#component) [events](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#templateid) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#use) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructor) * new NodeInterface<[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \= any\>(name: string, value: [T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) ): [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterface) #### Type Parameters * T = any #### Parameters * name: string * value: [T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) #### Returns [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \> Properties ---------- ### `Optional`component[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#component) component?: any The component which will be displayed when the interface is not connected or port === false ### events[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent<[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) , [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent<[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) , [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>\>;     updated: BaklavaEvent\>; } = ... ### hidden[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#hidden) hidden: boolean = false Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#hooks) hooks: {     load: SequentialHook<         [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>,         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>,         [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>,     \>;     save: SequentialHook<         [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>,         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>,         [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>,     \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#id) id: string = ... ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### name[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#nodeid) nodeId: string = "" Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#port) port: boolean = true Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#value) * get value(): [T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) #### Returns [T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) * set value(v: [T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) ): void #### Parameters * v: [T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#load) * load(state: [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>): void[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#load-1) #### Parameters * state: [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \> #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#save) * save(): [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \>[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#save-1) #### Returns [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) \> ### setComponent[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#usea) extends any\[\]\>(     middleware: [NodeInterfaceMiddleware](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) , [A](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#usea) \>,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: [NodeInterfaceMiddleware](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html) <[T](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructornodeinterfacet) , [A](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#usea) \> * ...args: [A](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#usea) #### Returns this ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#constructor) Properties [component](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#component) [events](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#templateid) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html#use) MMNEPVFCICPMFPCPTTAAATR --- # @baklavajs/engine | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) Module @baklavajs/engine ======================== Enumerations ------------ [EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#enginestatus) Classes ------- [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#baseengine) [CycleError](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#cycleerror) [DependencyEngine](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#dependencyengine) Interfaces ---------- [AfterNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#afternodecalculationeventdata) [BeforeNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#beforenodecalculationeventdata) [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#itopologicalsortingresult) Functions --------- [allowMultipleConnections](https://baklava.tech/api/functions/_baklavajs_engine.allowMultipleConnections.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#allowmultipleconnections) [applyResult](https://baklava.tech/api/functions/_baklavajs_engine.applyResult.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#applyresult) [containsCycle](https://baklava.tech/api/functions/_baklavajs_engine.containsCycle.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#containscycle) [sortTopologically](https://baklava.tech/api/functions/_baklavajs_engine.sortTopologically.html) [](https://baklava.tech/api/modules/_baklavajs_engine.html#sorttopologically) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Enumerations [EngineStatus](https://baklava.tech/api/modules/_baklavajs_engine.html#enginestatus) Classes [BaseEngine](https://baklava.tech/api/modules/_baklavajs_engine.html#baseengine) [CycleError](https://baklava.tech/api/modules/_baklavajs_engine.html#cycleerror) [DependencyEngine](https://baklava.tech/api/modules/_baklavajs_engine.html#dependencyengine) Interfaces [AfterNodeCalculationEventData](https://baklava.tech/api/modules/_baklavajs_engine.html#afternodecalculationeventdata) [BeforeNodeCalculationEventData](https://baklava.tech/api/modules/_baklavajs_engine.html#beforenodecalculationeventdata) [ITopologicalSortingResult](https://baklava.tech/api/modules/_baklavajs_engine.html#itopologicalsortingresult) Functions [allowMultipleConnections](https://baklava.tech/api/modules/_baklavajs_engine.html#allowmultipleconnections) [applyResult](https://baklava.tech/api/modules/_baklavajs_engine.html#applyresult) [containsCycle](https://baklava.tech/api/modules/_baklavajs_engine.html#containscycle) [sortTopologically](https://baklava.tech/api/modules/_baklavajs_engine.html#sorttopologically) MMNEPVFCICPMFPCPTTAAATR --- # @baklavajs/events | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) Module @baklavajs/events ======================== Classes ------- [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#baklavaevent) [DynamicSequentialHook](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#dynamicsequentialhook) [ParallelHook](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#parallelhook) [PreventableBaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#preventablebaklavaevent) [SequentialHook](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#sequentialhook) [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#subscribable) Interfaces ---------- [IBaklavaEventEmitter](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaEventEmitter.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#ibaklavaeventemitter) [IBaklavaTapable](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaTapable.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#ibaklavatapable) [ISubscribableProxy](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#isubscribableproxy) Type Aliases ------------ [EventListener](https://baklava.tech/api/types/_baklavajs_events.EventListener.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#eventlistener) [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#getlistenersfn) [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#hooktap) [PreventableEventListener](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#preventableeventlistener) [TokenType](https://baklava.tech/api/types/_baklavajs_events.TokenType.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#tokentype) Functions --------- [createProxy](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html) [](https://baklava.tech/api/modules/_baklavajs_events.html#createproxy) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Classes [BaklavaEvent](https://baklava.tech/api/modules/_baklavajs_events.html#baklavaevent) [DynamicSequentialHook](https://baklava.tech/api/modules/_baklavajs_events.html#dynamicsequentialhook) [ParallelHook](https://baklava.tech/api/modules/_baklavajs_events.html#parallelhook) [PreventableBaklavaEvent](https://baklava.tech/api/modules/_baklavajs_events.html#preventablebaklavaevent) [SequentialHook](https://baklava.tech/api/modules/_baklavajs_events.html#sequentialhook) [Subscribable](https://baklava.tech/api/modules/_baklavajs_events.html#subscribable) Interfaces [IBaklavaEventEmitter](https://baklava.tech/api/modules/_baklavajs_events.html#ibaklavaeventemitter) [IBaklavaTapable](https://baklava.tech/api/modules/_baklavajs_events.html#ibaklavatapable) [ISubscribableProxy](https://baklava.tech/api/modules/_baklavajs_events.html#isubscribableproxy) Type Aliases [EventListener](https://baklava.tech/api/modules/_baklavajs_events.html#eventlistener) [GetListenersFn](https://baklava.tech/api/modules/_baklavajs_events.html#getlistenersfn) [HookTap](https://baklava.tech/api/modules/_baklavajs_events.html#hooktap) [PreventableEventListener](https://baklava.tech/api/modules/_baklavajs_events.html#preventableeventlistener) [TokenType](https://baklava.tech/api/modules/_baklavajs_events.html#tokentype) Functions [createProxy](https://baklava.tech/api/modules/_baklavajs_events.html#createproxy) MMNEPVFCICPMFPCPTTAAATR --- # @baklavajs/interface-types | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) Module @baklavajs/interface-types ================================= Classes ------- [BaklavaInterfaceTypes](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html) [](https://baklava.tech/api/modules/_baklavajs_interface-types.html#baklavainterfacetypes) [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) [](https://baklava.tech/api/modules/_baklavajs_interface-types.html#nodeinterfacetype) Interfaces ---------- [BaklavaInterfaceTypesOptions](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html) [](https://baklava.tech/api/modules/_baklavajs_interface-types.html#baklavainterfacetypesoptions) [IConversion](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html) [](https://baklava.tech/api/modules/_baklavajs_interface-types.html#iconversion) Functions --------- [getType](https://baklava.tech/api/functions/_baklavajs_interface-types.getType.html) [](https://baklava.tech/api/modules/_baklavajs_interface-types.html#gettype) [setType](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html) [](https://baklava.tech/api/modules/_baklavajs_interface-types.html#settype) [setTypeForMultipleConnections](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html) [](https://baklava.tech/api/modules/_baklavajs_interface-types.html#settypeformultipleconnections) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Classes [BaklavaInterfaceTypes](https://baklava.tech/api/modules/_baklavajs_interface-types.html#baklavainterfacetypes) [NodeInterfaceType](https://baklava.tech/api/modules/_baklavajs_interface-types.html#nodeinterfacetype) Interfaces [BaklavaInterfaceTypesOptions](https://baklava.tech/api/modules/_baklavajs_interface-types.html#baklavainterfacetypesoptions) [IConversion](https://baklava.tech/api/modules/_baklavajs_interface-types.html#iconversion) Functions [getType](https://baklava.tech/api/modules/_baklavajs_interface-types.html#gettype) [setType](https://baklava.tech/api/modules/_baklavajs_interface-types.html#settype) [setTypeForMultipleConnections](https://baklava.tech/api/modules/_baklavajs_interface-types.html#settypeformultipleconnections) MMNEPVFCICPMFPCPTTAAATR --- # @baklavajs/renderer-vue | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) Module @baklavajs/renderer-vue ============================== Namespaces ---------- [Commands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#commands) [Components](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#components) Enumerations ------------ [TemporaryConnectionState](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#temporaryconnectionstate) Classes ------- [ButtonInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#buttoninterface) [CheckboxInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#checkboxinterface) [IntegerInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#integerinterface) [NumberInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#numberinterface) [SelectInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#selectinterface) [SliderInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#sliderinterface) [SubgraphInputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraphinputnode) [SubgraphOutputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraphoutputnode) [TextareaInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textareainputinterface) [TextInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textinputinterface) [TextInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textinterface) Interfaces ---------- [IAdvancedSelectInterfaceItem](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iadvancedselectinterfaceitem) [IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#ibaklavaviewmodel) [IClipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iclipboard) [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#icommand) [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#icommandhandler) [IHistory](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#ihistory) [IResolvedDomElements](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iresolveddomelements) [ISubgraphInterfaceNode](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#isubgraphinterfacenode) [ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#itemporaryconnection) [ITemporaryConnectionHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#itemporaryconnectionhandler) [IViewNodeState](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iviewnodestate) [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iviewsettings) [SetViewNodePropertiesSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#setviewnodepropertiessettings) [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#toolbarcommand) Type Aliases ------------ [ClearClipboardCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ClearClipboardCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clearclipboardcommand) [ClearHistoryCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ClearHistoryCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clearhistorycommand) [CommitTransactionCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CommitTransactionCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#committransactioncommand) [ContextMenuItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.ContextMenuItem.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#contextmenuitem) [CopyCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CopyCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#copycommand) [CreateSubgraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CreateSubgraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#createsubgraphcommand) [DeleteNodesCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.DeleteNodesCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#deletenodescommand) [InputNode](https://baklava.tech/api/types/_baklavajs_renderer-vue.InputNode.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#inputnode) [OpenSidebarCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.OpenSidebarCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#opensidebarcommand) [OutputNode](https://baklava.tech/api/types/_baklavajs_renderer-vue.OutputNode.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#outputnode) [PasteCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.PasteCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#pastecommand) [RedoCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.RedoCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#redocommand) [SaveSubgraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.SaveSubgraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#savesubgraphcommand) [SelectInterfaceItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.SelectInterfaceItem.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#selectinterfaceitem) [StartTransactionCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.StartTransactionCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#starttransactioncommand) [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#switchgraph) [SwitchToMainGraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchToMainGraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#switchtomaingraphcommand) [UndoCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.UndoCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#undocommand) [ZoomToFitGraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitGraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoomtofitgraphcommand) [ZoomToFitNodesCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitNodesCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoomtofitnodescommand) [ZoomToFitRectCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitRectCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoomtofitrectcommand) Variables --------- [CLEAR\_CLIPBOARD\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CLEAR_CLIPBOARD_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clear_clipboard_command) [CLEAR\_HISTORY\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CLEAR_HISTORY_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clear_history_command) [COMMIT\_TRANSACTION\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.COMMIT_TRANSACTION_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#commit_transaction_command) [COPY\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.COPY_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#copy_command) [CREATE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CREATE_SUBGRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#create_subgraph_command) [DEFAULT\_SETTINGS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DEFAULT_SETTINGS.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#default_settings) [DEFAULT\_TOOLBAR\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DEFAULT_TOOLBAR_COMMANDS.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#default_toolbar_commands) [DEFAULT\_TOOLBAR\_SUBGRAPH\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DEFAULT_TOOLBAR_SUBGRAPH_COMMANDS.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#default_toolbar_subgraph_commands) [DELETE\_NODES\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DELETE_NODES_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#delete_nodes_command) [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#editorcomponent) [OPEN\_SIDEBAR\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.OPEN_SIDEBAR_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#open_sidebar_command) [PASTE\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.PASTE_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#paste_command) [REDO\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.REDO_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#redo_command) [SAVE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SAVE_SUBGRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#save_subgraph_command) [START\_TRANSACTION\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.START_TRANSACTION_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#start_transaction_command) [SUBGRAPH\_INPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SUBGRAPH_INPUT_NODE_TYPE.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraph_input_node_type) [SUBGRAPH\_OUTPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SUBGRAPH_OUTPUT_NODE_TYPE.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraph_output_node_type) [SWITCH\_TO\_MAIN\_GRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SWITCH_TO_MAIN_GRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#switch_to_main_graph_command) [TOOLBAR\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.TOOLBAR_COMMANDS.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#toolbar_commands) [TOOLBAR\_SUBGRAPH\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.TOOLBAR_SUBGRAPH_COMMANDS.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#toolbar_subgraph_commands) [UNDO\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.UNDO_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#undo_command) [useCommandHandler](https://baklava.tech/api/variables/_baklavajs_renderer-vue.useCommandHandler.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usecommandhandler) [ZOOM\_TO\_FIT\_GRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_GRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoom_to_fit_graph_command) [ZOOM\_TO\_FIT\_NODES\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_NODES_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoom_to_fit_nodes_command) [ZOOM\_TO\_FIT\_RECT\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_RECT_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoom_to_fit_rect_command) Functions --------- [displayInSidebar](https://baklava.tech/api/functions/_baklavajs_renderer-vue.displayInSidebar.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#displayinsidebar) [getDomElementOfNode](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getDomElementOfNode.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getdomelementofnode) [getDomElements](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getDomElements.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getdomelements) [getNodePosition](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getNodePosition.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getnodeposition) [getPortCoordinates](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getPortCoordinates.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getportcoordinates) [isInputElement](https://baklava.tech/api/functions/_baklavajs_renderer-vue.isInputElement.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#isinputelement) [providePlugin](https://baklava.tech/api/functions/_baklavajs_renderer-vue.providePlugin.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#provideplugin) [provideTemporaryConnection](https://baklava.tech/api/functions/_baklavajs_renderer-vue.provideTemporaryConnection.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#providetemporaryconnection) [registerCreateSubgraphCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerCreateSubgraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registercreatesubgraphcommand) [registerDeleteNodesCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerDeleteNodesCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registerdeletenodescommand) [registerGraphCommands](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerGraphCommands.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registergraphcommands) [registerSaveSubgraphCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSaveSubgraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registersavesubgraphcommand) [registerSidebarCommands](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSidebarCommands.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registersidebarcommands) [registerSwitchToMainGraphCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSwitchToMainGraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registerswitchtomaingraphcommand) [registerZoomToFitCommands](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerZoomToFitCommands.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registerzoomtofitcommands) [setNodePosition](https://baklava.tech/api/functions/_baklavajs_renderer-vue.setNodePosition.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#setnodeposition) [setViewNodeProperties](https://baklava.tech/api/functions/_baklavajs_renderer-vue.setViewNodeProperties.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#setviewnodeproperties) [useBaklava](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useBaklava.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usebaklava) [useClipboard](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useClipboard.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#useclipboard) [useDragMove](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useDragMove.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usedragmove) [useGraph](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useGraph.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usegraph) [useHistory](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useHistory.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usehistory) [useNodeCategories](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useNodeCategories.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usenodecategories) [useSwitchGraph](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useSwitchGraph.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#useswitchgraph) [useTemporaryConnection](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useTemporaryConnection.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usetemporaryconnection) [useTransform](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useTransform.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usetransform) [useViewModel](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useViewModel.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#useviewmodel) References ---------- BaklavaEditor → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#baklavaeditor) ButtonInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#buttoninterfacecomponent) CheckboxInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#checkboxinterfacecomponent) IntegerInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#integerinterfacecomponent) NumberInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#numberinterfacecomponent) SelectInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#selectinterfacecomponent) SliderInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#sliderinterfacecomponent) TextareaInputInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textareainputinterfacecomponent) TextInputInterfaceComponent → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textinputinterfacecomponent) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Namespaces [Commands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#commands) [Components](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#components) Enumerations [TemporaryConnectionState](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#temporaryconnectionstate) Classes [ButtonInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#buttoninterface) [CheckboxInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#checkboxinterface) [IntegerInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#integerinterface) [NumberInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#numberinterface) [SelectInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#selectinterface) [SliderInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#sliderinterface) [SubgraphInputNode](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraphinputnode) [SubgraphOutputNode](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraphoutputnode) [TextareaInputInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textareainputinterface) [TextInputInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textinputinterface) [TextInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textinterface) Interfaces [IAdvancedSelectInterfaceItem](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iadvancedselectinterfaceitem) [IBaklavaViewModel](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#ibaklavaviewmodel) [IClipboard](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iclipboard) [ICommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#icommand) [ICommandHandler](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#icommandhandler) [IHistory](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#ihistory) [IResolvedDomElements](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iresolveddomelements) [ISubgraphInterfaceNode](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#isubgraphinterfacenode) [ITemporaryConnection](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#itemporaryconnection) [ITemporaryConnectionHandler](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#itemporaryconnectionhandler) [IViewNodeState](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iviewnodestate) [IViewSettings](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#iviewsettings) [SetViewNodePropertiesSettings](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#setviewnodepropertiessettings) [ToolbarCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#toolbarcommand) Type Aliases [ClearClipboardCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clearclipboardcommand) [ClearHistoryCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clearhistorycommand) [CommitTransactionCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#committransactioncommand) [ContextMenuItem](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#contextmenuitem) [CopyCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#copycommand) [CreateSubgraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#createsubgraphcommand) [DeleteNodesCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#deletenodescommand) [InputNode](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#inputnode) [OpenSidebarCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#opensidebarcommand) [OutputNode](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#outputnode) [PasteCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#pastecommand) [RedoCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#redocommand) [SaveSubgraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#savesubgraphcommand) [SelectInterfaceItem](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#selectinterfaceitem) [StartTransactionCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#starttransactioncommand) [SwitchGraph](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#switchgraph) [SwitchToMainGraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#switchtomaingraphcommand) [UndoCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#undocommand) [ZoomToFitGraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoomtofitgraphcommand) [ZoomToFitNodesCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoomtofitnodescommand) [ZoomToFitRectCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoomtofitrectcommand) Variables [CLEAR\_CLIPBOARD\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clear_clipboard_command) [CLEAR\_HISTORY\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#clear_history_command) [COMMIT\_TRANSACTION\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#commit_transaction_command) [COPY\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#copy_command) [CREATE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#create_subgraph_command) [DEFAULT\_SETTINGS](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#default_settings) [DEFAULT\_TOOLBAR\_COMMANDS](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#default_toolbar_commands) [DEFAULT\_TOOLBAR\_SUBGRAPH\_COMMANDS](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#default_toolbar_subgraph_commands) [DELETE\_NODES\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#delete_nodes_command) [EditorComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#editorcomponent) [OPEN\_SIDEBAR\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#open_sidebar_command) [PASTE\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#paste_command) [REDO\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#redo_command) [SAVE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#save_subgraph_command) [START\_TRANSACTION\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#start_transaction_command) [SUBGRAPH\_INPUT\_NODE\_TYPE](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraph_input_node_type) [SUBGRAPH\_OUTPUT\_NODE\_TYPE](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#subgraph_output_node_type) [SWITCH\_TO\_MAIN\_GRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#switch_to_main_graph_command) [TOOLBAR\_COMMANDS](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#toolbar_commands) [TOOLBAR\_SUBGRAPH\_COMMANDS](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#toolbar_subgraph_commands) [UNDO\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#undo_command) [useCommandHandler](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usecommandhandler) [ZOOM\_TO\_FIT\_GRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoom_to_fit_graph_command) [ZOOM\_TO\_FIT\_NODES\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoom_to_fit_nodes_command) [ZOOM\_TO\_FIT\_RECT\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#zoom_to_fit_rect_command) Functions [displayInSidebar](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#displayinsidebar) [getDomElementOfNode](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getdomelementofnode) [getDomElements](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getdomelements) [getNodePosition](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getnodeposition) [getPortCoordinates](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#getportcoordinates) [isInputElement](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#isinputelement) [providePlugin](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#provideplugin) [provideTemporaryConnection](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#providetemporaryconnection) [registerCreateSubgraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registercreatesubgraphcommand) [registerDeleteNodesCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registerdeletenodescommand) [registerGraphCommands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registergraphcommands) [registerSaveSubgraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registersavesubgraphcommand) [registerSidebarCommands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registersidebarcommands) [registerSwitchToMainGraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registerswitchtomaingraphcommand) [registerZoomToFitCommands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#registerzoomtofitcommands) [setNodePosition](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#setnodeposition) [setViewNodeProperties](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#setviewnodeproperties) [useBaklava](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usebaklava) [useClipboard](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#useclipboard) [useDragMove](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usedragmove) [useGraph](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usegraph) [useHistory](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usehistory) [useNodeCategories](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usenodecategories) [useSwitchGraph](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#useswitchgraph) [useTemporaryConnection](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usetemporaryconnection) [useTransform](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#usetransform) [useViewModel](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#useviewmodel) References [BaklavaEditor](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#baklavaeditor) [ButtonInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#buttoninterfacecomponent) [CheckboxInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#checkboxinterfacecomponent) [IntegerInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#integerinterfacecomponent) [NumberInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#numberinterfacecomponent) [SelectInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#selectinterfacecomponent) [SliderInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#sliderinterfacecomponent) [TextareaInputInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textareainputinterfacecomponent) [TextInputInterfaceComponent](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html#textinputinterfacecomponent) MMNEPVFCICPMFPCPTTAAATR --- # @baklavajs/core | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) Module @baklavajs/core ====================== Classes ------- [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#abstractnode) [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#connection) [DummyConnection](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#dummyconnection) [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#dynamicnode) [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#editor) [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graph) [GraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graphinputnode) [GraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graphoutputnode) [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graphtemplate) [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#node) [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterface) Interfaces ---------- [CalculationContext](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#calculationcontext) [CheckConnectionHookResult](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#checkconnectionhookresult) [DynamicNodeUpdateResult](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#dynamicnodeupdateresult) [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#iaddconnectioneventdata) [IAddNodeTypeEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#iaddnodetypeeventdata) [IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#iconnection) [IConnectionState](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#iconnectionstate) [IDynamicNodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#idynamicnodedefinition) [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#ieditorstate) [IEngine](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#iengine) [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#igraphinterface) [IGraphNode](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#igraphnode) [IGraphNodeState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#igraphnodestate) [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#igraphstate) [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#igraphtemplatestate) [INodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#inodedefinition) [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#inodeinterfacestate) [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#inodestate) [INodeTypeInformation](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#inodetypeinformation) [INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#inodeupdateeventdata) [IRegisterNodeTypeOptions](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#iregisternodetypeoptions) Type Aliases ------------ [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#abstractnodeconstructor) [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#calculatefunction) [CalculateFunctionReturnType](https://baklava.tech/api/types/_baklavajs_core.CalculateFunctionReturnType.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#calculatefunctionreturntype) [CalculationResult](https://baklava.tech/api/types/_baklavajs_core.CalculationResult.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#calculationresult) [CheckConnectionResult](https://baklava.tech/api/types/_baklavajs_core.CheckConnectionResult.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#checkconnectionresult) [DynamicNodeDefinition](https://baklava.tech/api/types/_baklavajs_core.DynamicNodeDefinition.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#dynamicnodedefinition) [GraphInputNodeState](https://baklava.tech/api/types/_baklavajs_core.GraphInputNodeState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graphinputnodestate) [GraphOutputNodeState](https://baklava.tech/api/types/_baklavajs_core.GraphOutputNodeState.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graphoutputnodestate) [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#interfacefactory) [NodeConstructor](https://baklava.tech/api/types/_baklavajs_core.NodeConstructor.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#nodeconstructor) [NodeInstanceOf](https://baklava.tech/api/types/_baklavajs_core.NodeInstanceOf.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinstanceof) [NodeInterfaceDefinition](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacedefinition) [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacedefinitionstates) [NodeInterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceFactory.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacefactory) [NodeInterfaceMiddleware](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacemiddleware) Variables --------- [GRAPH\_INPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_core.GRAPH_INPUT_NODE_TYPE.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graph_input_node_type) [GRAPH\_NODE\_TYPE\_PREFIX](https://baklava.tech/api/variables/_baklavajs_core.GRAPH_NODE_TYPE_PREFIX.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graph_node_type_prefix) [GRAPH\_OUTPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_core.GRAPH_OUTPUT_NODE_TYPE.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#graph_output_node_type) Functions --------- [createGraphNodeType](https://baklava.tech/api/functions/_baklavajs_core.createGraphNodeType.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#creategraphnodetype) [defineDynamicNode](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#definedynamicnode) [defineNode](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#definenode) [getGraphNodeTypeString](https://baklava.tech/api/functions/_baklavajs_core.getGraphNodeTypeString.html) [](https://baklava.tech/api/modules/_baklavajs_core.html#getgraphnodetypestring) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Classes [AbstractNode](https://baklava.tech/api/modules/_baklavajs_core.html#abstractnode) [Connection](https://baklava.tech/api/modules/_baklavajs_core.html#connection) [DummyConnection](https://baklava.tech/api/modules/_baklavajs_core.html#dummyconnection) [DynamicNode](https://baklava.tech/api/modules/_baklavajs_core.html#dynamicnode) [Editor](https://baklava.tech/api/modules/_baklavajs_core.html#editor) [Graph](https://baklava.tech/api/modules/_baklavajs_core.html#graph) [GraphInputNode](https://baklava.tech/api/modules/_baklavajs_core.html#graphinputnode) [GraphOutputNode](https://baklava.tech/api/modules/_baklavajs_core.html#graphoutputnode) [GraphTemplate](https://baklava.tech/api/modules/_baklavajs_core.html#graphtemplate) [Node](https://baklava.tech/api/modules/_baklavajs_core.html#node) [NodeInterface](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterface) Interfaces [CalculationContext](https://baklava.tech/api/modules/_baklavajs_core.html#calculationcontext) [CheckConnectionHookResult](https://baklava.tech/api/modules/_baklavajs_core.html#checkconnectionhookresult) [DynamicNodeUpdateResult](https://baklava.tech/api/modules/_baklavajs_core.html#dynamicnodeupdateresult) [IAddConnectionEventData](https://baklava.tech/api/modules/_baklavajs_core.html#iaddconnectioneventdata) [IAddNodeTypeEventData](https://baklava.tech/api/modules/_baklavajs_core.html#iaddnodetypeeventdata) [IConnection](https://baklava.tech/api/modules/_baklavajs_core.html#iconnection) [IConnectionState](https://baklava.tech/api/modules/_baklavajs_core.html#iconnectionstate) [IDynamicNodeDefinition](https://baklava.tech/api/modules/_baklavajs_core.html#idynamicnodedefinition) [IEditorState](https://baklava.tech/api/modules/_baklavajs_core.html#ieditorstate) [IEngine](https://baklava.tech/api/modules/_baklavajs_core.html#iengine) [IGraphInterface](https://baklava.tech/api/modules/_baklavajs_core.html#igraphinterface) [IGraphNode](https://baklava.tech/api/modules/_baklavajs_core.html#igraphnode) [IGraphNodeState](https://baklava.tech/api/modules/_baklavajs_core.html#igraphnodestate) [IGraphState](https://baklava.tech/api/modules/_baklavajs_core.html#igraphstate) [IGraphTemplateState](https://baklava.tech/api/modules/_baklavajs_core.html#igraphtemplatestate) [INodeDefinition](https://baklava.tech/api/modules/_baklavajs_core.html#inodedefinition) [INodeInterfaceState](https://baklava.tech/api/modules/_baklavajs_core.html#inodeinterfacestate) [INodeState](https://baklava.tech/api/modules/_baklavajs_core.html#inodestate) [INodeTypeInformation](https://baklava.tech/api/modules/_baklavajs_core.html#inodetypeinformation) [INodeUpdateEventData](https://baklava.tech/api/modules/_baklavajs_core.html#inodeupdateeventdata) [IRegisterNodeTypeOptions](https://baklava.tech/api/modules/_baklavajs_core.html#iregisternodetypeoptions) Type Aliases [AbstractNodeConstructor](https://baklava.tech/api/modules/_baklavajs_core.html#abstractnodeconstructor) [CalculateFunction](https://baklava.tech/api/modules/_baklavajs_core.html#calculatefunction) [CalculateFunctionReturnType](https://baklava.tech/api/modules/_baklavajs_core.html#calculatefunctionreturntype) [CalculationResult](https://baklava.tech/api/modules/_baklavajs_core.html#calculationresult) [CheckConnectionResult](https://baklava.tech/api/modules/_baklavajs_core.html#checkconnectionresult) [DynamicNodeDefinition](https://baklava.tech/api/modules/_baklavajs_core.html#dynamicnodedefinition) [GraphInputNodeState](https://baklava.tech/api/modules/_baklavajs_core.html#graphinputnodestate) [GraphOutputNodeState](https://baklava.tech/api/modules/_baklavajs_core.html#graphoutputnodestate) [InterfaceFactory](https://baklava.tech/api/modules/_baklavajs_core.html#interfacefactory) [NodeConstructor](https://baklava.tech/api/modules/_baklavajs_core.html#nodeconstructor) [NodeInstanceOf](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinstanceof) [NodeInterfaceDefinition](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacedefinition) [NodeInterfaceDefinitionStates](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacedefinitionstates) [NodeInterfaceFactory](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacefactory) [NodeInterfaceMiddleware](https://baklava.tech/api/modules/_baklavajs_core.html#nodeinterfacemiddleware) Variables [GRAPH\_INPUT\_NODE\_TYPE](https://baklava.tech/api/modules/_baklavajs_core.html#graph_input_node_type) [GRAPH\_NODE\_TYPE\_PREFIX](https://baklava.tech/api/modules/_baklavajs_core.html#graph_node_type_prefix) [GRAPH\_OUTPUT\_NODE\_TYPE](https://baklava.tech/api/modules/_baklavajs_core.html#graph_output_node_type) Functions [createGraphNodeType](https://baklava.tech/api/modules/_baklavajs_core.html#creategraphnodetype) [defineDynamicNode](https://baklava.tech/api/modules/_baklavajs_core.html#definedynamicnode) [defineNode](https://baklava.tech/api/modules/_baklavajs_core.html#definenode) [getGraphNodeTypeString](https://baklava.tech/api/modules/_baklavajs_core.html#getgraphnodetypestring) MMNEPVFCICPMFPCPTTAAATR --- # AbstractNode | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) Class AbstractNode`Abstract` ============================ #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/core.AbstractNode) , Expand) * AbstractNode * [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) #### Implements * IBaklavaEventEmitter * IBaklavaTapable ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#constructor) ### Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#_title) [calculate?](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#events) [graphInstance?](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#graphinstance) [hooks](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#type) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#title) ### Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#save) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#constructor) * new AbstractNode(): [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) [](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#constructorabstractnode) #### Returns [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) Properties ---------- ### `Protected`\_title[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#_title) \_title: string = "" ### `Optional` `Abstract`calculate[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#calculate) calculate?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) \>\> ### events[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#events) events: {     addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeRemoveInput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     titleChanged: BaklavaEvent;     update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>; } = ... ### `Protected` `Optional`graphInstance[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#graphinstance) graphInstance?: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#hooks) hooks: {     afterSave: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>;     beforeLoad: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#id) id: string = ... Unique identifier of the node ### `Abstract`inputs[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#inputs) inputs: Record\> ### `Abstract`outputs[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#outputs) outputs: Record\> ### `Abstract` `Readonly`type[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#type) type: string Type of the node Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#graph) * get graph(): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined The graph instance the node is placed in. `undefined` if the node hasn't been placed in a graph yet. #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined ### title[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#title) * get title(): string Customizable display name of the node. #### Returns string * set title(v: string): void #### Parameters * v: string #### Returns void Methods ------- ### `Protected`addInput[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addinput) * addInput(key: string, input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addinput-1) Add an input interface to the node #### Parameters * key: string Key of the input * input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The input instance #### Returns boolean True when the input was added, otherwise false (prevented by an event handler) ### `Protected`addOutput[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addoutput) * addOutput(key: string, output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addoutput-1) Add an output interface to the node #### Parameters * key: string Key of the output * output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The output instance #### Returns boolean True when the output was added, otherwise false (prevented by an event handler) ### `Protected`initializeIo[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#initializeio) * initializeIo(): void[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#initializeio-1) #### Returns void ### load[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#load) * load(state: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#load-1) #### Parameters * state: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) #### Returns void ### onDestroy[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#ondestroy) * onDestroy(): void[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#ondestroy-1) Override this method to perform cleanup when the node is deleted #### Returns void ### onPlaced[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#onplaced) * onPlaced(): void[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#onplaced-1) Override this method to execute logic when the node is placed inside a graph #### Returns void ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#registergraph) * registerGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#registergraph-1) This function will automatically be called as soon as the node is added to a graph. #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns void ### `Protected`removeInput[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeinput) * removeInput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeinput-1) Remove an existing input #### Parameters * key: string Key of the input. #### Returns boolean ### `Protected`removeOutput[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeoutput) * removeOutput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeoutput-1) Remove an existing output #### Parameters * key: string Key of the output. #### Returns boolean ### save[](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#save) * save(): [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) [](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#save-1) #### Returns [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#constructor) Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#events) [graphInstance](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#graphinstance) [hooks](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#type) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#title) Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html#save) MMNEPVFCICPMFPCPTTAAATR --- # GraphTemplate | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) Class GraphTemplate =================== #### Implements * [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#constructor) ### Properties [connections](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#connections) [editor](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#id) [nodes](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#nodes) ### Accessors [inputs](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#inputs) [name](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#name) [outputs](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#outputs) ### Methods [createGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#creategraph) [save](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#save) [update](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#update) [fromGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#fromgraph) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#constructor) * new GraphTemplate(     state: Optional<[IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) , "id" | "name"\>,     editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) , ): [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#constructorgraphtemplate) #### Parameters * state: Optional<[IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) , "id" | "name"\> * editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) #### Returns [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) Properties ---------- ### connections[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#connections) connections: [IConnectionState](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html) \[\] List of all connection states in this graph template ### editor[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#editor) editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) Editor instance ### events[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#events) events: {     nameChanged: BaklavaEvent;     updated: BaklavaEvent; } = ... ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#hooks) hooks: {     afterSave: SequentialHook<         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,         [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ,         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,     \>;     beforeLoad: SequentialHook<         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,         [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ,         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,     \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#id) id: string = ... Graph template id ### nodes[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#nodes) nodes: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) \[\] List of all node states in this graph template Accessors --------- ### inputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#inputs) * get inputs(): readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] List of all inputs to the graph template #### Returns readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] ### name[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#name) * get name(): string Get the name of the graph template #### Returns string * set name(v: string): void Set the name of the graph template #### Parameters * v: string #### Returns void ### outputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#outputs) * get outputs(): readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] List of all outputs of the graph template #### Returns readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] Methods ------- ### createGraph[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#creategraph) * createGraph(graph?: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#creategraph-1) Create a new graph instance from this template or load the state into the provided graph instance. #### Parameters * `Optional`graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ### save[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#save) * save(): [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#save-1) #### Returns [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ### update[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#update) * update(state: Omit<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , "id"\>): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#update-1) Update the state of the graph template with the provided state #### Parameters * state: Omit<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , "id"\> #### Returns void ### `Static`fromGraph[](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#fromgraph) * fromGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) ): [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#fromgraph-1) Create a new GraphTemplate from the nodes and connections inside the graph instance #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) * editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) #### Returns [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#constructor) Properties [connections](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#connections) [editor](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#id) [nodes](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#nodes) Accessors [inputs](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#inputs) [name](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#name) [outputs](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#outputs) Methods [createGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#creategraph) [save](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#save) [update](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#update) [fromGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html#fromgraph) MMNEPVFCICPMFPCPTTAAATR --- # defineDynamicNode | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [defineDynamicNode](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html) Function defineDynamicNode ========================== * defineDynamicNode<[I](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodeo) \>(     definition: [IDynamicNodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodeo) \>, ): new () \=> [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodeo) \>[](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnode) #### Type Parameters * I * O #### Parameters * definition: [IDynamicNodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodeo) \> #### Returns new () \=> [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineDynamicNode.html#definedynamicnodeo) \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark MMNEPVFCICPMFPCPTTAAATR --- # Connection | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) Class Connection ================ #### Implements * [IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) * IBaklavaEventEmitter ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#constructor) ### Properties [destructed](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#destructed) [events](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#events) [from](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#from) [id](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#id) [to](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#to) ### Methods [destruct](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#destruct) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#constructor) * new Connection(from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) [](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#constructorconnection) #### Parameters * from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) * to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) #### Returns [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) Properties ---------- ### destructed[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#destructed) destructed: boolean = false ### events[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#events) events: { destruct: BaklavaEvent } = ... ### from[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#from) from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### id[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#id) id: string ### to[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#to) to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) Methods ------- ### destruct[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#destruct) * destruct(): void[](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#destruct-1) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#constructor) Properties [destructed](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#destructed) [events](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#events) [from](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#from) [id](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#id) [to](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#to) Methods [destruct](https://baklava.tech/api/classes/_baklavajs_core.Connection.html#destruct) MMNEPVFCICPMFPCPTTAAATR --- # INodeDefinition | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [INodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html) Interface INodeDefinition =============================== interface INodeDefinition<[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \> {     [calculate](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#calculate) ?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) , NoInfer<[O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>\>;     [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#inputs) ?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) \>;     [onCreate](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#oncreate) ?: (this: [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>) \=> void;     [onDestroy](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#ondestroy) ?: (this: [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>) \=> void;     [onPlaced](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#onplaced) ?: (this: [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>) \=> void;     [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#outputs) ?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>;     [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#title) ?: string;     [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#type) : string; } #### Type Parameters * I * O ##### Index ### Properties [calculate?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#calculate) [inputs?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#inputs) [onCreate?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#oncreate) [onDestroy?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#ondestroy) [onPlaced?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#onplaced) [outputs?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#outputs) [title?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#type) Properties ---------- ### `Optional`calculate[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#calculate) calculate?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) , NoInfer<[O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>\> This function is called by the engine with the input values. It should perform the necessary calculation and then return the output values ### `Optional`inputs[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#inputs) inputs?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) \> Inputs of the node ### `Optional`onCreate[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#oncreate) onCreate?: (this: [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>) \=> void Called as soon as an instance of the node is created but before it is placed into a graph ### `Optional`onDestroy[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#ondestroy) onDestroy?: (this: [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>) \=> void Called after the node is removed from a graph. Can be used for cleanup ### `Optional`onPlaced[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#onplaced) onPlaced?: (this: [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \>) \=> void Called when the node is placed into a graph ### `Optional`outputs[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#outputs) outputs?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#o) \> Outputs of the node ### `Optional`title[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#title) title?: string Default title when creating the node. If not specified, it is set to the nodeType ### type[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#type) type: string NodeType ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [calculate](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#calculate) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#inputs) [onCreate](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#oncreate) [onDestroy](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#ondestroy) [onPlaced](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#onplaced) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#outputs) [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html#type) MMNEPVFCICPMFPCPTTAAATR --- # EngineStatus | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) Enumeration EngineStatus ======================== ##### Index ### Enumeration Members [Idle](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#idle) [Paused](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#paused) [Running](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#running) [Stopped](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#stopped) Enumeration Members ------------------- ### Idle[](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#idle) Idle: "Idle" The engine is not currently running a calculation but will do so when the graph changes ### Paused[](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#paused) Paused: "Paused" The engine is temporarily paused ### Running[](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#running) Running: "Running" The engine is currently running a calculation ### Stopped[](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#stopped) Stopped: "Stopped" The engine is not running ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Enumeration Members [Idle](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#idle) [Paused](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#paused) [Running](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#running) [Stopped](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html#stopped) --- # CycleError | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [CycleError](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html) Class CycleError ================ #### Hierarchy * Error * CycleError ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html#constructor) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html#constructor) * new CycleError(): [CycleError](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html) [](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html#constructorcycleerror) #### Returns [CycleError](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_engine.CycleError.html#constructor) --- # AfterNodeCalculationEventData | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [AfterNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html) Interface AfterNodeCalculationEventData ======================================= interface AfterNodeCalculationEventData {     [node](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#node) : AbstractNode;     [outputValues](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#outputvalues) : Record; } ##### Index ### Properties [node](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#node) [outputValues](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#outputvalues) Properties ---------- ### node[](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#node) node: AbstractNode The node that has just been calculated ### outputValues[](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#outputvalues) outputValues: Record Output values of the node's calculate method (key: node interface key, value: value for the node interface) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [node](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#node) [outputValues](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html#outputvalues) --- # BeforeNodeCalculationEventData | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [BeforeNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html) Interface BeforeNodeCalculationEventData ======================================== interface BeforeNodeCalculationEventData {     [inputValues](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#inputvalues) : Record;     [node](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#node) : AbstractNode; } ##### Index ### Properties [inputValues](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#inputvalues) [node](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#node) Properties ---------- ### inputValues[](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#inputvalues) inputValues: Record Values for the node's input interfaces (key: node interface key, value: value for the node interface) ### node[](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#node) node: AbstractNode The node that is about to be calculated ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [inputValues](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#inputvalues) [node](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html#node) --- # BaseEngine | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) Class BaseEngine`Abstract` ============================================================ #### Type Parameters * CalculationData * CalculationArgs extends any\[\] #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/engine.BaseEngine) ) * BaseEngine * [DependencyEngine](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html) #### Implements * IEngine<[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) \> ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructor) ### Properties [editor](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#hooks) [recalculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#recalculateorder) ### Accessors [status](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#status) ### Methods [calculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculateorder) [calculateWithoutData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculatewithoutdata) [checkConnection](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#checkconnection) [execute](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#execute) [getInputValues](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#getinputvalues) [onChange](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#onchange) [pause](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#pause) [resume](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#resume) [runGraph](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#rungraph) [runOnce](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#runonce) [start](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#start) [stop](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#stop) [validateNodeCalculationOutput](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#validatenodecalculationoutput) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructor) * new BaseEngine<[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) extends any\[\]\>(     editor: Editor, ): [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseengine) #### Type Parameters * CalculationData * CalculationArgs extends any\[\] #### Parameters * editor: Editor #### Returns [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \> Properties ---------- ### `Protected`editor[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#editor) editor: Editor ### events[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#events) events: {     afterNodeCalculation: BaklavaEvent<         [AfterNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html) ,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>,     \>;     afterRun: BaklavaEvent<         CalculationResult,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>,     \>;     beforeNodeCalculation: BaklavaEvent<         [BeforeNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html) ,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>,     \>;     beforeRun: PreventableBaklavaEvent<         [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) ,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>,     \>;     statusChange: BaklavaEvent<         [EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) ,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>,     \>; } = ... #### Type Declaration * ##### afterNodeCalculation: BaklavaEvent<     [AfterNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html) ,     [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>, \> This event is called after a node has been calculated. * ##### afterRun: BaklavaEvent\> This event is called as soon as a run is completed. The argument is the result of the calculation. * ##### beforeNodeCalculation: BaklavaEvent<     [BeforeNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html) ,     [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>, \> This event is called before a node is calculated. It is not preventable since this would break calculation. * ##### beforeRun: PreventableBaklavaEvent<     [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) ,     [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>, \> This event will be called before all the nodes `calculate` functions are called. The argument is the calculationData that the nodes will receive * ##### statusChange: BaklavaEvent<[EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) , [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>\> ### hooks[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#hooks) hooks: {     gatherCalculationData: SequentialHook<         [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata)         | undefined,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) \>,         [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) ,     \>;     transferData: DynamicSequentialHook; } = ... ### `Protected`recalculateOrder[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#recalculateorder) recalculateOrder: boolean = true Accessors --------- ### status[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#status) * get status(): [EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) #### Returns [EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) Methods ------- ### calculateOrder[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculateorder) * calculateOrder(): void[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculateorder-1) Force the engine to recalculate the node execution order before the next run. This is normally done automatically. Use this method if the default change detection does not work in your scenario. #### Returns void ### `Protected`calculateWithoutData[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculatewithoutdata) * calculateWithoutData(     ...args: [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) , ): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculatewithoutdata-1) Use the `gatherCalculationData` hook to get the calculation data #### Parameters * ...args: [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) The calculation arguments with which the engine's calculate method will be called (in addition to the `calculationData`) #### Returns Promise The calculation result ### checkConnection[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#checkconnection) * checkConnection(     from: NodeInterface,     to: NodeInterface, ): CheckConnectionHookResult[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#checkconnection-1) Check whether a connection can be created. A connection can not be created when it would result in a cyclic graph. #### Parameters * from: NodeInterface The interface from which the connection would start * to: NodeInterface The interface where the connection would end #### Returns CheckConnectionHookResult Whether the connection can be created ### `Protected` `Abstract`execute[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#execute) * execute(     calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) ,     ...calculationArgs: [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) , ): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#execute-1) Overwrite this method to perform the calculation #### Parameters * calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) The data which is provided to each node's `calculate` method * ...calculationArgs: [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) Additional data which is only provided to the engine #### Returns Promise The calculation result ### `Abstract`getInputValues[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#getinputvalues) * getInputValues(graph: Graph): Map[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#getinputvalues-1) Gathers the values of all unconnected input interfaces in the graph #### Parameters * graph: Graph #### Returns Map Map [nodeInterface.id](http://nodeinterface.id/) -> value ### `Protected` `Abstract`onChange[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#onchange) * onChange(     recalculateOrder: boolean,     updatedNode?: AbstractNode,     data?: INodeUpdateEventData, ): void[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#onchange-1) This method is called whenever the graph or values of node interfaces have been changed. You can overwrite this method to automatically trigger a calculation on change. Note: This method is only called when the engine is either idle or running. #### Parameters * recalculateOrder: boolean Whether the change modified the graph itself, e. g. a connection or a node was added/removed * `Optional`updatedNode: AbstractNode If a node was updated (which means the value a node's interface has been changed): the node that was updated; `undefined` otherwise * `Optional`data: INodeUpdateEventData If a node was updated: The `update` event payload to determine, which interface exactly has been changed; `undefined` otherwise #### Returns void ### pause[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#pause) * pause(): void[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#pause-1) Temporarily pause the engine. Use this method when you want to update the graph with the calculation results. #### Returns void ### resume[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#resume) * resume(): void[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#resume-1) Resume the engine from the paused state #### Returns void ### `Abstract`runGraph[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#rungraph) * runGraph(     graph: Graph,     inputs: Map,     calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) , ): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#rungraph-1) Run a non-root graph. This method can be used by nodes to calculate internal graphs (e. g. GraphNode). DO NOT use this method for calculation of the root graph! It won't emit any events. #### Parameters * graph: Graph The graph to execute * inputs: Map Map * calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) The data which is provided to each node's `calculate` method #### Returns Promise A promise that resolves to a map that maps rootNodes to their calculated value (what the calculation function of the node returned) ### runOnce[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#runonce) * runOnce(     calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) ,     ...args: [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) , ): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#runonce-1) Calculate all nodes once. This will automatically calculate the node calculation order if necessary and transfer values between connected node interfaces. #### Parameters * calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationdata) The data which is provided to each node's `calculate` method * ...args: [CalculationArgs](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructorbaseenginecalculationargs) #### Returns Promise A promise that resolves to either * a map from each node's id to its calculated value (what the calculation function of the node returned) * null if the calculation was prevented from the beforeRun event ### start[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#start) * start(): void[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#start-1) Start the engine. After started, it will run everytime the graph is changed. #### Returns void ### stop[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#stop) * stop(): void[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#stop-1) Stop the engine #### Returns void ### `Protected`validateNodeCalculationOutput[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#validatenodecalculationoutput) * validateNodeCalculationOutput(node: AbstractNode, output: any): void[](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#validatenodecalculationoutput-1) Validate the result of a node's `calculate` method. A result is valid if: * is has the correct format (it must be an object, where the key is the interface key and the value is the output value for that interface) * every output interface has a value assigned to it (null and undefined are also valid, but the key must exist in the object) #### Parameters * node: AbstractNode The node which produced the output data * output: any The result of the node's `calculate` method #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#constructor) Properties [editor](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#hooks) [recalculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#recalculateorder) Accessors [status](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#status) Methods [calculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculateorder) [calculateWithoutData](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#calculatewithoutdata) [checkConnection](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#checkconnection) [execute](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#execute) [getInputValues](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#getinputvalues) [onChange](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#onchange) [pause](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#pause) [resume](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#resume) [runGraph](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#rungraph) [runOnce](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#runonce) [start](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#start) [stop](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#stop) [validateNodeCalculationOutput](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html#validatenodecalculationoutput) --- # ITopologicalSortingResult | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) Interface ITopologicalSortingResult =================================== interface ITopologicalSortingResult {     [calculationOrder](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#calculationorder) : AbstractNode\[\];     [connectionsFromNode](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#connectionsfromnode) : Map;     [interfaceIdToNodeId](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#interfaceidtonodeid) : Map; } ##### Index ### Properties [calculationOrder](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#calculationorder) [connectionsFromNode](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#connectionsfromnode) [interfaceIdToNodeId](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#interfaceidtonodeid) Properties ---------- ### calculationOrder[](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#calculationorder) calculationOrder: AbstractNode\[\] ### connectionsFromNode[](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#connectionsfromnode) connectionsFromNode: Map ### interfaceIdToNodeId[](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#interfaceidtonodeid) interfaceIdToNodeId: Map [NodeInterface.id](http://nodeinterface.id/) -> parent [Node.id](http://node.id/) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [calculationOrder](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#calculationorder) [connectionsFromNode](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#connectionsfromnode) [interfaceIdToNodeId](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html#interfaceidtonodeid) --- # allowMultipleConnections | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [allowMultipleConnections](https://baklava.tech/api/functions/_baklavajs_engine.allowMultipleConnections.html) Function allowMultipleConnections ================================= * allowMultipleConnections<[T](https://baklava.tech/api/functions/_baklavajs_engine.allowMultipleConnections.html#allowmultipleconnectionst) extends any\[\]\>(intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_engine.allowMultipleConnections.html#allowmultipleconnectionst) \>): void[](https://baklava.tech/api/functions/_baklavajs_engine.allowMultipleConnections.html#allowmultipleconnections) #### Type Parameters * T extends any\[\] #### Parameters * intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_engine.allowMultipleConnections.html#allowmultipleconnectionst) \> #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DependencyEngine | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [DependencyEngine](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html) Class DependencyEngine ======================================= #### Type Parameters * CalculationData = any #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/engine.DependencyEngine) ) * [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\> * DependencyEngine ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructor) ### Properties [editor](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#hooks) [recalculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#recalculateorder) ### Accessors [status](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#status) ### Methods [calculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculateorder) [calculateWithoutData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculatewithoutdata) [checkConnection](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#checkconnection) [execute](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#execute) [getInputValues](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#getinputvalues) [onChange](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#onchange) [pause](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#pause) [resume](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#resume) [runGraph](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#rungraph) [runOnce](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#runonce) [start](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#start) [stop](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#stop) [validateNodeCalculationOutput](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#validatenodecalculationoutput) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructor) * new DependencyEngine<[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) \= any\>(     editor: Editor, ): [DependencyEngine](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) \>[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyengine) #### Type Parameters * CalculationData = any #### Parameters * editor: Editor #### Returns [DependencyEngine](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) \> Properties ---------- ### `Protected`editor[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#editor) editor: Editor ### events[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#events) events: {     afterNodeCalculation: BaklavaEvent<         [AfterNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html) ,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>,     \>;     afterRun: BaklavaEvent\>;     beforeNodeCalculation: BaklavaEvent<         [BeforeNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html) ,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>,     \>;     beforeRun: PreventableBaklavaEvent<         [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) ,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>,     \>;     statusChange: BaklavaEvent<[EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) , [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>\>; } = ... #### Type Declaration * ##### afterNodeCalculation: BaklavaEvent<[AfterNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.AfterNodeCalculationEventData.html) , [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>\> This event is called after a node has been calculated. * ##### afterRun: BaklavaEvent\> This event is called as soon as a run is completed. The argument is the result of the calculation. * ##### beforeNodeCalculation: BaklavaEvent<[BeforeNodeCalculationEventData](https://baklava.tech/api/interfaces/_baklavajs_engine.BeforeNodeCalculationEventData.html) , [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>\> This event is called before a node is calculated. It is not preventable since this would break calculation. * ##### beforeRun: PreventableBaklavaEvent<[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>\> This event will be called before all the nodes `calculate` functions are called. The argument is the calculationData that the nodes will receive * ##### statusChange: BaklavaEvent<[EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) , [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>\> ### hooks[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#hooks) hooks: {     gatherCalculationData: SequentialHook<         [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata)         | undefined,         [BaseEngine](https://baklava.tech/api/classes/_baklavajs_engine.BaseEngine.html) <[CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , \[\]\>,         [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) ,     \>;     transferData: DynamicSequentialHook; } = ... ### `Protected`recalculateOrder[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#recalculateorder) recalculateOrder: boolean = true Accessors --------- ### status[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#status) * get status(): [EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) #### Returns [EngineStatus](https://baklava.tech/api/enums/_baklavajs_engine.EngineStatus.html) Methods ------- ### calculateOrder[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculateorder) * calculateOrder(): void[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculateorder-1) Force the engine to recalculate the node execution order before the next run. This is normally done automatically. Use this method if the default change detection does not work in your scenario. #### Returns void ### `Protected`calculateWithoutData[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculatewithoutdata) * calculateWithoutData(...args: \[\]): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculatewithoutdata-1) Use the `gatherCalculationData` hook to get the calculation data #### Parameters * ...args: \[\] The calculation arguments with which the engine's calculate method will be called (in addition to the `calculationData`) #### Returns Promise The calculation result ### checkConnection[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#checkconnection) * checkConnection(     from: NodeInterface,     to: NodeInterface, ): CheckConnectionHookResult[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#checkconnection-1) Check whether a connection can be created. A connection can not be created when it would result in a cyclic graph. #### Parameters * from: NodeInterface The interface from which the connection would start * to: NodeInterface The interface where the connection would end #### Returns CheckConnectionHookResult Whether the connection can be created ### `Protected`execute[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#execute) * execute(calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) ): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#execute-1) Overwrite this method to perform the calculation #### Parameters * calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) The data which is provided to each node's `calculate` method #### Returns Promise The calculation result ### getInputValues[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#getinputvalues) * getInputValues(graph: Graph): Map[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#getinputvalues-1) Gathers the values of all unconnected input interfaces in the graph #### Parameters * graph: Graph #### Returns Map Map [nodeInterface.id](http://nodeinterface.id/) -> value ### `Protected`onChange[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#onchange) * onChange(recalculateOrder: boolean): void[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#onchange-1) This method is called whenever the graph or values of node interfaces have been changed. You can overwrite this method to automatically trigger a calculation on change. Note: This method is only called when the engine is either idle or running. #### Parameters * recalculateOrder: boolean Whether the change modified the graph itself, e. g. a connection or a node was added/removed #### Returns void ### pause[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#pause) * pause(): void[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#pause-1) Temporarily pause the engine. Use this method when you want to update the graph with the calculation results. #### Returns void ### resume[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#resume) * resume(): void[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#resume-1) Resume the engine from the paused state #### Returns void ### runGraph[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#rungraph) * runGraph(     graph: Graph,     inputs: Map,     calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) , ): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#rungraph-1) Run a non-root graph. This method can be used by nodes to calculate internal graphs (e. g. GraphNode). DO NOT use this method for calculation of the root graph! It won't emit any events. #### Parameters * graph: Graph The graph to execute * inputs: Map Map * calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) The data which is provided to each node's `calculate` method #### Returns Promise A promise that resolves to a map that maps rootNodes to their calculated value (what the calculation function of the node returned) ### runOnce[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#runonce) * runOnce(     calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) ,     ...args: \[\], ): Promise[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#runonce-1) Calculate all nodes once. This will automatically calculate the node calculation order if necessary and transfer values between connected node interfaces. #### Parameters * calculationData: [CalculationData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructordependencyenginecalculationdata) The data which is provided to each node's `calculate` method * ...args: \[\] #### Returns Promise A promise that resolves to either * a map from each node's id to its calculated value (what the calculation function of the node returned) * null if the calculation was prevented from the beforeRun event ### start[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#start) * start(): void[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#start-1) Start the engine. After started, it will run everytime the graph is changed. #### Returns void ### stop[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#stop) * stop(): void[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#stop-1) Stop the engine #### Returns void ### `Protected`validateNodeCalculationOutput[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#validatenodecalculationoutput) * validateNodeCalculationOutput(node: AbstractNode, output: any): void[](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#validatenodecalculationoutput-1) Validate the result of a node's `calculate` method. A result is valid if: * is has the correct format (it must be an object, where the key is the interface key and the value is the output value for that interface) * every output interface has a value assigned to it (null and undefined are also valid, but the key must exist in the object) #### Parameters * node: AbstractNode The node which produced the output data * output: any The result of the node's `calculate` method #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#constructor) Properties [editor](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#hooks) [recalculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#recalculateorder) Accessors [status](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#status) Methods [calculateOrder](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculateorder) [calculateWithoutData](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#calculatewithoutdata) [checkConnection](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#checkconnection) [execute](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#execute) [getInputValues](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#getinputvalues) [onChange](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#onchange) [pause](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#pause) [resume](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#resume) [runGraph](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#rungraph) [runOnce](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#runonce) [start](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#start) [stop](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#stop) [validateNodeCalculationOutput](https://baklava.tech/api/classes/_baklavajs_engine.DependencyEngine.html#validatenodecalculationoutput) --- # applyResult | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [applyResult](https://baklava.tech/api/functions/_baklavajs_engine.applyResult.html) Function applyResult ==================== * applyResult(result: CalculationResult, editor: Editor): void[](https://baklava.tech/api/functions/_baklavajs_engine.applyResult.html#applyresult) Apply the calculation result values to the output interfaces in the graph #### Parameters * result: CalculationResult Calculation result * editor: Editor Editor instance #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # containsCycle | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [containsCycle](https://baklava.tech/api/functions/_baklavajs_engine.containsCycle.html) Function containsCycle ====================== * containsCycle(graph: Graph): boolean[](https://baklava.tech/api/functions/_baklavajs_engine.containsCycle.html#containscycle) Checks whether a graph contains a cycle #### Parameters * graph: Graph #### Returns boolean * containsCycle(     nodes: readonly AbstractNode\[\],     connections: readonly IConnection\[\], ): boolean[](https://baklava.tech/api/functions/_baklavajs_engine.containsCycle.html#containscycle-1) Checks whether the provided set of nodes and connections contains a cycle #### Parameters * nodes: readonly AbstractNode\[\] * connections: readonly IConnection\[\] #### Returns boolean ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # sortTopologically | Reference - BaklavaJS * [@baklavajs/engine](https://baklava.tech/api/modules/_baklavajs_engine.html) * [sortTopologically](https://baklava.tech/api/functions/_baklavajs_engine.sortTopologically.html) Function sortTopologically ========================== * sortTopologically(graph: Graph): [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) [](https://baklava.tech/api/functions/_baklavajs_engine.sortTopologically.html#sorttopologically) Uses Kahn's algorithm to topologically sort the nodes in the graph #### Parameters * graph: Graph #### Returns [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) * sortTopologically(     nodes: readonly AbstractNode\[\],     connections: readonly IConnection\[\], ): [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) [](https://baklava.tech/api/functions/_baklavajs_engine.sortTopologically.html#sorttopologically-1) Uses Kahn's algorithm to topologically sort the nodes in the graph #### Parameters * nodes: readonly AbstractNode\[\] * connections: readonly IConnection\[\] #### Returns [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) * sortTopologically(     nodesOrGraph: Graph | readonly AbstractNode\[\],     connections?: readonly IConnection\[\], ): [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) [](https://baklava.tech/api/functions/_baklavajs_engine.sortTopologically.html#sorttopologically-2) This overload is only used for internal purposes #### Parameters * nodesOrGraph: Graph | readonly AbstractNode\[\] * `Optional`connections: readonly IConnection\[\] #### Returns [ITopologicalSortingResult](https://baklava.tech/api/interfaces/_baklavajs_engine.ITopologicalSortingResult.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DummyConnection | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [DummyConnection](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html) Class DummyConnection ===================== This class is used for calculation purposes only. It won't alter any state of the connected nodes #### Implements * [IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#constructor) ### Properties [from](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#from) [id](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#id) [to](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#to) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#constructor) * new DummyConnection(from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): [DummyConnection](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html) [](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#constructordummyconnection) #### Parameters * from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) * to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) #### Returns [DummyConnection](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html) Properties ---------- ### from[](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#from) from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### id[](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#id) id: string ### to[](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#to) to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#constructor) Properties [from](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#from) [id](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#id) [to](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html#to) --- # CheckConnectionHookResult | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [CheckConnectionHookResult](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html) Interface CheckConnectionHookResult =================================== interface CheckConnectionHookResult {     [connectionAllowed](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionallowed) : boolean;     [connectionsInDanger](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionsindanger) : [IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) \[\]; } ##### Index ### Properties [connectionAllowed](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionallowed) [connectionsInDanger](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionsindanger) Properties ---------- ### connectionAllowed[](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionallowed) connectionAllowed: boolean ### connectionsInDanger[](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionsindanger) connectionsInDanger: [IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) \[\] ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [connectionAllowed](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionallowed) [connectionsInDanger](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html#connectionsindanger) --- # DynamicNode | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) Class DynamicNode`Abstract` `Internal` ============================================ Abstract base class for every dynamic node #### Type Parameters * I * O #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/core.DynamicNode) ) * [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) , Dynamic<[O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>\> * DynamicNode ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructor) ### Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#_title) [calculate?](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#events) [graphInstance?](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#graphinstance) [hooks](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#type) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#title) ### Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#save) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructor) * new DynamicNode<[I](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>(): [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnode) #### Type Parameters * I * O #### Returns [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \> Properties ---------- ### `Protected`\_title[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#_title) \_title: string = "" ### `Optional`calculate[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#calculate) calculate?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) , Dynamic<[O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>\> The default implementation does nothing. Overwrite this method to do calculation. #### Param: inputs[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#param-inputs) Values of all input interfaces #### Param: globalValues[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#param-globalvalues) Set of values passed to every node by the engine plugin #### Returns[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#returns) Values for output interfaces ### events[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#events) events: {     addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeRemoveInput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     titleChanged: BaklavaEvent;     update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>; } = ... ### `Protected` `Optional`graphInstance[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#graphinstance) graphInstance?: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#hooks) hooks: {     afterSave: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>;     beforeLoad: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#id) id: string = ... Unique identifier of the node ### `Abstract`inputs[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#inputs) inputs: [NodeInterfaceDefinition](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html) \> ### `Abstract`outputs[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#outputs) outputs: [NodeInterfaceDefinition](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html) \> ### `Abstract` `Readonly`type[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#type) type: string Type of the node Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#graph) * get graph(): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined The graph instance the node is placed in. `undefined` if the node hasn't been placed in a graph yet. #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined ### title[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#title) * get title(): string Customizable display name of the node. #### Returns string * set title(v: string): void #### Parameters * v: string #### Returns void Methods ------- ### `Protected`addInput[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addinput) * addInput(key: string, input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addinput-1) Add an input interface to the node #### Parameters * key: string Key of the input * input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The input instance #### Returns boolean True when the input was added, otherwise false (prevented by an event handler) ### `Protected`addOutput[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addoutput) * addOutput(key: string, output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addoutput-1) Add an output interface to the node #### Parameters * key: string Key of the output * output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The output instance #### Returns boolean True when the output was added, otherwise false (prevented by an event handler) ### `Protected`initializeIo[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#initializeio) * initializeIo(): void[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#initializeio-1) #### Returns void ### `Abstract`load[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#load) * load(state: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) , Dynamic<[O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>\>): void[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#load-1) #### Parameters * state: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) , Dynamic<[O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>\> #### Returns void ### onDestroy[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#ondestroy) * onDestroy(): void[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#ondestroy-1) Override this method to perform cleanup when the node is deleted #### Returns void ### onPlaced[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#onplaced) * onPlaced(): void[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#onplaced-1) Override this method to execute logic when the node is placed inside a graph #### Returns void ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#registergraph) * registerGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#registergraph-1) This function will automatically be called as soon as the node is added to a graph. #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns void ### `Protected`removeInput[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeinput) * removeInput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeinput-1) Remove an existing input #### Parameters * key: string Key of the input. #### Returns boolean ### `Protected`removeOutput[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeoutput) * removeOutput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeoutput-1) Remove an existing output #### Parameters * key: string Key of the output. #### Returns boolean ### save[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#save) * save(): [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) , Dynamic<[O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>\>[](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#save-1) #### Returns [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) , Dynamic<[O](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructordynamicnodeo) \>\> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#constructor) Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#events) [graphInstance](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#graphinstance) [hooks](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#type) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#title) Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html#save) --- # CalculationContext | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [CalculationContext](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html) Interface CalculationContext ================================== interface CalculationContext<[G](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#g) \= any, [E](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#e) extends [IEngine](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html) <[G](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#g) \> \= [IEngine](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html) <[G](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#g) \>\> {     [engine](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#engine) : [E](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#e) ;     [globalValues](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#globalvalues) : [G](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#g) ; } #### Type Parameters * G = any * E extends [IEngine](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html) <[G](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#g) \> = [IEngine](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html) <[G](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#g) \> ##### Index ### Properties [engine](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#engine) [globalValues](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#globalvalues) Properties ---------- ### engine[](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#engine) engine: [E](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#e) ### globalValues[](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#globalvalues) globalValues: [G](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#g) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [engine](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#engine) [globalValues](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html#globalvalues) --- # DynamicNodeUpdateResult | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [DynamicNodeUpdateResult](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html) Interface DynamicNodeUpdateResult ================================= interface DynamicNodeUpdateResult {     [forceUpdateInputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateinputs) ?: string\[\];     [forceUpdateOutputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateoutputs) ?: string\[\];     [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#inputs) ?: [DynamicNodeDefinition](https://baklava.tech/api/types/_baklavajs_core.DynamicNodeDefinition.html) ;     [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#outputs) ?: [DynamicNodeDefinition](https://baklava.tech/api/types/_baklavajs_core.DynamicNodeDefinition.html) ; } ##### Index ### Properties [forceUpdateInputs?](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateinputs) [forceUpdateOutputs?](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateoutputs) [inputs?](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#inputs) [outputs?](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#outputs) Properties ---------- ### `Optional`forceUpdateInputs[](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateinputs) forceUpdateInputs?: string\[\] ### `Optional`forceUpdateOutputs[](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateoutputs) forceUpdateOutputs?: string\[\] ### `Optional`inputs[](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#inputs) inputs?: [DynamicNodeDefinition](https://baklava.tech/api/types/_baklavajs_core.DynamicNodeDefinition.html) ### `Optional`outputs[](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#outputs) outputs?: [DynamicNodeDefinition](https://baklava.tech/api/types/_baklavajs_core.DynamicNodeDefinition.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [forceUpdateInputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateinputs) [forceUpdateOutputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#forceupdateoutputs) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#inputs) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html#outputs) --- # IAddConnectionEventData | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) Interface IAddConnectionEventData ================================= interface IAddConnectionEventData {     [from](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#from) : [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ;     [to](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#to) : [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ; } ##### Index ### Properties [from](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#from) [to](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#to) Properties ---------- ### from[](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#from) from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### to[](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#to) to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [from](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#from) [to](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html#to) --- # IConnectionState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IConnectionState](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html) Interface IConnectionState ========================== interface IConnectionState {     [from](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#from) : string;     [id](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#id) : string;     [to](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#to) : string;     \[key: string\]: any; } #### Hierarchy * Record * IConnectionState #### Indexable * \[key: string\]: any ##### Index ### Properties [from](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#from) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#id) [to](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#to) Properties ---------- ### from[](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#from) from: string id of the source interface ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#id) id: string id of the connection ### to[](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#to) to: string id of the target interface ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [from](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#from) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#id) [to](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html#to) --- # IAddNodeTypeEventData | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IAddNodeTypeEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html) Interface IAddNodeTypeEventData =============================== interface IAddNodeTypeEventData {     [options](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#options) ?: [IRegisterNodeTypeOptions](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html) ;     [type](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#type) : [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) ; } ##### Index ### Properties [options?](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#options) [type](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#type) Properties ---------- ### `Optional`options[](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#options) options?: [IRegisterNodeTypeOptions](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html) ### type[](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#type) type: [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [options](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#options) [type](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html#type) --- # GraphInputNode | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html) Class GraphInputNode ==================== #### Hierarchy * GraphInterfaceNode<{ name: string }, { placeholder: any }\> * GraphInputNode ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#constructor) ### Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#_title) [calculate?](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#events) [graphInstance?](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#type) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#title) ### Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#save) [isGraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#isgraphinputnode) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#constructor) * new GraphInputNode(): [GraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#constructorgraphinputnode) #### Returns [GraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html) Properties ---------- ### `Protected`\_title[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#_title) \_title: string = "" ### `Optional`calculate[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#calculate) calculate?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) <     { name: string },     { placeholder: any },     [CalculationContext](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html) \>, \> The default implementation does nothing. Overwrite this method to do calculation. #### Param: inputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#param-inputs) Values of all input interfaces #### Param: globalValues[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#param-globalvalues) Set of values passed to every node by the engine plugin #### Returns[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#returns) Values for output interfaces ### events[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#events) events: {     addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeRemoveInput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     titleChanged: BaklavaEvent;     update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>; } = ... ### `Protected` `Optional`graphInstance[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graphinstance) graphInstance?: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ### graphInterfaceId[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graphinterfaceid) graphInterfaceId: string ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#hooks) hooks: {     afterSave: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>;     beforeLoad: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#id) id: string = ... Unique identifier of the node ### inputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#inputs) inputs: { name: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) } = ... ### outputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#outputs) outputs: { placeholder: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) } = ... ### `Readonly`type[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#type) type: "\_\_baklava\_SubgraphInputNode" = GRAPH\_INPUT\_NODE\_TYPE Type of the node Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graph) * get graph(): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined The graph instance the node is placed in. `undefined` if the node hasn't been placed in a graph yet. #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined ### title[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#title) * get title(): string Customizable display name of the node. #### Returns string * set title(v: string): void #### Parameters * v: string #### Returns void Methods ------- ### `Protected`addInput[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addinput) * addInput(key: string, input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addinput-1) Add an input interface to the node #### Parameters * key: string Key of the input * input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The input instance #### Returns boolean True when the input was added, otherwise false (prevented by an event handler) ### `Protected`addOutput[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addoutput) * addOutput(key: string, output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addoutput-1) Add an output interface to the node #### Parameters * key: string Key of the output * output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The output instance #### Returns boolean True when the output was added, otherwise false (prevented by an event handler) ### `Protected`initializeIo[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#initializeio) * initializeIo(): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#initializeio-1) #### Returns void ### load[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#load) * load(     state: IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\>, ): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#load-1) #### Parameters * state: IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\> #### Returns void ### onDestroy[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#ondestroy) * onDestroy(): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#ondestroy-1) Override this method to perform cleanup when the node is deleted #### Returns void ### onPlaced[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#onplaced) * onPlaced(): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#onplaced-1) Override this method to execute logic when the node is placed inside a graph #### Returns void ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#registergraph) * registerGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#registergraph-1) This function will automatically be called as soon as the node is added to a graph. #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns void ### `Protected`removeInput[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeinput) * removeInput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeinput-1) Remove an existing input #### Parameters * key: string Key of the input. #### Returns boolean ### `Protected`removeOutput[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeoutput) * removeOutput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeoutput-1) Remove an existing output #### Parameters * key: string Key of the output. #### Returns boolean ### save[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#save) * save(): IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\>[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#save-1) #### Returns IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\> ### `Static`isGraphInputNode[](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#isgraphinputnode) * isGraphInputNode(v: [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ): v is [GraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#isgraphinputnode-1) #### Parameters * v: [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) #### Returns v is [GraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#constructor) Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#events) [graphInstance](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#type) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#title) Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#save) [isGraphInputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphInputNode.html#isgraphinputnode) --- # IConnection | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) Interface IConnection ===================== interface IConnection {     [from](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#from) : [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ;     [id](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#id) : string;     [to](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#to) : [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ; } #### Implemented by * [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) * [DummyConnection](https://baklava.tech/api/classes/_baklavajs_core.DummyConnection.html) ##### Index ### Properties [from](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#from) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#id) [to](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#to) Properties ---------- ### from[](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#from) from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#id) id: string ### to[](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#to) to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [from](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#from) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#id) [to](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html#to) --- # IEditorState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) Interface IEditorState ====================== interface IEditorState {     [graph](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graph) : [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) ;     [graphTemplates](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graphtemplates) : [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) \[\];     \[key: string\]: any; } #### Hierarchy * Record * IEditorState #### Indexable * \[key: string\]: any ##### Index ### Properties [graph](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graph) [graphTemplates](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graphtemplates) Properties ---------- ### graph[](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graph) graph: [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) ### graphTemplates[](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graphtemplates) graphTemplates: [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) \[\] ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [graph](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graph) [graphTemplates](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html#graphtemplates) --- # GraphOutputNode | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html) Class GraphOutputNode ===================== #### Hierarchy * GraphInterfaceNode<{ name: string; placeholder: any }, { output: any }\> * GraphOutputNode ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#constructor) ### Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#events) [graphInstance?](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#type) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#title) ### Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#save) [isGraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#isgraphoutputnode) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#constructor) * new GraphOutputNode(): [GraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#constructorgraphoutputnode) #### Returns [GraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html) Properties ---------- ### `Protected`\_title[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#_title) \_title: string = "" ### calculate[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#calculate) calculate: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) <{ placeholder: any }, { output: any }\> = ... The default implementation does nothing. Overwrite this method to do calculation. #### Param: inputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#param-inputs) Values of all input interfaces #### Param: globalValues[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#param-globalvalues) Set of values passed to every node by the engine plugin #### Returns[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#returns) Values for output interfaces ### events[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#events) events: {     addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeRemoveInput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     titleChanged: BaklavaEvent;     update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>; } = ... ### `Protected` `Optional`graphInstance[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graphinstance) graphInstance?: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ### graphInterfaceId[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graphinterfaceid) graphInterfaceId: string ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#hooks) hooks: {     afterSave: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>;     beforeLoad: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#id) id: string = ... Unique identifier of the node ### inputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#inputs) inputs: { name: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ; placeholder: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) } = ... ### outputs[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#outputs) outputs: { output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) } = ... ### `Readonly`type[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#type) type: "\_\_baklava\_SubgraphOutputNode" = GRAPH\_OUTPUT\_NODE\_TYPE Type of the node Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graph) * get graph(): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined The graph instance the node is placed in. `undefined` if the node hasn't been placed in a graph yet. #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined ### title[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#title) * get title(): string Customizable display name of the node. #### Returns string * set title(v: string): void #### Parameters * v: string #### Returns void Methods ------- ### `Protected`addInput[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addinput) * addInput(key: string, input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addinput-1) Add an input interface to the node #### Parameters * key: string Key of the input * input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The input instance #### Returns boolean True when the input was added, otherwise false (prevented by an event handler) ### `Protected`addOutput[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addoutput) * addOutput(key: string, output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addoutput-1) Add an output interface to the node #### Parameters * key: string Key of the output * output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The output instance #### Returns boolean True when the output was added, otherwise false (prevented by an event handler) ### `Protected`initializeIo[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#initializeio) * initializeIo(): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#initializeio-1) #### Returns void ### load[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#load) * load(     state: IGraphInterfaceNodeState<         { name: string; placeholder: any },         { output: any },     \>, ): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#load-1) #### Parameters * state: IGraphInterfaceNodeState<{ name: string; placeholder: any }, { output: any }\> #### Returns void ### onDestroy[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#ondestroy) * onDestroy(): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#ondestroy-1) Override this method to perform cleanup when the node is deleted #### Returns void ### onPlaced[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#onplaced) * onPlaced(): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#onplaced-1) Override this method to execute logic when the node is placed inside a graph #### Returns void ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#registergraph) * registerGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#registergraph-1) This function will automatically be called as soon as the node is added to a graph. #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns void ### `Protected`removeInput[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeinput) * removeInput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeinput-1) Remove an existing input #### Parameters * key: string Key of the input. #### Returns boolean ### `Protected`removeOutput[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeoutput) * removeOutput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeoutput-1) Remove an existing output #### Parameters * key: string Key of the output. #### Returns boolean ### save[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#save) * save(): IGraphInterfaceNodeState<     { name: string; placeholder: any },     { output: any }, \>[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#save-1) #### Returns IGraphInterfaceNodeState<{ name: string; placeholder: any }, { output: any }\> ### `Static`isGraphOutputNode[](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#isgraphoutputnode) * isGraphOutputNode(v: [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ): v is [GraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html) [](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#isgraphoutputnode-1) #### Parameters * v: [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) #### Returns v is [GraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#constructor) Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#events) [graphInstance](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#type) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#title) Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#save) [isGraphOutputNode](https://baklava.tech/api/classes/_baklavajs_core.GraphOutputNode.html#isgraphoutputnode) --- # IDynamicNodeDefinition | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IDynamicNodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html) Interface IDynamicNodeDefinition ====================================== interface IDynamicNodeDefinition<[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \> {     [calculate](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#calculate) ?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) , Dynamic<[O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>\>;     [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#inputs) ?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) \>;     [onCreate](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#oncreate) ?: (this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>) \=> void;     [onDestroy](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#ondestroy) ?: (this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>) \=> void;     [onPlaced](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onplaced) ?: (this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>) \=> void;     [onUpdate](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onupdate) : (         this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>,         inputs: [I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) ,         outputs: [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) ,     ) \=> [DynamicNodeUpdateResult](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html) ;     [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#outputs) ?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>;     [title](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#title) ?: string;     [type](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#type) : string; } #### Type Parameters * I * O ##### Index ### Properties [calculate?](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#calculate) [inputs?](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#inputs) [onCreate?](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#oncreate) [onDestroy?](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#ondestroy) [onPlaced?](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onplaced) [onUpdate](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onupdate) [outputs?](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#outputs) [title?](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#type) Properties ---------- ### `Optional`calculate[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#calculate) calculate?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) , Dynamic<[O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>\> This function is called by the engine with the input values. It should perform the necessary calculation and then return the output values ### `Optional`inputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#inputs) inputs?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) \> Inputs of the node ### `Optional`onCreate[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#oncreate) onCreate?: (this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>) \=> void Called as soon as an instance of the node is created but before it is placed into a graph ### `Optional`onDestroy[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#ondestroy) onDestroy?: (this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>) \=> void Called after the node is removed from a graph. Can be used for cleanup ### `Optional`onPlaced[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onplaced) onPlaced?: (this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>) \=> void Called when the node is placed into a graph ### onUpdate[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onupdate) onUpdate: (     this: [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \>,     inputs: [I](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#i) ,     outputs: [O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) , ) \=> [DynamicNodeUpdateResult](https://baklava.tech/api/interfaces/_baklavajs_core.DynamicNodeUpdateResult.html) This function is called whenever the value of one of the static input or output interfaces is changed. It should return a definition for every dynamic interface based on the values of the static interfaces. ### `Optional`outputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#outputs) outputs?: [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) <[O](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#o) \> Outputs of the node ### `Optional`title[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#title) title?: string Default title when creating the node. If not specified, it is set to the nodeType ### type[](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#type) type: string NodeType ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [calculate](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#calculate) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#inputs) [onCreate](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#oncreate) [onDestroy](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#ondestroy) [onPlaced](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onplaced) [onUpdate](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#onupdate) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#outputs) [title](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.IDynamicNodeDefinition.html#type) --- # Node | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) Class Node`Abstract` ========================== Abstract base class for every node #### Type Parameters * I * O #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/core.Node) ) * [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) * Node * [DynamicNode](https://baklava.tech/api/classes/_baklavajs_core.DynamicNode.html) ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructor) ### Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.Node.html#_title) [calculate?](https://baklava.tech/api/classes/_baklavajs_core.Node.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.Node.html#events) [graphInstance?](https://baklava.tech/api/classes/_baklavajs_core.Node.html#graphinstance) [hooks](https://baklava.tech/api/classes/_baklavajs_core.Node.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.Node.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.Node.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.Node.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.Node.html#type) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.Node.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.Node.html#title) ### Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.Node.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.Node.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.Node.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.Node.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.Node.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.Node.html#save) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructor) * new Node<[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \>(): [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \>[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornode) #### Type Parameters * I * O #### Returns [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \> Properties ---------- ### `Protected`\_title[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#_title) \_title: string = "" ### `Optional`calculate[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#calculate) calculate?: [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) , [CalculationContext](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html) \>\> The default implementation does nothing. Overwrite this method to do calculation. #### Param: inputs[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#param-inputs) Values of all input interfaces #### Param: globalValues[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#param-globalvalues) Set of values passed to every node by the engine plugin #### Returns[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#returns) Values for output interfaces ### events[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#events) events: {     addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeRemoveInput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     titleChanged: BaklavaEvent;     update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>; } = ... ### `Protected` `Optional`graphInstance[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#graphinstance) graphInstance?: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#hooks) hooks: {     afterSave: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>;     beforeLoad: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#id) id: string = ... Unique identifier of the node ### `Abstract`inputs[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#inputs) inputs: [NodeInterfaceDefinition](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) \> ### `Abstract`outputs[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#outputs) outputs: [NodeInterfaceDefinition](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html) <[O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \> ### `Abstract` `Readonly`type[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#type) type: string Type of the node Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#graph) * get graph(): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined The graph instance the node is placed in. `undefined` if the node hasn't been placed in a graph yet. #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined ### title[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#title) * get title(): string Customizable display name of the node. #### Returns string * set title(v: string): void #### Parameters * v: string #### Returns void Methods ------- ### `Protected`addInput[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addinput) * addInput(key: string, input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addinput-1) Add an input interface to the node #### Parameters * key: string Key of the input * input: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The input instance #### Returns boolean True when the input was added, otherwise false (prevented by an event handler) ### `Protected`addOutput[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addoutput) * addOutput(key: string, output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ): boolean[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addoutput-1) Add an output interface to the node #### Parameters * key: string Key of the output * output: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The output instance #### Returns boolean True when the output was added, otherwise false (prevented by an event handler) ### `Protected`initializeIo[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#initializeio) * initializeIo(): void[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#initializeio-1) #### Returns void ### load[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#load) * load(state: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \>): void[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#load-1) #### Parameters * state: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \> #### Returns void ### onDestroy[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#ondestroy) * onDestroy(): void[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#ondestroy-1) Override this method to perform cleanup when the node is deleted #### Returns void ### onPlaced[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#onplaced) * onPlaced(): void[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#onplaced-1) Override this method to execute logic when the node is placed inside a graph #### Returns void ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#registergraph) * registerGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#registergraph-1) This function will automatically be called as soon as the node is added to a graph. #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns void ### `Protected`removeInput[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeinput) * removeInput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeinput-1) Remove an existing input #### Parameters * key: string Key of the input. #### Returns boolean ### `Protected`removeOutput[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeoutput) * removeOutput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeoutput-1) Remove an existing output #### Parameters * key: string Key of the output. #### Returns boolean ### save[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#save) * save(): [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \>[](https://baklava.tech/api/classes/_baklavajs_core.Node.html#save-1) #### Returns [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) <[I](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodei) , [O](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructornodeo) \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Node.html#constructor) Properties [\_title](https://baklava.tech/api/classes/_baklavajs_core.Node.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_core.Node.html#calculate) [events](https://baklava.tech/api/classes/_baklavajs_core.Node.html#events) [graphInstance](https://baklava.tech/api/classes/_baklavajs_core.Node.html#graphinstance) [hooks](https://baklava.tech/api/classes/_baklavajs_core.Node.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.Node.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_core.Node.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_core.Node.html#outputs) [type](https://baklava.tech/api/classes/_baklavajs_core.Node.html#type) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.Node.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_core.Node.html#title) Methods [addInput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_core.Node.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_core.Node.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_core.Node.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_core.Node.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.Node.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_core.Node.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_core.Node.html#save) --- # Editor | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) Class Editor ============ The main model class for BaklavaJS #### Implements * IBaklavaEventEmitter * IBaklavaTapable ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#constructor) ### Properties [connectionEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#connectionevents) [events](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#events) [graphEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphevents) [graphHooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphhooks) [graphTemplateEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplateevents) [graphTemplateHooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplatehooks) [hooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#hooks) [nodeEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodeevents) [nodeHooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodehooks) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graph) [graphs](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphs) [graphTemplates](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplates) [loading](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#loading) [nodeTypes](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodetypes) ### Methods [addGraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#addgraphtemplate) [load](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#load) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registergraph) [registerNodeType](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registernodetype) [removeGraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#removegraphtemplate) [save](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#save) [unregisterGraph](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregistergraph) [unregisterNodeType](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregisternodetype) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#constructor) * new Editor(): [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) [](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#constructoreditor) #### Returns [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) Properties ---------- ### connectionEvents[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#connectionevents) connectionEvents: { destruct: BaklavaEvent } & ISubscribableProxy<     { destruct: BaklavaEvent }, \> = ... ### events[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#events) events: {     addGraphTemplate: BaklavaEvent<[GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) \>;     beforeAddGraphTemplate: PreventableBaklavaEvent<[GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) \>;     beforeRegisterNodeType: PreventableBaklavaEvent<         [IAddNodeTypeEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html) ,         [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) ,     \>;     beforeRemoveGraphTemplate: PreventableBaklavaEvent<[GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) \>;     beforeUnregisterNodeType: PreventableBaklavaEvent;     loaded: BaklavaEvent;     registerGraph: BaklavaEvent<[Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) \>;     registerNodeType: BaklavaEvent<[IAddNodeTypeEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddNodeTypeEventData.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) \>;     removeGraphTemplate: BaklavaEvent<[GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) \>;     unregisterGraph: BaklavaEvent<[Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) \>;     unregisterNodeType: BaklavaEvent; } = ... ### graphEvents[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphevents) graphEvents: {     addConnection: BaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     addNode: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     beforeAddConnection: PreventableBaklavaEvent<         [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) ,         [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,     \>;     beforeAddNode: PreventableBaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     beforeRemoveConnection: PreventableBaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     beforeRemoveNode: PreventableBaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     checkConnection: PreventableBaklavaEvent<[IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     removeConnection: BaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     removeNode: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>; } & ISubscribableProxy<     {         addConnection: BaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;         addNode: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;         beforeAddConnection: PreventableBaklavaEvent<             [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) ,             [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,         \>;         beforeAddNode: PreventableBaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;         beforeRemoveConnection: PreventableBaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;         beforeRemoveNode: PreventableBaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;         checkConnection: PreventableBaklavaEvent<[IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;         removeConnection: BaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;         removeNode: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     }, \> = ... ### graphHooks[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphhooks) graphHooks: {     checkConnection: ParallelHook<         [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) ,         [CheckConnectionHookResult](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html) ,         [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,     \>;     load: SequentialHook<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) \>;     save: SequentialHook<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) \>; } & ISubscribableProxy<     {         checkConnection: ParallelHook<             [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) ,             [CheckConnectionHookResult](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html) ,             [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,         \>;         load: SequentialHook<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) \>;         save: SequentialHook<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) \>;     }, \> = ... ### graphTemplateEvents[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplateevents) graphTemplateEvents: {     nameChanged: BaklavaEvent;     updated: BaklavaEvent; } & ISubscribableProxy<     {         nameChanged: BaklavaEvent;         updated: BaklavaEvent;     }, \> = ... ### graphTemplateHooks[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplatehooks) graphTemplateHooks: {     afterSave: SequentialHook<         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,         [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ,         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,     \>;     beforeLoad: SequentialHook<         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,         [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ,         [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,     \>; } & ISubscribableProxy<     {         afterSave: SequentialHook<             [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,             [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ,             [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,         \>;         beforeLoad: SequentialHook<             [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,             [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ,             [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) ,         \>;     }, \> = ... ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#hooks) hooks: {     load: SequentialHook<[IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) , [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) \>;     save: SequentialHook<[IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) , [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) , [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) \>; } = ... ### nodeEvents[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodeevents) nodeEvents: {     addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeRemoveInput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     titleChanged: BaklavaEvent;     update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>; } & ISubscribableProxy<     {         addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         beforeRemoveInput: PreventableBaklavaEvent<             [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         \>;         beforeRemoveOutput: PreventableBaklavaEvent<             [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         \>;         beforeTitleChanged: PreventableBaklavaEvent;         loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         titleChanged: BaklavaEvent;         update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     }, \> = ... ### nodeHooks[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodehooks) nodeHooks: {     afterSave: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>;     beforeLoad: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>; } & ISubscribableProxy<     {         afterSave: SequentialHook<             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         \>;         beforeLoad: SequentialHook<             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         \>;     }, \> = ... Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graph) * get graph(): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) The root graph #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ### graphs[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphs) * get graphs(): ReadonlySet<[Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \> Set of all graphs in the editor, including subgraphs #### Returns ReadonlySet<[Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \> ### graphTemplates[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplates) * get graphTemplates(): readonly [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) \[\] List of all registered graph templates (subgraphs) #### Returns readonly [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) \[\] ### loading[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#loading) * get loading(): boolean Whether the editor is currently in the process of loading a saved graph #### Returns boolean ### nodeTypes[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodetypes) * get nodeTypes(): ReadonlyMap List of all registered node types #### Returns ReadonlyMap Methods ------- ### addGraphTemplate[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#addgraphtemplate) * addGraphTemplate(template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#addgraphtemplate-1) #### Parameters * template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) #### Returns void ### load[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#load) * load(state: [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) ): string\[\][](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#load-1) Load a state #### Parameters * state: [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) State to load #### Returns string\[\] An array of warnings that occured during loading. If the array is empty, the state was successfully loaded. ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registergraph) * registerGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registergraph-1) #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns void ### registerNodeType[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registernodetype) * registerNodeType(     type: [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) ,     options?: [IRegisterNodeTypeOptions](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html) , ): void[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registernodetype-1) Register a new node type #### Parameters * type: [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) Actual type / constructor of the node * `Optional`options: [IRegisterNodeTypeOptions](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html) Optionally specify a title and/or a category for this node #### Returns void ### removeGraphTemplate[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#removegraphtemplate) * removeGraphTemplate(template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#removegraphtemplate-1) #### Parameters * template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#save) * save(): [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) [](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#save-1) Save a state #### Returns [IEditorState](https://baklava.tech/api/interfaces/_baklavajs_core.IEditorState.html) Current state ### unregisterGraph[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregistergraph) * unregisterGraph(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregistergraph-1) #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns void ### unregisterNodeType[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregisternodetype) * unregisterNodeType(type: string | [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregisternodetype-1) Unregister an existing node type. Will also remove all the nodes of this type in all graphs. #### Parameters * type: string | [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) String type or node constructor, from which the type will be detected #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#constructor) Properties [connectionEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#connectionevents) [events](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#events) [graphEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphevents) [graphHooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphhooks) [graphTemplateEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplateevents) [graphTemplateHooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplatehooks) [hooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#hooks) [nodeEvents](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodeevents) [nodeHooks](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodehooks) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graph) [graphs](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphs) [graphTemplates](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#graphtemplates) [loading](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#loading) [nodeTypes](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#nodetypes) Methods [addGraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#addgraphtemplate) [load](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#load) [registerGraph](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registergraph) [registerNodeType](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#registernodetype) [removeGraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#removegraphtemplate) [save](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#save) [unregisterGraph](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregistergraph) [unregisterNodeType](https://baklava.tech/api/classes/_baklavajs_core.Editor.html#unregisternodetype) --- # Graph | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) Class Graph =========== #### Implements * IBaklavaEventEmitter * IBaklavaTapable ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#constructor) ### Properties [\_connections](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_connections) [\_destroying](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_destroying) [\_loading](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_loading) [\_nodes](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_nodes) [activeTransactions](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#activetransactions) [connectionEvents](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#connectionevents) [editor](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#id) [nodeEvents](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodeevents) [nodeHooks](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodehooks) [template?](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#template) ### Accessors [connections](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#connections) [destroying](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#destroying) [inputs](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#inputs) [loading](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#loading) [nodes](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodes) [outputs](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#outputs) ### Methods [addConnection](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addconnection) [addNode](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnode) [checkConnection](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#checkconnection) [destroy](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#destroy) [findNodeById](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodebyid) [findNodeInterface](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodeinterface) [load](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#load) [removeConnection](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removeconnection) [removeNode](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removenode) [save](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#save) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#constructor) * new Graph(editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) , template?: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ): [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) [](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#constructorgraph) #### Parameters * editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) * `Optional`template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) #### Returns [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) Properties ---------- ### `Protected`\_connections[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_connections) \_connections: [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) \[\] = \[\] ### `Protected`\_destroying[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_destroying) \_destroying: boolean = false ### `Protected`\_loading[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_loading) \_loading: boolean = false ### `Protected`\_nodes[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_nodes) \_nodes: [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \[\] = \[\] ### activeTransactions[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#activetransactions) activeTransactions: number = 0 ### connectionEvents[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#connectionevents) connectionEvents: { destruct: BaklavaEvent } & ISubscribableProxy<     { destruct: BaklavaEvent }, \> = ... ### editor[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#editor) editor: [Editor](https://baklava.tech/api/classes/_baklavajs_core.Editor.html) ### events[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#events) events: {     addConnection: BaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     addNode: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     beforeAddConnection: PreventableBaklavaEvent<         [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) ,         [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,     \>;     beforeAddNode: PreventableBaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     beforeRemoveConnection: PreventableBaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     beforeRemoveNode: PreventableBaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     checkConnection: PreventableBaklavaEvent<[IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     removeConnection: BaklavaEvent<[IConnection](https://baklava.tech/api/interfaces/_baklavajs_core.IConnection.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>;     removeNode: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) \>; } = ... ### hooks[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#hooks) hooks: {     checkConnection: ParallelHook<         [IAddConnectionEventData](https://baklava.tech/api/interfaces/_baklavajs_core.IAddConnectionEventData.html) ,         [CheckConnectionHookResult](https://baklava.tech/api/interfaces/_baklavajs_core.CheckConnectionHookResult.html) ,         [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,     \>;     load: SequentialHook<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) \>;     save: SequentialHook<[IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) , [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) , [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) \>; } = ... ### id[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#id) id: string = ... ### nodeEvents[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodeevents) nodeEvents: {     addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     beforeRemoveInput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     titleChanged: BaklavaEvent;     update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>; } & ISubscribableProxy<     {         addInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         addOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         beforeAddInput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         beforeAddOutput: PreventableBaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         beforeRemoveInput: PreventableBaklavaEvent<             [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         \>;         beforeRemoveOutput: PreventableBaklavaEvent<             [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         \>;         beforeTitleChanged: PreventableBaklavaEvent;         loaded: BaklavaEvent<[AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         removeInput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         removeOutput: BaklavaEvent<[NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;         titleChanged: BaklavaEvent;         update: BaklavaEvent<[INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) | null, [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>;     }, \> = ... ### nodeHooks[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodehooks) nodeHooks: {     afterSave: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>;     beforeLoad: SequentialHook<         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,         [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,     \>; } & ISubscribableProxy<     {         afterSave: SequentialHook<             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         \>;         beforeLoad: SequentialHook<             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,             [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ,             [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) ,         \>;     }, \> = ... ### `Optional`template[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#template) template?: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) Accessors --------- ### connections[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#connections) * get connections(): readonly [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) \[\] List of all connections in this graph #### Returns readonly [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) \[\] ### destroying[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#destroying) * get destroying(): boolean Whether the graph is currently in the process of destroying itself #### Returns boolean ### inputs[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#inputs) * get inputs(): [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] #### Returns [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] ### loading[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#loading) * get loading(): boolean Whether the graph is currently in the process of loading a saved graph #### Returns boolean ### nodes[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodes) * get nodes(): readonly [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \[\] List of all nodes in this graph #### Returns readonly [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \[\] ### outputs[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#outputs) * get outputs(): [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] #### Returns [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] Methods ------- ### addConnection[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addconnection) * addConnection(     from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,     to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , ): [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) | undefined[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addconnection-1) Add a connection to the list of connections. #### Parameters * from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) Start interface for the connection * to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) Target interface for the connection #### Returns [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) | undefined The created connection. If no connection could be created, returns `undefined`. ### addNode[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnode) * addNode<[T](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnodet) extends [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) \>(node: [T](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnodet) ): [T](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnodet) | undefined[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnode-1) Add a node to the list of nodes. #### Type Parameters * T extends [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) #### Parameters * node: [T](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnodet) Instance of a node #### Returns [T](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnodet) | undefined Instance of the node or undefined if the node was not added ### checkConnection[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#checkconnection) * checkConnection(     from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ,     to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) , ): [CheckConnectionResult](https://baklava.tech/api/types/_baklavajs_core.CheckConnectionResult.html) [](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#checkconnection-1) Checks, whether a connection between two node interfaces would be valid. #### Parameters * from: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The starting node interface (must be an output interface) * to: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) The target node interface (must be an input interface) #### Returns [CheckConnectionResult](https://baklava.tech/api/types/_baklavajs_core.CheckConnectionResult.html) Whether the connection is allowed or not. ### destroy[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#destroy) * destroy(): void[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#destroy-1) #### Returns void ### findNodeById[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodebyid) * findNodeById(id: string): [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) | undefined[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodebyid-1) Finds the Node with the provided id, as long as it exists in this graph #### Parameters * id: string id of the Node to find #### Returns [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) | undefined The Node if found, otherwise undefined ### findNodeInterface[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodeinterface) * findNodeInterface(id: string): [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) | undefined[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodeinterface-1) Finds the NodeInterface with the provided id, as long as it exists in this graph #### Parameters * id: string id of the NodeInterface to find #### Returns [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) | undefined The NodeInterface if found, otherwise undefined ### load[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#load) * load(state: [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) ): string\[\][](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#load-1) Load a state #### Parameters * state: [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) State to load #### Returns string\[\] An array of warnings that occured during loading. If the array is empty, the state was successfully loaded. ### removeConnection[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removeconnection) * removeConnection(connection: [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removeconnection-1) Remove a connection from the list of connections. #### Parameters * connection: [Connection](https://baklava.tech/api/classes/_baklavajs_core.Connection.html) Connection instance that should be removed. #### Returns void ### removeNode[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removenode) * removeNode(node: [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ): void[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removenode-1) Removes a node from the list. Will also remove all connections from and to the node. #### Parameters * node: [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) Reference to a node in the list. #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#save) * save(): [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) [](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#save-1) Save a state #### Returns [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) Current state ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#constructor) Properties [\_connections](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_connections) [\_destroying](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_destroying) [\_loading](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_loading) [\_nodes](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#_nodes) [activeTransactions](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#activetransactions) [connectionEvents](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#connectionevents) [editor](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#editor) [events](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#events) [hooks](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#id) [nodeEvents](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodeevents) [nodeHooks](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodehooks) [template](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#template) Accessors [connections](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#connections) [destroying](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#destroying) [inputs](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#inputs) [loading](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#loading) [nodes](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#nodes) [outputs](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#outputs) Methods [addConnection](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addconnection) [addNode](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#addnode) [checkConnection](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#checkconnection) [destroy](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#destroy) [findNodeById](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodebyid) [findNodeInterface](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#findnodeinterface) [load](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#load) [removeConnection](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removeconnection) [removeNode](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#removenode) [save](https://baklava.tech/api/classes/_baklavajs_core.Graph.html#save) --- # IEngine | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IEngine](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html) Interface IEngine ================================== interface IEngine<[CalculationData](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#calculationdata) \> {     [getInputValues](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#getinputvalues-1) (graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): Map;     [runGraph](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#rungraph-1) (         graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,         inputs: Map,         calculationData: [CalculationData](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#calculationdata) ,     ): Promise<[CalculationResult](https://baklava.tech/api/types/_baklavajs_core.CalculationResult.html) \>; } #### Type Parameters * CalculationData ##### Index ### Methods [getInputValues](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#getinputvalues) [runGraph](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#rungraph) Methods ------- ### getInputValues[](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#getinputvalues) * getInputValues(graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ): Map[](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#getinputvalues-1) #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) #### Returns Map ### runGraph[](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#rungraph) * runGraph(     graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) ,     inputs: Map,     calculationData: [CalculationData](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#calculationdata) , ): Promise<[CalculationResult](https://baklava.tech/api/types/_baklavajs_core.CalculationResult.html) \>[](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#rungraph-1) #### Parameters * graph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) * inputs: Map * calculationData: [CalculationData](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#calculationdata) #### Returns Promise<[CalculationResult](https://baklava.tech/api/types/_baklavajs_core.CalculationResult.html) \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Methods [getInputValues](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#getinputvalues) [runGraph](https://baklava.tech/api/interfaces/_baklavajs_core.IEngine.html#rungraph) --- # IGraphInterface | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) Interface IGraphInterface ========================= interface IGraphInterface {     [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#id) : string;     [name](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#name) : string;     [nodeId](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeid) : string;     [nodeInterfaceId](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeinterfaceid) : string; } ##### Index ### Properties [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#id) [name](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#name) [nodeId](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeid) [nodeInterfaceId](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeinterfaceid) Properties ---------- ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#id) id: string ### name[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#name) name: string ### nodeId[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeid) nodeId: string ### nodeInterfaceId[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeinterfaceid) nodeInterfaceId: string ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#id) [name](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#name) [nodeId](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeid) [nodeInterfaceId](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html#nodeinterfaceid) --- # IGraphNodeState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IGraphNodeState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html) Interface IGraphNodeState ========================= interface IGraphNodeState {     [graphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#graphstate) : [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) ;     [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#id) : string;     [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#inputs) : [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <         Record\>,     \>;     [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#outputs) : [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <         Record\>,     \>;     [title](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#title) : string;     [type](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#type) : string; } #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/core.IGraphNodeState) ) * [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) * IGraphNodeState ##### Index ### Properties [graphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#graphstate) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#inputs) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#outputs) [title](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#type) Properties ---------- ### graphState[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#graphstate) graphState: [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#id) id: string ### inputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#inputs) inputs: [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <     Record\>, \> ### outputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#outputs) outputs: [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <     Record\>, \> ### title[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#title) title: string ### type[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#type) type: string ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [graphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#graphstate) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#inputs) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#outputs) [title](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html#type) --- # IGraphNode | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IGraphNode](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html) Interface IGraphNode ==================== interface IGraphNode {     [subgraph](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#subgraph) : [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined;     [template](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#template) : [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ; } ##### Index ### Properties [subgraph](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#subgraph) [template](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#template) Properties ---------- ### subgraph[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#subgraph) subgraph: [Graph](https://baklava.tech/api/classes/_baklavajs_core.Graph.html) | undefined ### template[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#template) template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [subgraph](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#subgraph) [template](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html#template) --- # IGraphState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) Interface IGraphState ===================== interface IGraphState {     [connections](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#connections) : [IConnectionState](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html) \[\];     [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#id) : string;     [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#inputs) : readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\];     [nodes](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#nodes) : [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) \[\];     [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#outputs) : readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\]; } #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/core.IGraphState) ) * IGraphState * [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) #### Implemented by * [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ##### Index ### Properties [connections](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#connections) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#inputs) [nodes](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#nodes) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#outputs) Properties ---------- ### connections[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#connections) connections: [IConnectionState](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html) \[\] ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#id) id: string ### inputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#inputs) inputs: readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] #### Deprecated[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#deprecated) ### nodes[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#nodes) nodes: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) \[\] ### outputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#outputs) outputs: readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] #### Deprecated[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#deprecated-1) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [connections](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#connections) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#inputs) [nodes](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#nodes) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html#outputs) --- # IGraphTemplateState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IGraphTemplateState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html) Interface IGraphTemplateState ============================= interface IGraphTemplateState {     [connections](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#connections) : [IConnectionState](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html) \[\];     [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#id) : string;     [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#inputs) : readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\];     [name](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#name) : string;     [nodes](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#nodes) : [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) \[\];     [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#outputs) : readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\]; } #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/core.IGraphTemplateState) ) * [IGraphState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphState.html) * IGraphTemplateState ##### Index ### Properties [connections](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#connections) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#inputs) [name](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#name) [nodes](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#nodes) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#outputs) Properties ---------- ### connections[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#connections) connections: [IConnectionState](https://baklava.tech/api/interfaces/_baklavajs_core.IConnectionState.html) \[\] ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#id) id: string ### inputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#inputs) inputs: readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] #### Deprecated[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#deprecated) ### name[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#name) name: string ### nodes[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#nodes) nodes: [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) \[\] ### outputs[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#outputs) outputs: readonly [IGraphInterface](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphInterface.html) \[\] #### Deprecated[](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#deprecated-1) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [connections](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#connections) [id](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#inputs) [name](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#name) [nodes](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#nodes) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphTemplateState.html#outputs) --- # INodeInterfaceState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) Interface INodeInterfaceState ================================ interface INodeInterfaceState<[T](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#t) \> {     [id](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#id) : string;     [templateId](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#templateid) ?: string;     [value](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#value) : [T](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#t) ;     \[key: string\]: any; } #### Type Parameters * T #### Hierarchy * Record * INodeInterfaceState #### Indexable * \[key: string\]: any ##### Index ### Properties [id](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#id) [templateId?](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#templateid) [value](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#value) Properties ---------- ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#id) id: string ### `Optional`templateId[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#templateid) templateId?: string ### value[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#value) value: [T](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#t) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [id](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#id) [templateId](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#templateid) [value](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html#value) --- # INodeState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [INodeState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html) Interface INodeState ========================== interface INodeState<[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#o) \> {     [id](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#id) : string;     [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#inputs) : [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#i) \> & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <         Record\>,     \>;     [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#outputs) : [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <[O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#o) \> & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <         Record\>,     \>;     [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#title) : string;     [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#type) : string; } #### Type Parameters * I * O #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/core.INodeState) ) * INodeState * [IGraphNodeState](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNodeState.html) ##### Index ### Properties [id](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#inputs) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#outputs) [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#type) Properties ---------- ### id[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#id) id: string ### inputs[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#inputs) inputs: [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <[I](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#i) \> & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <     Record\>, \> ### outputs[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#outputs) outputs: [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <[O](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#o) \> & [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) <     Record\>, \> ### title[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#title) title: string ### type[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#type) type: string ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [id](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#inputs) [outputs](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#outputs) [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeState.html#type) --- # INodeTypeInformation | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [INodeTypeInformation](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html) Interface INodeTypeInformation ============================== interface INodeTypeInformation {     [category](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#category) : string;     [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#title) : string;     [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#type) : [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) ; } #### Hierarchy * Required<[IRegisterNodeTypeOptions](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html) \> * INodeTypeInformation ##### Index ### Properties [category](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#category) [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#type) Properties ---------- ### category[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#category) category: string Category of the node. Can be used to structure the node palette view ### title[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#title) title: string Set the title of the node in the node palette. Will use the `title` property of the node when not specified ### type[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#type) type: [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [category](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#category) [title](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#title) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeTypeInformation.html#type) --- # INodeUpdateEventData | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [INodeUpdateEventData](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html) Interface INodeUpdateEventData ============================== interface INodeUpdateEventData {     [intf](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#intf) : [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ;     [name](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#name) : string;     [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#type) : "input" | "output"; } ##### Index ### Properties [intf](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#intf) [name](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#name) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#type) Properties ---------- ### intf[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#intf) intf: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ### name[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#name) name: string ### type[](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#type) type: "input" | "output" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [intf](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#intf) [name](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#name) [type](https://baklava.tech/api/interfaces/_baklavajs_core.INodeUpdateEventData.html#type) --- # IRegisterNodeTypeOptions | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [IRegisterNodeTypeOptions](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html) Interface IRegisterNodeTypeOptions ================================== interface IRegisterNodeTypeOptions {     [category](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#category) ?: string;     [title](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#title) ?: string; } ##### Index ### Properties [category?](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#category) [title?](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#title) Properties ---------- ### `Optional`category[](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#category) category?: string Category of the node. Can be used to structure the node palette view ### `Optional`title[](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#title) title?: string Set the title of the node in the node palette. Will use the `title` property of the node when not specified ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [category](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#category) [title](https://baklava.tech/api/interfaces/_baklavajs_core.IRegisterNodeTypeOptions.html#title) --- # AbstractNodeConstructor | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [AbstractNodeConstructor](https://baklava.tech/api/types/_baklavajs_core.AbstractNodeConstructor.html) Type Alias AbstractNodeConstructor ================================== AbstractNodeConstructor: new () \=> [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CalculateFunction | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [CalculateFunction](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html) Type Alias CalculateFunction ===================================== CalculateFunction: (inputs: [I](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#i) , context: [C](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#c) ) \=> [CalculateFunctionReturnType](https://baklava.tech/api/types/_baklavajs_core.CalculateFunctionReturnType.html) <[O](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#o) \> #### Type Parameters * I * O * C extends [CalculationContext](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html) = [CalculationContext](https://baklava.tech/api/interfaces/_baklavajs_core.CalculationContext.html) #### Type Declaration * * (inputs: [I](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#i) , context: [C](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#c) ): [CalculateFunctionReturnType](https://baklava.tech/api/types/_baklavajs_core.CalculateFunctionReturnType.html) <[O](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#o) \> * #### Parameters * inputs: [I](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#i) * context: [C](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#c) #### Returns [CalculateFunctionReturnType](https://baklava.tech/api/types/_baklavajs_core.CalculateFunctionReturnType.html) <[O](https://baklava.tech/api/types/_baklavajs_core.CalculateFunction.html#o) \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CalculateFunctionReturnType | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [CalculateFunctionReturnType](https://baklava.tech/api/types/_baklavajs_core.CalculateFunctionReturnType.html) Type Alias CalculateFunctionReturnType ========================================= CalculateFunctionReturnType: [O](https://baklava.tech/api/types/_baklavajs_core.CalculateFunctionReturnType.html#o) | Promise<[O](https://baklava.tech/api/types/_baklavajs_core.CalculateFunctionReturnType.html#o) \> | void #### Type Parameters * O ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CalculationResult | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [CalculationResult](https://baklava.tech/api/types/_baklavajs_core.CalculationResult.html) Type Alias CalculationResult ============================ CalculationResult: Map\> Key: node id Value: calculation result of that node Calculation result key: output interface key Calculation result value: calculated value for that interface ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CheckConnectionResult | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [CheckConnectionResult](https://baklava.tech/api/types/_baklavajs_core.CheckConnectionResult.html) Type Alias CheckConnectionResult ================================ CheckConnectionResult:     | PositiveCheckConnectionResult     | NegativeCheckConnectionResult ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DynamicNodeDefinition | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [DynamicNodeDefinition](https://baklava.tech/api/types/_baklavajs_core.DynamicNodeDefinition.html) Type Alias DynamicNodeDefinition ================================ DynamicNodeDefinition: Record [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) ) | undefined\> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # GraphOutputNodeState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GraphOutputNodeState](https://baklava.tech/api/types/_baklavajs_core.GraphOutputNodeState.html) Type Alias GraphOutputNodeState =============================== GraphOutputNodeState: IGraphInterfaceNodeState<     { name: string; placeholder: any },     { output: any }, \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # GraphInputNodeState | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GraphInputNodeState](https://baklava.tech/api/types/_baklavajs_core.GraphInputNodeState.html) Type Alias GraphInputNodeState ============================== GraphInputNodeState: IGraphInterfaceNodeState<     { name: string },     { placeholder: any }, \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # InterfaceFactory | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [InterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html) Type Alias InterfaceFactory ============================== InterfaceFactory: { \[K in keyof [T](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html#t)\ \]: [NodeInterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceFactory.html) <[T](https://baklava.tech/api/types/_baklavajs_core.InterfaceFactory.html#t) \[K\]\> } #### Type Parameters * T ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # NodeConstructor | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [NodeConstructor](https://baklava.tech/api/types/_baklavajs_core.NodeConstructor.html) Type Alias NodeConstructor ================================ NodeConstructor: new () \=> [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/types/_baklavajs_core.NodeConstructor.html#i) , [O](https://baklava.tech/api/types/_baklavajs_core.NodeConstructor.html#o) \> #### Type Parameters * I * O ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # NodeInstanceOf | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [NodeInstanceOf](https://baklava.tech/api/types/_baklavajs_core.NodeInstanceOf.html) Type Alias NodeInstanceOf ============================ NodeInstanceOf: [T](https://baklava.tech/api/types/_baklavajs_core.NodeInstanceOf.html#t) extends new () \=> [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) ? [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) : never #### Type Parameters * T ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # NodeInterfaceDefinition | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [NodeInterfaceDefinition](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html) Type Alias NodeInterfaceDefinition ===================================== NodeInterfaceDefinition: { \[K in keyof [T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html#t)\ \]: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinition.html#t) \[K\]\> } #### Type Parameters * T ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # NodeInterfaceDefinitionStates | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [NodeInterfaceDefinitionStates](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html) Type Alias NodeInterfaceDefinitionStates =========================================== NodeInterfaceDefinitionStates: { \[K in keyof [T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html#t)\ \]: [INodeInterfaceState](https://baklava.tech/api/interfaces/_baklavajs_core.INodeInterfaceState.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceDefinitionStates.html#t) \[K\]\> } #### Type Parameters * T ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # NodeInterfaceFactory | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [NodeInterfaceFactory](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceFactory.html) Type Alias NodeInterfaceFactory ================================== NodeInterfaceFactory: () \=> [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceFactory.html#t) \> #### Type Parameters * T #### Type Declaration * * (): [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceFactory.html#t) \> * #### Returns [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceFactory.html#t) \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # NodeInterfaceMiddleware | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [NodeInterfaceMiddleware](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html) Type Alias NodeInterfaceMiddleware ======================================== NodeInterfaceMiddleware: (intf: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html#t) \>, ...args: [A](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html#a) ) \=> void #### Type Parameters * T * A extends any\[\] #### Type Declaration * * (intf: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html#t) \>, ...args: [A](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html#a) ): void * #### Parameters * intf: [NodeInterface](https://baklava.tech/api/classes/_baklavajs_core.NodeInterface.html) <[T](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html#t) \> * ...args: [A](https://baklava.tech/api/types/_baklavajs_core.NodeInterfaceMiddleware.html#a) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # GRAPH_INPUT_NODE_TYPE | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GRAPH\_INPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_core.GRAPH_INPUT_NODE_TYPE.html) Variable GRAPH\_INPUT\_NODE\_TYPE`Const` ======================================== GRAPH\_INPUT\_NODE\_TYPE: "\_\_baklava\_SubgraphInputNode" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # GRAPH_NODE_TYPE_PREFIX | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GRAPH\_NODE\_TYPE\_PREFIX](https://baklava.tech/api/variables/_baklavajs_core.GRAPH_NODE_TYPE_PREFIX.html) Variable GRAPH\_NODE\_TYPE\_PREFIX`Const` ========================================= GRAPH\_NODE\_TYPE\_PREFIX: "\_\_baklava\_GraphNode-" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # GRAPH_OUTPUT_NODE_TYPE | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [GRAPH\_OUTPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_core.GRAPH_OUTPUT_NODE_TYPE.html) Variable GRAPH\_OUTPUT\_NODE\_TYPE`Const` ========================================= GRAPH\_OUTPUT\_NODE\_TYPE: "\_\_baklava\_SubgraphOutputNode" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # createGraphNodeType | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [createGraphNodeType](https://baklava.tech/api/functions/_baklavajs_core.createGraphNodeType.html) Function createGraphNodeType ============================ * createGraphNodeType(     template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) , ): new () \=> [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) & [IGraphNode](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html) [](https://baklava.tech/api/functions/_baklavajs_core.createGraphNodeType.html#creategraphnodetype) #### Parameters * template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) #### Returns new () \=> [AbstractNode](https://baklava.tech/api/classes/_baklavajs_core.AbstractNode.html) & [IGraphNode](https://baklava.tech/api/interfaces/_baklavajs_core.IGraphNode.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # defineNode | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [defineNode](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html) Function defineNode =================== * defineNode<[I](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodeo) \>(definition: [INodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodeo) \>): new () \=> [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodeo) \>[](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenode) #### Type Parameters * I * O #### Parameters * definition: [INodeDefinition](https://baklava.tech/api/interfaces/_baklavajs_core.INodeDefinition.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodeo) \> #### Returns new () \=> [Node](https://baklava.tech/api/classes/_baklavajs_core.Node.html) <[I](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodei) , [O](https://baklava.tech/api/functions/_baklavajs_core.defineNode.html#definenodeo) \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # getGraphNodeTypeString | Reference - BaklavaJS * [@baklavajs/core](https://baklava.tech/api/modules/_baklavajs_core.html) * [getGraphNodeTypeString](https://baklava.tech/api/functions/_baklavajs_core.getGraphNodeTypeString.html) Function getGraphNodeTypeString =============================== * getGraphNodeTypeString(template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) ): string[](https://baklava.tech/api/functions/_baklavajs_core.getGraphNodeTypeString.html#getgraphnodetypestring) #### Parameters * template: [GraphTemplate](https://baklava.tech/api/classes/_baklavajs_core.GraphTemplate.html) #### Returns string ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # BaklavaEvent | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html) Class BaklavaEvent ======================== Main event class for Baklava #### Type Parameters * T * E #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/events.BaklavaEvent) ) * [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) <[EventListener](https://baklava.tech/api/types/_baklavajs_events.EventListener.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) \>\> * BaklavaEvent ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructor) ### Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#entity) ### Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#listeners) ### Methods [emit](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#emit) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unsubscribe) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructor) * new BaklavaEvent<[T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) \>(entity: [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) ): [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) \>[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevent) #### Type Parameters * T * E #### Parameters * entity: [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) #### Returns [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) \> Properties ---------- ### `Protected` `Readonly`entity[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#entity) entity: [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) Accessors --------- ### listeners[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#listeners) * get listeners(): [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] #### Returns [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] Methods ------- ### emit[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#emit) * emit(data: [T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) ): void[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#emit-1) Invoke all listeners #### Parameters * data: [T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) The data to invoke the listeners with. #### Returns void ### registerProxy[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#registerproxy) * registerProxy(     token: any,     getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[EventListener](https://baklava.tech/api/types/_baklavajs_events.EventListener.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) \>\>, ): void[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#registerproxy-1) This function is only used internally for proxies #### Parameters * token: any * getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[EventListener](https://baklava.tech/api/types/_baklavajs_events.EventListener.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructorbaklavaevente) \>\> #### Returns void ### subscribe[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#subscribe) * subscribe(token: any, callback: [EventListener](https://baklava.tech/api/types/_baklavajs_events.EventListener.html) ): void[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#subscribe-1) Subscribe to the event / hook #### Parameters * token: any A token that can be used to unsubscribe from the event / hook later on * callback: [EventListener](https://baklava.tech/api/types/_baklavajs_events.EventListener.html) A callback that will be invoked when the event / hook occurs #### Returns void ### unregisterProxy[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unregisterproxy) * unregisterProxy(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unregisterproxy-1) This function is only used internally for proxies #### Parameters * token: any #### Returns void ### unsubscribe[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unsubscribe) * unsubscribe(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unsubscribe-1) Remove a listener #### Parameters * token: any The token that was specified when subscribing to the listener. An invalid token does not result in an error. #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#constructor) Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#entity) Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#listeners) Methods [emit](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#emit) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html#unsubscribe) --- # DynamicSequentialHook | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [DynamicSequentialHook](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html) Class DynamicSequentialHook ==================================== Similar to the SequentialHook, but allows to pass a different entity for each execute call #### Type Parameters * I * E * O extends [I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) = [I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/events.DynamicSequentialHook) ) * [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) \>\> * DynamicSequentialHook * [SequentialHook](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html) ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructor) ### Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#listeners) ### Methods [execute](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#execute) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unsubscribe) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructor) * new DynamicSequentialHook<[I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) , [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) , [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) \= [I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) \>(): [DynamicSequentialHook](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) , [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) , [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) \>[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhook) #### Type Parameters * I * E * O = [I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) #### Returns [DynamicSequentialHook](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) , [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) , [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) \> Accessors --------- ### listeners[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#listeners) * get listeners(): [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] #### Returns [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] Methods ------- ### execute[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#execute) * execute(data: [I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) , entity: [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) ): [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) [](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#execute-1) #### Parameters * data: [I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) * entity: [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) #### Returns [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) ### registerProxy[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#registerproxy) * registerProxy(token: any, getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) \>\>): void[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#registerproxy-1) This function is only used internally for proxies #### Parameters * token: any * getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructordynamicsequentialhooke) \>\> #### Returns void ### subscribe[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#subscribe) * subscribe(token: any, callback: [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) ): void[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#subscribe-1) Subscribe to the event / hook #### Parameters * token: any A token that can be used to unsubscribe from the event / hook later on * callback: [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) A callback that will be invoked when the event / hook occurs #### Returns void ### unregisterProxy[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unregisterproxy) * unregisterProxy(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unregisterproxy-1) This function is only used internally for proxies #### Parameters * token: any #### Returns void ### unsubscribe[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unsubscribe) * unsubscribe(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unsubscribe-1) Remove a listener #### Parameters * token: any The token that was specified when subscribing to the listener. An invalid token does not result in an error. #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#constructor) Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#listeners) Methods [execute](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#execute) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html#unsubscribe) --- # ParallelHook | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [ParallelHook](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html) Class ParallelHook =========================== #### Type Parameters * I * O * E #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/events.ParallelHook) ) * [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) \>\> * ParallelHook ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructor) ### Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#entity) ### Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#listeners) ### Methods [execute](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#execute) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unsubscribe) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructor) * new ParallelHook<[I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) \>(entity: [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) ): [ParallelHook](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) \>[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhook) #### Type Parameters * I * O * E #### Parameters * entity: [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) #### Returns [ParallelHook](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) \> Properties ---------- ### `Protected` `Readonly`entity[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#entity) entity: [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) Accessors --------- ### listeners[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#listeners) * get listeners(): [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] #### Returns [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] Methods ------- ### execute[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#execute) * execute(data: [I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) ): [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) \[\][](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#execute-1) #### Parameters * data: [I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) #### Returns [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) \[\] ### registerProxy[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#registerproxy) * registerProxy(token: any, getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) \>\>): void[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#registerproxy-1) This function is only used internally for proxies #### Parameters * token: any * getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructorparallelhooke) \>\> #### Returns void ### subscribe[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#subscribe) * subscribe(token: any, callback: [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) ): void[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#subscribe-1) Subscribe to the event / hook #### Parameters * token: any A token that can be used to unsubscribe from the event / hook later on * callback: [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) A callback that will be invoked when the event / hook occurs #### Returns void ### unregisterProxy[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unregisterproxy) * unregisterProxy(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unregisterproxy-1) This function is only used internally for proxies #### Parameters * token: any #### Returns void ### unsubscribe[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unsubscribe) * unsubscribe(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unsubscribe-1) Remove a listener #### Parameters * token: any The token that was specified when subscribing to the listener. An invalid token does not result in an error. #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#constructor) Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#entity) Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#listeners) Methods [execute](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#execute) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html#unsubscribe) --- # PreventableBaklavaEvent | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [PreventableBaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html) Class PreventableBaklavaEvent =================================== Extension for the [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html) class. A listener can return `false` to prevent this event from happening. #### Type Parameters * T * E #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/events.PreventableBaklavaEvent) ) * [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) <[PreventableEventListener](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) \>\> * PreventableBaklavaEvent ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructor) ### Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#entity) ### Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#listeners) ### Methods [emit](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#emit) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unsubscribe) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructor) * new PreventableBaklavaEvent<[T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) \>(entity: [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) ): [PreventableBaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) \>[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevent) #### Type Parameters * T * E #### Parameters * entity: [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) #### Returns [PreventableBaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) \> Properties ---------- ### `Protected` `Readonly`entity[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#entity) entity: [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) Accessors --------- ### listeners[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#listeners) * get listeners(): [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] #### Returns [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] Methods ------- ### emit[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#emit) * emit(data: [T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) ): { prevented: boolean }[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#emit-1) Invoke all listeners. #### Parameters * data: [T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) The data to invoke all listeners with #### Returns { prevented: boolean } An object, where the `prevented` field is `true` when one of the listeners requested to prevent the event, otherwise `false` ### registerProxy[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#registerproxy) * registerProxy(     token: any,     getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[PreventableEventListener](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) \>\>, ): void[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#registerproxy-1) This function is only used internally for proxies #### Parameters * token: any * getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[PreventableEventListener](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html) <[T](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaeventt) , [E](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructorpreventablebaklavaevente) \>\> #### Returns void ### subscribe[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#subscribe) * subscribe(token: any, callback: [PreventableEventListener](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html) ): void[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#subscribe-1) Subscribe to the event / hook #### Parameters * token: any A token that can be used to unsubscribe from the event / hook later on * callback: [PreventableEventListener](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html) A callback that will be invoked when the event / hook occurs #### Returns void ### unregisterProxy[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unregisterproxy) * unregisterProxy(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unregisterproxy-1) This function is only used internally for proxies #### Parameters * token: any #### Returns void ### unsubscribe[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unsubscribe) * unsubscribe(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unsubscribe-1) Remove a listener #### Parameters * token: any The token that was specified when subscribing to the listener. An invalid token does not result in an error. #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#constructor) Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#entity) Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#listeners) Methods [emit](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#emit) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html#unsubscribe) --- # SequentialHook | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [SequentialHook](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html) Class SequentialHook ============================= This class will run the taps one after each other and pass the data from every subscriber to another. #### Type Parameters * I * E * O extends [I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) = [I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/events.SequentialHook) ) * [DynamicSequentialHook](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) , [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) , [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) \> * SequentialHook ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructor) ### Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#entity) ### Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#listeners) ### Methods [execute](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#execute) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unsubscribe) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructor) * new SequentialHook<[I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) , [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) , [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) \= [I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) \>(entity: [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) ): [SequentialHook](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) , [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) , [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) \>[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhook) #### Type Parameters * I * E * O = [I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) #### Parameters * entity: [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) #### Returns [SequentialHook](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) , [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) , [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) \> Properties ---------- ### `Protected` `Readonly`entity[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#entity) entity: [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) Accessors --------- ### listeners[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#listeners) * get listeners(): [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] #### Returns [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] Methods ------- ### execute[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#execute) * execute(data: [I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) ): [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) [](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#execute-1) #### Parameters * data: [I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) #### Returns [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) ### registerProxy[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#registerproxy) * registerProxy(token: any, getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) \>\>): void[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#registerproxy-1) This function is only used internally for proxies #### Parameters * token: any * getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) <[I](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooki) , [O](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooko) , [E](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructorsequentialhooke) \>\> #### Returns void ### subscribe[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#subscribe) * subscribe(token: any, callback: [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) ): void[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#subscribe-1) Subscribe to the event / hook #### Parameters * token: any A token that can be used to unsubscribe from the event / hook later on * callback: [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) A callback that will be invoked when the event / hook occurs #### Returns void ### unregisterProxy[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unregisterproxy) * unregisterProxy(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unregisterproxy-1) This function is only used internally for proxies #### Parameters * token: any #### Returns void ### unsubscribe[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unsubscribe) * unsubscribe(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unsubscribe-1) Remove a listener #### Parameters * token: any The token that was specified when subscribing to the listener. An invalid token does not result in an error. #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#constructor) Properties [entity](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#entity) Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#listeners) Methods [execute](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#execute) [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.SequentialHook.html#unsubscribe) --- # IBaklavaEventEmitter | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [IBaklavaEventEmitter](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaEventEmitter.html) Interface IBaklavaEventEmitter ============================== interface IBaklavaEventEmitter {     [events](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaEventEmitter.html#events) : Record<         string,         [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html)         | [PreventableBaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html) ,     \>; } ##### Index ### Properties [events](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaEventEmitter.html#events) Properties ---------- ### events[](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaEventEmitter.html#events) events: Record<     string,     [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html)     | [PreventableBaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html) , \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [events](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaEventEmitter.html#events) --- # IBaklavaTapable | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [IBaklavaTapable](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaTapable.html) Interface IBaklavaTapable ========================= interface IBaklavaTapable {     [hooks](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaTapable.html#hooks) : Record\>\>; } ##### Index ### Properties [hooks](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaTapable.html#hooks) Properties ---------- ### hooks[](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaTapable.html#hooks) hooks: Record\>\> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [hooks](https://baklava.tech/api/interfaces/_baklavajs_events.IBaklavaTapable.html#hooks) --- # ISubscribableProxy | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [ISubscribableProxy](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html) Interface ISubscribableProxy =============================== interface ISubscribableProxy<[T](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#t) extends Record\>\> {     [addTarget](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#addtarget-1) (target: [T](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#t) ): void;     [destroy](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#destroy-1) (): void;     [removeTarget](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#removetarget-1) (target: [T](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#t) ): void; } #### Type Parameters * T extends Record\> ##### Index ### Methods [addTarget](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#addtarget) [destroy](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#destroy) [removeTarget](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#removetarget) Methods ------- ### addTarget[](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#addtarget) * addTarget(target: [T](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#t) ): void[](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#addtarget-1) #### Parameters * target: [T](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#t) #### Returns void ### destroy[](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#destroy) * destroy(): void[](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#destroy-1) #### Returns void ### removeTarget[](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#removetarget) * removeTarget(target: [T](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#t) ): void[](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#removetarget-1) #### Parameters * target: [T](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#t) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Methods [addTarget](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#addtarget) [destroy](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#destroy) [removeTarget](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html#removetarget) --- # Subscribable | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) Class Subscribable ===================== #### Type Parameters * F extends CallableFunction #### Hierarchy ([View Summary](https://baklava.tech/api/hierarchy.html#@baklavajs/events.Subscribable) ) * Subscribable * [BaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.BaklavaEvent.html) * [PreventableBaklavaEvent](https://baklava.tech/api/classes/_baklavajs_events.PreventableBaklavaEvent.html) * [DynamicSequentialHook](https://baklava.tech/api/classes/_baklavajs_events.DynamicSequentialHook.html) * [ParallelHook](https://baklava.tech/api/classes/_baklavajs_events.ParallelHook.html) ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructor) ### Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#listeners) ### Methods [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unsubscribe) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructor) * new Subscribable<[F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) extends CallableFunction\>(): [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) <[F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \>[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribable) #### Type Parameters * F extends CallableFunction #### Returns [Subscribable](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html) <[F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \> Accessors --------- ### listeners[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#listeners) * get listeners(): [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] #### Returns [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \[\] Methods ------- ### registerProxy[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#registerproxy) * registerProxy(token: any, getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \>): void[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#registerproxy-1) This function is only used internally for proxies #### Parameters * token: any * getListeners: [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) <[F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) \> #### Returns void ### subscribe[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#subscribe) * subscribe(token: any, callback: [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) ): void[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#subscribe-1) Subscribe to the event / hook #### Parameters * token: any A token that can be used to unsubscribe from the event / hook later on * callback: [F](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructorsubscribablef) A callback that will be invoked when the event / hook occurs #### Returns void ### unregisterProxy[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unregisterproxy) * unregisterProxy(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unregisterproxy-1) This function is only used internally for proxies #### Parameters * token: any #### Returns void ### unsubscribe[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unsubscribe) * unsubscribe(token: any): void[](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unsubscribe-1) Remove a listener #### Parameters * token: any The token that was specified when subscribing to the listener. An invalid token does not result in an error. #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#constructor) Accessors [listeners](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#listeners) Methods [registerProxy](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#registerproxy) [subscribe](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#subscribe) [unregisterProxy](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unregisterproxy) [unsubscribe](https://baklava.tech/api/classes/_baklavajs_events.Subscribable.html#unsubscribe) --- # EventListener | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [EventListener](https://baklava.tech/api/types/_baklavajs_events.EventListener.html) Type Alias EventListener ============================== EventListener: (data: [T](https://baklava.tech/api/types/_baklavajs_events.EventListener.html#t) , entity: [E](https://baklava.tech/api/types/_baklavajs_events.EventListener.html#e) ) \=> any #### Type Parameters * T * E #### Type Declaration * * (data: [T](https://baklava.tech/api/types/_baklavajs_events.EventListener.html#t) , entity: [E](https://baklava.tech/api/types/_baklavajs_events.EventListener.html#e) ): any * #### Parameters * data: [T](https://baklava.tech/api/types/_baklavajs_events.EventListener.html#t) * entity: [E](https://baklava.tech/api/types/_baklavajs_events.EventListener.html#e) #### Returns any ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # GetListenersFn | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [GetListenersFn](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html) Type Alias GetListenersFn ============================ GetListenersFn: () \=> [F](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html#f) \[\] #### Type Parameters * F extends CallableFunction #### Type Declaration * * (): [F](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html#f) \[\] * #### Returns [F](https://baklava.tech/api/types/_baklavajs_events.GetListenersFn.html#f) \[\] ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # HookTap | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [HookTap](https://baklava.tech/api/types/_baklavajs_events.HookTap.html) Type Alias HookTap =========================== HookTap: (i: [I](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#i) , entity: [E](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#e) ) \=> [O](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#o) #### Type Parameters * I * O * E #### Type Declaration * * (i: [I](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#i) , entity: [E](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#e) ): [O](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#o) * #### Parameters * i: [I](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#i) * entity: [E](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#e) #### Returns [O](https://baklava.tech/api/types/_baklavajs_events.HookTap.html#o) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # PreventableEventListener | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [PreventableEventListener](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html) Type Alias PreventableEventListener ========================================= PreventableEventListener: (data: [T](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html#t) , prevent: () \=> void, entity: [E](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html#e) ) \=> any #### Type Parameters * T * E #### Type Declaration * * (data: [T](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html#t) , prevent: () \=> void, entity: [E](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html#e) ): any * #### Parameters * data: [T](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html#t) * prevent: () \=> void * entity: [E](https://baklava.tech/api/types/_baklavajs_events.PreventableEventListener.html#e) #### Returns any ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # TokenType | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [TokenType](https://baklava.tech/api/types/_baklavajs_events.TokenType.html) Type Alias TokenType ==================== TokenType: any ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # createProxy | Reference - BaklavaJS * [@baklavajs/events](https://baklava.tech/api/modules/_baklavajs_events.html) * [createProxy](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html) Function createProxy ==================== * createProxy<[T](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html#createproxyt) extends Record\>\>(): [T](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html#createproxyt) & [ISubscribableProxy](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html) <     [T](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html#createproxyt) , \>[](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html#createproxy) #### Type Parameters * T extends Record\> #### Returns [T](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html#createproxyt) & [ISubscribableProxy](https://baklava.tech/api/interfaces/_baklavajs_events.ISubscribableProxy.html) <[T](https://baklava.tech/api/functions/_baklavajs_events.createProxy.html#createproxyt) \> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # BaklavaInterfaceTypesOptions | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) * [BaklavaInterfaceTypesOptions](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html) Interface BaklavaInterfaceTypesOptions ====================================== interface BaklavaInterfaceTypesOptions {     [engine](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#engine) ?: BaseEngine;     [viewPlugin](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#viewplugin) ?: IBaklavaViewModel; } ##### Index ### Properties [engine?](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#engine) [viewPlugin?](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#viewplugin) Properties ---------- ### `Optional`engine[](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#engine) engine?: BaseEngine ### `Optional`viewPlugin[](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#viewplugin) viewPlugin?: IBaklavaViewModel ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [engine](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#engine) [viewPlugin](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html#viewplugin) --- # IConversion | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) * [IConversion](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html) Interface IConversion =========================== interface IConversion<[I](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#i) , [O](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#o) \> {     [targetType](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#targettype) : string;     [transformationFunction](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#transformationfunction-1) (value: [I](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#i) ): [O](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#o) ; } #### Type Parameters * I * O ##### Index ### Properties [targetType](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#targettype) ### Methods [transformationFunction](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#transformationfunction) Properties ---------- ### targetType[](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#targettype) targetType: string Methods ------- ### transformationFunction[](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#transformationfunction) * transformationFunction(value: [I](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#i) ): [O](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#o) [](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#transformationfunction-1) #### Parameters * value: [I](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#i) #### Returns [O](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#o) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [targetType](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#targettype) Methods [transformationFunction](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html#transformationfunction) --- # getType | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) * [getType](https://baklava.tech/api/functions/_baklavajs_interface-types.getType.html) Function getType ================ * getType<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.getType.html#gettypet) \>(intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.getType.html#gettypet) \>): string | undefined[](https://baklava.tech/api/functions/_baklavajs_interface-types.getType.html#gettype) #### Type Parameters * T #### Parameters * intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.getType.html#gettypet) \> #### Returns string | undefined ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # NodeInterfaceType | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) * [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) Class NodeInterfaceType ========================== #### Type Parameters * T ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructor) ### Properties [conversions](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#conversions) [name](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#name) ### Methods [addConversion](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversion) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructor) * new NodeInterfaceType<[T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) \>(name: string): [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) \>[](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetype) #### Type Parameters * T #### Parameters * name: string #### Returns [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) \> Properties ---------- ### conversions[](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#conversions) conversions: [IConversion](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html) <[T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) , any\>\[\] = \[\] ### name[](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#name) name: string Methods ------- ### addConversion[](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversion) * addConversion<[O](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversiono) \>(     to: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[O](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversiono) \>,     transformationFunction?: (value: [T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) ) \=> [O](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversiono) , ): [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) \>[](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversion-1) A conversion makes it possible to connect two node interfaces although they have different types. #### Type Parameters * O #### Parameters * to: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[O](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversiono) \> Type to convert to * transformationFunction: (value: [T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) ) \=> [O](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversiono) = ... Will be called to transform the value from one type to another. A transformation to convert the type `string` to `number` could be `parseInt`. #### Returns [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructornodeinterfacetypet) \> the instance the method was called on for chaining ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#constructor) Properties [conversions](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#conversions) [name](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#name) Methods [addConversion](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html#addconversion) --- # setType | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) * [setType](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html) Function setType ================ * setType<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html#settypet) \>(intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html#settypet) \>, type: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html#settypet) \>): void[](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html#settype) #### Type Parameters * T #### Parameters * intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html#settypet) \> * type: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setType.html#settypet) \> #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # BaklavaInterfaceTypes | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) * [BaklavaInterfaceTypes](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html) Class BaklavaInterfaceTypes =========================== ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#constructor) ### Methods [addTypes](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#addtypes) [canConvert](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#canconvert) [convert](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#convert) [getConversion](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversion) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#constructor) * new BaklavaInterfaceTypes(     editor: Editor,     options?: [BaklavaInterfaceTypesOptions](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html) , ): [BaklavaInterfaceTypes](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html) [](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#constructorbaklavainterfacetypes) #### Parameters * editor: Editor * `Optional`options: [BaklavaInterfaceTypesOptions](https://baklava.tech/api/interfaces/_baklavajs_interface-types.BaklavaInterfaceTypesOptions.html) #### Returns [BaklavaInterfaceTypes](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html) Methods ------- ### addTypes[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#addtypes) * addTypes(...types: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) \[\]): this[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#addtypes-1) Add a new node interface type #### Parameters * ...types: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) \[\] The types to add #### Returns this ### canConvert[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#canconvert) * canConvert(from: string, to: string): boolean[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#canconvert-1) #### Parameters * from: string * to: string #### Returns boolean ### convert[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#convert) * convert<[I](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#converti) \= any, [O](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#converto) \= any\>(from: string, to: string, value: [I](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#converti) ): [O](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#converto) [](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#convert-1) #### Type Parameters * I = any * O = any #### Parameters * from: string * to: string * value: [I](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#converti) #### Returns [O](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#converto) ### getConversion[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversion) * getConversion<[I](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversioni) \= any, [O](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversiono) \= any\>(     from: string,     to: string, ): [IConversion](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html) <[I](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversioni) , [O](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversiono) \> | null[](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversion-1) #### Type Parameters * I = any * O = any #### Parameters * from: string * to: string #### Returns [IConversion](https://baklava.tech/api/interfaces/_baklavajs_interface-types.IConversion.html) <[I](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversioni) , [O](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversiono) \> | null ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#constructor) Methods [addTypes](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#addtypes) [canConvert](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#canconvert) [convert](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#convert) [getConversion](https://baklava.tech/api/classes/_baklavajs_interface-types.BaklavaInterfaceTypes.html#getconversion) --- # setTypeForMultipleConnections | Reference - BaklavaJS * [@baklavajs/interface-types](https://baklava.tech/api/modules/_baklavajs_interface-types.html) * [setTypeForMultipleConnections](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html) Function setTypeForMultipleConnections ====================================== * setTypeForMultipleConnections<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html#settypeformultipleconnectionst) \>(     intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html#settypeformultipleconnectionst) \[\]\>,     type: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html#settypeformultipleconnectionst) \>, ): void[](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html#settypeformultipleconnections) Use this function to set the type for a NodeInterface with `allowMultipleConnections` #### Type Parameters * T #### Parameters * intf: NodeInterface<[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html#settypeformultipleconnectionst) \[\]\> * type: [NodeInterfaceType](https://baklava.tech/api/classes/_baklavajs_interface-types.NodeInterfaceType.html) <[T](https://baklava.tech/api/functions/_baklavajs_interface-types.setTypeForMultipleConnections.html#settypeformultipleconnectionst) \> #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # StartSelectionBoxCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [Commands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html) * [StartSelectionBoxCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.Commands.StartSelectionBoxCommand.html) Type Alias StartSelectionBoxCommand =================================== StartSelectionBoxCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # START_SELECTION_BOX_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [Commands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html) * [START\_SELECTION\_BOX\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.Commands.START_SELECTION_BOX_COMMAND.html) Variable START\_SELECTION\_BOX\_COMMAND`Const` ============================================== START\_SELECTION\_BOX\_COMMAND: "START\_SELECTION\_BOX" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # Components | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [Components](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html) Namespace Components ==================== References ---------- Connection → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#connection) ConnectionWrapper → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#connectionwrapper) ContextMenu → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#contextmenu) Minimap → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#minimap) Node → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#node) NodeInterface → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#nodeinterface) NodePalette → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#nodepalette) PaletteEntry → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#paletteentry) TemporaryConnection → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#temporaryconnection) Toolbar → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#toolbar) ToolbarButton → [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#toolbarbutton) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page References [Connection](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#connection) [ConnectionWrapper](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#connectionwrapper) [ContextMenu](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#contextmenu) [Minimap](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#minimap) [Node](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#node) [NodeInterface](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#nodeinterface) [NodePalette](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#nodepalette) [PaletteEntry](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#paletteentry) [Sidebar](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#sidebar) [TemporaryConnection](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#temporaryconnection) [Toolbar](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#toolbar) [ToolbarButton](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Components.html#toolbarbutton) --- # TemporaryConnectionState | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [TemporaryConnectionState](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html) Enumeration TemporaryConnectionState ==================================== ##### Index ### Enumeration Members [ALLOWED](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#allowed) [FORBIDDEN](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#forbidden) [NONE](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#none) Enumeration Members ------------------- ### ALLOWED[](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#allowed) ALLOWED: 1 ### FORBIDDEN[](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#forbidden) FORBIDDEN: 2 ### NONE[](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#none) NONE: 0 ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Enumeration Members [ALLOWED](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#allowed) [FORBIDDEN](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#forbidden) [NONE](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html#none) --- # ButtonInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ButtonInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html) Class ButtonInterface ===================== #### Hierarchy * NodeInterface * ButtonInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#allowmultipleconnections) [callback?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#callback) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#use) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#constructor) * new ButtonInterface(name: string, callback: () \=> void): [ButtonInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#constructorbuttoninterface) #### Parameters * name: string * callback: () \=> void #### Returns [ButtonInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### `Optional`callback[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#callback) callback?: () \=> void ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent<         undefined,         NodeInterface,     \>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#allowmultipleconnections) [callback](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#callback) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#use) --- # CheckboxInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [CheckboxInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html) Class CheckboxInterface ======================= #### Hierarchy * NodeInterface * CheckboxInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#use) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#constructor) * new CheckboxInterface(name: string, value: boolean): [CheckboxInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#constructorcheckboxinterface) #### Parameters * name: string * value: boolean #### Returns [CheckboxInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.CheckboxInterface.html#use) --- # IntegerInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IntegerInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html) Class IntegerInterface ====================== #### Hierarchy * BaseNumericInterface * IntegerInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#isinput) [max?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#max) [min?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#min) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#use) [validate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#validate) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#constructor) * new IntegerInterface(     name: string,     value: number,     min?: number,     max?: number, ): [IntegerInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#constructorintegerinterface) #### Parameters * name: string * value: number * `Optional`min: number * `Optional`max: number #### Returns [IntegerInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### `Optional`max[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#max) max?: number ### `Optional`min[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#min) min?: number ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### validate[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#validate) * validate(v: number): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#validate-1) #### Parameters * v: number #### Returns boolean ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#isinput) [max](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#max) [min](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#min) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#use) [validate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.IntegerInterface.html#validate) --- # NumberInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [NumberInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html) Class NumberInterface ===================== #### Hierarchy * BaseNumericInterface * NumberInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#isinput) [max?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#max) [min?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#min) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#use) [validate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#validate) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#constructor) * new NumberInterface(     name: string,     value: number,     min?: number,     max?: number, ): [NumberInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#constructornumberinterface) #### Parameters * name: string * value: number * `Optional`min: number * `Optional`max: number #### Returns [NumberInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### `Optional`max[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#max) max?: number ### `Optional`min[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#min) min?: number ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### validate[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#validate) * validate(v: number): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#validate-1) #### Parameters * v: number #### Returns boolean ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#isinput) [max](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#max) [min](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#min) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#use) [validate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.NumberInterface.html#validate) --- # SelectInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SelectInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html) Class SelectInterface ======================== #### Type Parameters * V = string #### Hierarchy * NodeInterface<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \> * SelectInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#isinput) [items](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#items) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#use) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructor) * new SelectInterface<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \= string\>(     name: string,     value: [V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) ,     items: [SelectInterfaceItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.SelectInterfaceItem.html) <[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>\[\], ): [SelectInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html) <[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterface) #### Type Parameters * V = string #### Parameters * name: string * value: [V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) * items: [SelectInterfaceItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.SelectInterfaceItem.html) <[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>\[\] #### Returns [SelectInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html) <[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \> Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) , NodeInterface<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) , NodeInterface<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>,         NodeInterface<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>,         INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>,     \>;     save: SequentialHook<         INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>,         NodeInterface<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>,         INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### items[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#items) items: [SelectInterfaceItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.SelectInterfaceItem.html) <[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>\[\] ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#load) * load(state: INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#load-1) #### Parameters * state: INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \> #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#save) * save(): INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \>[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#save-1) #### Returns INodeInterfaceState<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) \> ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) , [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) \>,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware<[V](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructorselectinterfacev) , [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) \> * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#isinput) [items](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#items) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SelectInterface.html#use) --- # SliderInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SliderInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html) Class SliderInterface ===================== #### Hierarchy * BaseNumericInterface * SliderInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#isinput) [max](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#max) [min](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#min) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#use) [validate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#validate) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#constructor) * new SliderInterface(     name: string,     value: number,     min: number,     max: number, ): [SliderInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#constructorsliderinterface) #### Parameters * name: string * value: number * min: number * max: number #### Returns [SliderInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### max[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#max) max: number ### min[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#min) min: number ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### validate[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#validate) * validate(v: number): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#validate-1) #### Parameters * v: number #### Returns boolean ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#isinput) [max](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#max) [min](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#min) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#use) [validate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SliderInterface.html#validate) --- # SubgraphInputNode | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SubgraphInputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html) Class SubgraphInputNode ======================= #### Hierarchy * GraphInputNode * SubgraphInputNode ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#constructor) ### Properties [\_title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#_title) [calculate?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#calculate) [disablePointerEvents](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#disablepointerevents) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#events) [graphInstance?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#outputs) [position](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#position) [reverseY?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#reversey) [twoColumn](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#twocolumn) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#type) [width](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#width) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#title) ### Methods [addInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#save) [isGraphInputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#isgraphinputnode) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#constructor) * new SubgraphInputNode(): [SubgraphInputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#constructorsubgraphinputnode) #### Returns [SubgraphInputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html) Properties ---------- ### `Protected`\_title[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#_title) \_title: string = "Subgraph Input" ### `Optional`calculate[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#calculate) calculate?: CalculateFunction<     { name: string },     { placeholder: any },     CalculationContext\>, \> The default implementation does nothing. Overwrite this method to do calculation. #### Param: inputs[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#param-inputs) Values of all input interfaces #### Param: globalValues[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#param-globalvalues) Set of values passed to every node by the engine plugin #### Returns[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#returns) Values for output interfaces ### disablePointerEvents[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#disablepointerevents) disablePointerEvents: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#events) events: {     addInput: BaklavaEvent, AbstractNode\>;     addOutput: BaklavaEvent, AbstractNode\>;     beforeAddInput: PreventableBaklavaEvent, AbstractNode\>;     beforeAddOutput: PreventableBaklavaEvent, AbstractNode\>;     beforeRemoveInput: PreventableBaklavaEvent<         NodeInterface,         AbstractNode,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         NodeInterface,         AbstractNode,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent;     removeInput: BaklavaEvent, AbstractNode\>;     removeOutput: BaklavaEvent, AbstractNode\>;     titleChanged: BaklavaEvent;     update: BaklavaEvent; } ### `Protected` `Optional`graphInstance[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graphinstance) graphInstance?: Graph ### graphInterfaceId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graphinterfaceid) graphInterfaceId: string ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#hooks) hooks: {     afterSave: SequentialHook<         INodeState,         AbstractNode,         INodeState,     \>;     beforeLoad: SequentialHook<         INodeState,         AbstractNode,         INodeState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#id) id: string Unique identifier of the node ### inputs[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#inputs) inputs: { name: [TextInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html) } = ... ### outputs[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#outputs) outputs: { placeholder: NodeInterface } = ... ### position[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#position) position: { x: number; y: number } ### `Optional`reverseY[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#reversey) reverseY?: boolean ### twoColumn[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#twocolumn) twoColumn: boolean ### `Readonly`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#type) type: "\_\_baklava\_SubgraphInputNode" Type of the node ### width[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#width) width: number Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graph) * get graph(): Graph | undefined The graph instance the node is placed in. `undefined` if the node hasn't been placed in a graph yet. #### Returns Graph | undefined ### title[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#title) * get title(): string Customizable display name of the node. #### Returns string * set title(v: string): void #### Parameters * v: string #### Returns void Methods ------- ### `Protected`addInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addinput) * addInput(key: string, input: NodeInterface): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addinput-1) Add an input interface to the node #### Parameters * key: string Key of the input * input: NodeInterface The input instance #### Returns boolean True when the input was added, otherwise false (prevented by an event handler) ### `Protected`addOutput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addoutput) * addOutput(key: string, output: NodeInterface): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addoutput-1) Add an output interface to the node #### Parameters * key: string Key of the output * output: NodeInterface The output instance #### Returns boolean True when the output was added, otherwise false (prevented by an event handler) ### `Protected`initializeIo[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#initializeio) * initializeIo(): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#initializeio-1) #### Returns void ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#load) * load(     state: IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\>, ): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#load-1) #### Parameters * state: IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\> #### Returns void ### onDestroy[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#ondestroy) * onDestroy(): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#ondestroy-1) Override this method to perform cleanup when the node is deleted #### Returns void ### onPlaced[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#onplaced) * onPlaced(): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#onplaced-1) Override this method to execute logic when the node is placed inside a graph #### Returns void ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#registergraph) * registerGraph(graph: Graph): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#registergraph-1) This function will automatically be called as soon as the node is added to a graph. #### Parameters * graph: Graph #### Returns void ### `Protected`removeInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeinput) * removeInput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeinput-1) Remove an existing input #### Parameters * key: string Key of the input. #### Returns boolean ### `Protected`removeOutput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeoutput) * removeOutput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeoutput-1) Remove an existing output #### Parameters * key: string Key of the output. #### Returns boolean ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#save) * save(): IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\>[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#save-1) #### Returns IGraphInterfaceNodeState<{ name: string }, { placeholder: any }\> ### `Static`isGraphInputNode[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#isgraphinputnode) * isGraphInputNode(v: AbstractNode): v is GraphInputNode[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#isgraphinputnode-1) #### Parameters * v: AbstractNode #### Returns v is GraphInputNode ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#constructor) Properties [\_title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#calculate) [disablePointerEvents](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#disablepointerevents) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#events) [graphInstance](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#outputs) [position](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#position) [reverseY](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#reversey) [twoColumn](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#twocolumn) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#type) [width](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#width) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#title) Methods [addInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#save) [isGraphInputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphInputNode.html#isgraphinputnode) --- # TextareaInputInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [TextareaInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html) Class TextareaInputInterface ============================ #### Hierarchy * NodeInterface * TextareaInputInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#use) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#constructor) * new TextareaInputInterface(name: string, value: string): [TextareaInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#constructortextareainputinterface) #### Parameters * name: string * value: string #### Returns [TextareaInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextareaInputInterface.html#use) --- # IAdvancedSelectInterfaceItem | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IAdvancedSelectInterfaceItem](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html) Interface IAdvancedSelectInterfaceItem ========================================= interface IAdvancedSelectInterfaceItem<[V](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#v) \> {     [text](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#text) : string;     [value](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#value) : [V](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#v) ; } #### Type Parameters * V ##### Index ### Properties [text](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#text) [value](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#value) Properties ---------- ### text[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#text) text: string ### value[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#value) value: [V](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#v) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [text](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#text) [value](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html#value) --- # TextInputInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [TextInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html) Class TextInputInterface ======================== #### Hierarchy * NodeInterface * TextInputInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#use) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#constructor) * new TextInputInterface(name: string, value: string): [TextInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#constructortextinputinterface) #### Parameters * name: string * value: string #### Returns [TextInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html#use) --- # IClipboard | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IClipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html) Interface IClipboard ==================== interface IClipboard {     [isEmpty](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html#isempty) : boolean; } ##### Index ### Properties [isEmpty](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html#isempty) Properties ---------- ### isEmpty[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html#isempty) isEmpty: boolean ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [isEmpty](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html#isempty) --- # TextInterface | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [TextInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html) Class TextInterface =================== #### Hierarchy * NodeInterface * TextInterface ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#constructor) ### Properties [allowMultipleConnections?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#component) [displayInSidebar?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#id) [isInput?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#port) [templateId?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#templateid) [type?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#type) ### Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#value) ### Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#use) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#constructor) * new TextInterface(name: string, value: string): [TextInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#constructortextinterface) #### Parameters * name: string * value: string #### Returns [TextInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html) Properties ---------- ### `Optional`allowMultipleConnections[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#allowmultipleconnections) allowMultipleConnections?: boolean ### component[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#component) component: ComponentOptions = ... The component which will be displayed when the interface is not connected or port === false ### `Optional`displayInSidebar[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#displayinsidebar) displayInSidebar?: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#events) events: {     beforeSetValue: PreventableBaklavaEvent\>;     setConnectionCount: BaklavaEvent\>;     setValue: BaklavaEvent\>;     updated: BaklavaEvent\>; } ### hidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#hidden) hidden: boolean Whether to hide the node interface in the UI ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#hooks) hooks: {     load: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>;     save: SequentialHook<         INodeInterfaceState,         NodeInterface,         INodeInterfaceState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#id) id: string ### `Optional`isInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#isinput) isInput?: boolean Will be set automatically after the node was created ### name[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#name) name: string Display name of the interface ### nodeId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#nodeid) nodeId: string Id of the node this interface is part of ### port[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#port) port: boolean Whether to show the port (the thing connections connect to) ### `Optional`templateId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#templateid) templateId?: string If the interface is instantiated by a graph template, this property will be set to the id of the corresponding instance in the template ### `Optional`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#type) type?: string Accessors --------- ### connectionCount[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#connectioncount) * get connectionCount(): number #### Returns number * set connectionCount(v: number): void #### Parameters * v: number #### Returns void ### value[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#value) * get value(): T #### Returns T * set value(v: T): void #### Parameters * v: T #### Returns void Methods ------- ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#load) * load(state: INodeInterfaceState): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#load-1) #### Parameters * state: INodeInterfaceState #### Returns void ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#save) * save(): INodeInterfaceState[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#save-1) #### Returns INodeInterfaceState ### setComponent[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setcomponent) * setComponent(value: any): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setcomponent-1) #### Parameters * value: any #### Returns this ### setHidden[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#sethidden) * setHidden(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#sethidden-1) #### Parameters * value: boolean #### Returns this ### setPort[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setport) * setPort(value: boolean): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setport-1) #### Parameters * value: boolean #### Returns this ### use[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#use) * use<[A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#usea) extends any\[\]\>(     middleware: NodeInterfaceMiddleware,     ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) , ): this[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#use-1) #### Type Parameters * A extends any\[\] #### Parameters * middleware: NodeInterfaceMiddleware * ...args: [A](https://baklava.tech/api/classes/_baklavajs_renderer-vue.ButtonInterface.html#usea) #### Returns this ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#constructor) Properties [allowMultipleConnections](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#allowmultipleconnections) [component](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#component) [displayInSidebar](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#displayinsidebar) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#events) [hidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#hidden) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#id) [isInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#isinput) [name](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#name) [nodeId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#nodeid) [port](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#port) [templateId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#templateid) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#type) Accessors [connectionCount](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#connectioncount) [value](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#value) Methods [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#load) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#save) [setComponent](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setcomponent) [setHidden](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#sethidden) [setPort](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#setport) [use](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInterface.html#use) --- # SubgraphOutputNode | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SubgraphOutputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html) Class SubgraphOutputNode ======================== #### Hierarchy * GraphOutputNode * SubgraphOutputNode ##### Index ### Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#constructor) ### Properties [\_title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#calculate) [disablePointerEvents](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#disablepointerevents) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#events) [graphInstance?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#outputs) [position](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#position) [reverseY?](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#reversey) [twoColumn](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#twocolumn) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#type) [width](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#width) ### Accessors [graph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#title) ### Methods [addInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#save) [isGraphOutputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#isgraphoutputnode) Constructors ------------ ### constructor[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#constructor) * new SubgraphOutputNode(): [SubgraphOutputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html) [](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#constructorsubgraphoutputnode) #### Returns [SubgraphOutputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html) Properties ---------- ### `Protected`\_title[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#_title) \_title: string = "Subgraph Output" ### calculate[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#calculate) calculate: CalculateFunction<{ placeholder: any }, { output: any }\> The default implementation does nothing. Overwrite this method to do calculation. #### Param: inputs[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#param-inputs) Values of all input interfaces #### Param: globalValues[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#param-globalvalues) Set of values passed to every node by the engine plugin #### Returns[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#returns) Values for output interfaces ### disablePointerEvents[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#disablepointerevents) disablePointerEvents: boolean ### events[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#events) events: {     addInput: BaklavaEvent, AbstractNode\>;     addOutput: BaklavaEvent, AbstractNode\>;     beforeAddInput: PreventableBaklavaEvent, AbstractNode\>;     beforeAddOutput: PreventableBaklavaEvent, AbstractNode\>;     beforeRemoveInput: PreventableBaklavaEvent<         NodeInterface,         AbstractNode,     \>;     beforeRemoveOutput: PreventableBaklavaEvent<         NodeInterface,         AbstractNode,     \>;     beforeTitleChanged: PreventableBaklavaEvent;     loaded: BaklavaEvent;     removeInput: BaklavaEvent, AbstractNode\>;     removeOutput: BaklavaEvent, AbstractNode\>;     titleChanged: BaklavaEvent;     update: BaklavaEvent; } ### `Protected` `Optional`graphInstance[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graphinstance) graphInstance?: Graph ### graphInterfaceId[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graphinterfaceid) graphInterfaceId: string ### hooks[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#hooks) hooks: {     afterSave: SequentialHook<         INodeState,         AbstractNode,         INodeState,     \>;     beforeLoad: SequentialHook<         INodeState,         AbstractNode,         INodeState,     \>; } ### id[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#id) id: string Unique identifier of the node ### inputs[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#inputs) inputs: { name: [TextInputInterface](https://baklava.tech/api/classes/_baklavajs_renderer-vue.TextInputInterface.html) ; placeholder: NodeInterface } = ... ### outputs[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#outputs) outputs: { output: NodeInterface } = ... ### position[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#position) position: { x: number; y: number } ### `Optional`reverseY[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#reversey) reverseY?: boolean ### twoColumn[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#twocolumn) twoColumn: boolean ### `Readonly`type[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#type) type: "\_\_baklava\_SubgraphOutputNode" Type of the node ### width[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#width) width: number Accessors --------- ### graph[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graph) * get graph(): Graph | undefined The graph instance the node is placed in. `undefined` if the node hasn't been placed in a graph yet. #### Returns Graph | undefined ### title[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#title) * get title(): string Customizable display name of the node. #### Returns string * set title(v: string): void #### Parameters * v: string #### Returns void Methods ------- ### `Protected`addInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addinput) * addInput(key: string, input: NodeInterface): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addinput-1) Add an input interface to the node #### Parameters * key: string Key of the input * input: NodeInterface The input instance #### Returns boolean True when the input was added, otherwise false (prevented by an event handler) ### `Protected`addOutput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addoutput) * addOutput(key: string, output: NodeInterface): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addoutput-1) Add an output interface to the node #### Parameters * key: string Key of the output * output: NodeInterface The output instance #### Returns boolean True when the output was added, otherwise false (prevented by an event handler) ### `Protected`initializeIo[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#initializeio) * initializeIo(): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#initializeio-1) #### Returns void ### load[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#load) * load(     state: IGraphInterfaceNodeState<         { name: string; placeholder: any },         { output: any },     \>, ): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#load-1) #### Parameters * state: IGraphInterfaceNodeState<{ name: string; placeholder: any }, { output: any }\> #### Returns void ### onDestroy[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#ondestroy) * onDestroy(): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#ondestroy-1) Override this method to perform cleanup when the node is deleted #### Returns void ### onPlaced[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#onplaced) * onPlaced(): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#onplaced-1) Override this method to execute logic when the node is placed inside a graph #### Returns void ### registerGraph[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#registergraph) * registerGraph(graph: Graph): void[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#registergraph-1) This function will automatically be called as soon as the node is added to a graph. #### Parameters * graph: Graph #### Returns void ### `Protected`removeInput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeinput) * removeInput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeinput-1) Remove an existing input #### Parameters * key: string Key of the input. #### Returns boolean ### `Protected`removeOutput[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeoutput) * removeOutput(key: string): boolean[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeoutput-1) Remove an existing output #### Parameters * key: string Key of the output. #### Returns boolean ### save[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#save) * save(): IGraphInterfaceNodeState<     { name: string; placeholder: any },     { output: any }, \>[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#save-1) #### Returns IGraphInterfaceNodeState<{ name: string; placeholder: any }, { output: any }\> ### `Static`isGraphOutputNode[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#isgraphoutputnode) * isGraphOutputNode(v: AbstractNode): v is GraphOutputNode[](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#isgraphoutputnode-1) #### Parameters * v: AbstractNode #### Returns v is GraphOutputNode ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Constructors [constructor](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#constructor) Properties [\_title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#_title) [calculate](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#calculate) [disablePointerEvents](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#disablepointerevents) [events](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#events) [graphInstance](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graphinstance) [graphInterfaceId](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graphinterfaceid) [hooks](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#hooks) [id](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#id) [inputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#inputs) [outputs](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#outputs) [position](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#position) [reverseY](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#reversey) [twoColumn](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#twocolumn) [type](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#type) [width](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#width) Accessors [graph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#graph) [title](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#title) Methods [addInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addinput) [addOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#addoutput) [initializeIo](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#initializeio) [load](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#load) [onDestroy](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#ondestroy) [onPlaced](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#onplaced) [registerGraph](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#registergraph) [removeInput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeinput) [removeOutput](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#removeoutput) [save](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#save) [isGraphOutputNode](https://baklava.tech/api/classes/_baklavajs_renderer-vue.SubgraphOutputNode.html#isgraphoutputnode) --- # ICommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) Interface ICommand ====================================== interface ICommand<[Returns](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#returns) \= any, [Arguments](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#arguments) extends any\[\] \= \[\]\> {     [canExecute](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#canexecute-1) (...args: [Arguments](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#arguments) ): boolean;     [execute](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#execute-1) (...args: [Arguments](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#arguments) ): [Returns](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#returns) ; } #### Type Parameters * Returns = any * Arguments extends any\[\] = \[\] ##### Index ### Methods [canExecute](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#canexecute) [execute](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#execute) Methods ------- ### canExecute[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#canexecute) * canExecute(...args: [Arguments](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#arguments) ): boolean[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#canexecute-1) #### Parameters * ...args: [Arguments](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#arguments) #### Returns boolean ### execute[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#execute) * execute(...args: [Arguments](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#arguments) ): [Returns](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#returns) [](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#execute-1) #### Parameters * ...args: [Arguments](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#arguments) #### Returns [Returns](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#returns) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Methods [canExecute](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#canexecute) [execute](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html#execute) --- # IResolvedDomElements | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IResolvedDomElements](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html) Interface IResolvedDomElements ============================== interface IResolvedDomElements {     [interface](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#interface) : HTMLElement | null;     [node](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#node) : HTMLElement | null;     [port](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#port) : HTMLElement | null; } ##### Index ### Properties [interface](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#interface) [node](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#node) [port](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#port) Properties ---------- ### interface[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#interface) interface: HTMLElement | null ### node[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#node) node: HTMLElement | null ### port[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#port) port: HTMLElement | null ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [interface](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#interface) [node](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#node) [port](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html#port) --- # IHistory | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IHistory](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html) Interface IHistory ================== interface IHistory {     [maxSteps](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html#maxsteps) : number; } ##### Index ### Properties [maxSteps](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html#maxsteps) Properties ---------- ### maxSteps[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html#maxsteps) maxSteps: number ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [maxSteps](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html#maxsteps) --- # ISubgraphInterfaceNode | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ISubgraphInterfaceNode](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html) Interface ISubgraphInterfaceNode ================================ #### Deprecated[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html#deprecated) interface ISubgraphInterfaceNode {     [graphInterfaceId](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html#graphinterfaceid) : string; } ##### Index ### Properties [graphInterfaceId](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html#graphinterfaceid) Properties ---------- ### graphInterfaceId[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html#graphinterfaceid) graphInterfaceId: string ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [graphInterfaceId](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html#graphinterfaceid) --- # ICommandHandler | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) Interface ICommandHandler ========================= interface ICommandHandler {     [pressedKeys](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#pressedkeys) : string\[\];     [canExecuteCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommand-1) <[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommandt) extends AbstractCommand\>(         name: string,         throwOnNonexisting?: boolean,         ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommandt) \["execute"\]\>,     ): boolean;     [executeCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommand-1) <[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) extends AbstractCommand\>(         name: string,         throwOnNonexisting?: false,         ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) \["execute"\]\>,     ): void | ReturnType<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) \["execute"\]\>;     [executeCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommand-2) <[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) extends AbstractCommand\>(         name: string,         throwOnNonexisting: true,         ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) \["execute"\]\>,     ): ReturnType<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) \["execute"\]\>;     [handleKeyDown](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeydown-1) (ev: KeyboardEvent): void;     [handleKeyUp](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeyup-1) (ev: KeyboardEvent): void;     [hasCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#hascommand-1) (name: string): boolean;     [registerCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommand-1) <[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommandt) extends AbstractCommand\>(name: string, command: [T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommandt) ): void;     [registerHotkey](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registerhotkey-1) (         keys: string\[\],         commandName: string,         options?: HotkeyRegistrationOptions,     ): void; } ##### Index ### Properties [pressedKeys](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#pressedkeys) ### Methods [canExecuteCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommand) [executeCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommand) [handleKeyDown](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeydown) [handleKeyUp](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeyup) [hasCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#hascommand) [registerCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommand) [registerHotkey](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registerhotkey) Properties ---------- ### `Internal`pressedKeys[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#pressedkeys) pressedKeys: string\[\] Currently pressed keys Methods ------- ### canExecuteCommand[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommand) * canExecuteCommand<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommandt) extends AbstractCommand\>(     name: string,     throwOnNonexisting?: boolean,     ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommandt) \["execute"\]\>, ): boolean[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommand-1) Checks whether the command can be executed at the present time. #### Type Parameters * T extends AbstractCommand #### Parameters * name: string Name of the command * `Optional`throwOnNonexisting: boolean Whether to throw an error if the command with the specified name does not exist. If set to `false` and the command doesn't exist, the method will just return `false`. * ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommandt) \["execute"\]\> #### Returns boolean ### executeCommand[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommand) * executeCommand<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) extends AbstractCommand\>(     name: string,     throwOnNonexisting?: false,     ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) \["execute"\]\>, ): void | ReturnType<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) \["execute"\]\>[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommand-1) Executes the command with the given name #### Type Parameters * T extends AbstractCommand #### Parameters * name: string Name of the command * `Optional`throwOnNonexisting: false Whether to throw an error if the command with the specified name does not exist. If set to `false` and the command doesn't exist, the method will just return undefined. * ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) \["execute"\]\> #### Returns void | ReturnType<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt) \["execute"\]\> * executeCommand<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) extends AbstractCommand\>(     name: string,     throwOnNonexisting: true,     ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) \["execute"\]\>, ): ReturnType<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) \["execute"\]\>[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommand-2) Executes the command with the given name #### Type Parameters * T extends AbstractCommand #### Parameters * name: string Name of the command * throwOnNonexisting: true Whether to throw an error if the command with the specified name does not exist. If set to `false` and the command doesn't exist, the method will just return `undefined`. * ...args: Parameters<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) \["execute"\]\> #### Returns ReturnType<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommandt-1) \["execute"\]\> ### handleKeyDown[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeydown) * handleKeyDown(ev: KeyboardEvent): void[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeydown-1) `Internal` #### Parameters * ev: KeyboardEvent #### Returns void ### handleKeyUp[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeyup) * handleKeyUp(ev: KeyboardEvent): void[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeyup-1) `Internal` #### Parameters * ev: KeyboardEvent #### Returns void ### hasCommand[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#hascommand) * hasCommand(name: string): boolean[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#hascommand-1) Whether the command with the given name exists #### Parameters * name: string Name of the command #### Returns boolean ### registerCommand[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommand) * registerCommand<[T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommandt) extends AbstractCommand\>(name: string, command: [T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommandt) ): void[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommand-1) Register a new command #### Type Parameters * T extends AbstractCommand #### Parameters * name: string Name of the command * command: [T](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommandt) Command definition #### Returns void ### registerHotkey[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registerhotkey) * registerHotkey(     keys: string\[\],     commandName: string,     options?: HotkeyRegistrationOptions, ): void[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registerhotkey-1) Register a new hotkey combination for the command. #### Parameters * keys: string\[\] Combination of keys. When all keys in the given array are pressed at the same time, the command will be executed. * commandName: string Name of the command that should be executed when the keys are pressed. * `Optional`options: HotkeyRegistrationOptions Options for the hotkey registration. #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [pressedKeys](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#pressedkeys) Methods [canExecuteCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#canexecutecommand) [executeCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#executecommand) [handleKeyDown](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeydown) [handleKeyUp](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#handlekeyup) [hasCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#hascommand) [registerCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registercommand) [registerHotkey](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html#registerhotkey) --- # ITemporaryConnectionHandler | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ITemporaryConnectionHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html) Interface ITemporaryConnectionHandler ===================================== interface ITemporaryConnectionHandler {     [hoveredOver](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#hoveredover) : (ni: NodeInterface | undefined) \=> void;     [temporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#temporaryconnection) : Ref<[ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html) | null\>; } ##### Index ### Properties [hoveredOver](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#hoveredover) [temporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#temporaryconnection) Properties ---------- ### hoveredOver[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#hoveredover) hoveredOver: (ni: NodeInterface | undefined) \=> void ### temporaryConnection[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#temporaryconnection) temporaryConnection: Ref<[ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html) | null\> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [hoveredOver](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#hoveredover) [temporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html#temporaryconnection) --- # ITemporaryConnection | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html) Interface ITemporaryConnection ============================== interface ITemporaryConnection {     [from](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#from) : NodeInterface;     [mx](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#mx) ?: number;     [my](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#my) ?: number;     [status](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#status) : [TemporaryConnectionState](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html) ;     [to](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#to) ?: NodeInterface; } ##### Index ### Properties [from](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#from) [mx?](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#mx) [my?](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#my) [status](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#status) [to?](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#to) Properties ---------- ### from[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#from) from: NodeInterface ### `Optional`mx[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#mx) mx?: number ### `Optional`my[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#my) my?: number ### status[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#status) status: [TemporaryConnectionState](https://baklava.tech/api/enums/_baklavajs_renderer-vue.TemporaryConnectionState.html) ### `Optional`to[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#to) to?: NodeInterface ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [from](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#from) [mx](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#mx) [my](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#my) [status](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#status) [to](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html#to) --- # IBaklavaViewModel | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) Interface IBaklavaViewModel =========================== interface IBaklavaViewModel {     [clipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#clipboard) : [IClipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html) ;     [commandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#commandhandler) : [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ;     [displayedGraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#displayedgraph) : Graph;     [editor](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#editor) : Editor;     [history](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#history) : [IHistory](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html) ;     [hooks](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#hooks) : {         renderInterface: SequentialHook<             { el: HTMLElement; intf: NodeInterface },             null,         \>;         renderNode: SequentialHook<{ el: HTMLElement; node: AbstractNode }, null\>;     };     [isSubgraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#issubgraph) : Readonly;     [settings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#settings) : [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) ;     [switchGraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#switchgraph) : (newGraph: Graph | GraphTemplate) \=> void; } #### Hierarchy * IBaklavaTapable * IBaklavaViewModel ##### Index ### Properties [clipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#clipboard) [commandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#commandhandler) [displayedGraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#displayedgraph) [editor](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#editor) [history](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#history) [hooks](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#hooks) [isSubgraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#issubgraph) [settings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#settings) [switchGraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#switchgraph) Properties ---------- ### clipboard[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#clipboard) clipboard: [IClipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html) ### commandHandler[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#commandhandler) commandHandler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ### displayedGraph[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#displayedgraph) displayedGraph: Graph Currently displayed graph ### editor[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#editor) editor: Editor ### history[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#history) history: [IHistory](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html) ### hooks[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#hooks) hooks: {     renderInterface: SequentialHook<         { el: HTMLElement; intf: NodeInterface },         null,     \>;     renderNode: SequentialHook<{ el: HTMLElement; node: AbstractNode }, null\>; } #### Type Declaration * ##### renderInterface: SequentialHook<{ el: HTMLElement; intf: NodeInterface }, null\> Called whenever an interface is rendered * ##### renderNode: SequentialHook<{ el: HTMLElement; node: AbstractNode }, null\> Called whenever a node is rendered ### isSubgraph[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#issubgraph) isSubgraph: Readonly True if the currently displayed graph is a subgraph, false if it is the root graph ### settings[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#settings) settings: [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) ### switchGraph[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#switchgraph) switchGraph: (newGraph: Graph | GraphTemplate) \=> void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [clipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#clipboard) [commandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#commandhandler) [displayedGraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#displayedgraph) [editor](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#editor) [history](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#history) [hooks](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#hooks) [isSubgraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#issubgraph) [settings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#settings) [switchGraph](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html#switchgraph) --- # IViewNodeState | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IViewNodeState](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html) Interface IViewNodeState ======================== interface IViewNodeState {     [id](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#id) : string;     [inputs](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#inputs) : NodeInterfaceDefinitionStates & NodeInterfaceDefinitionStates<         Record\>,     \>;     [outputs](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#outputs) : NodeInterfaceDefinitionStates & NodeInterfaceDefinitionStates<         Record\>,     \>;     [position](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#position) : { x: number; y: number };     [title](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#title) : string;     [twoColumn](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#twocolumn) : boolean;     [type](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#type) : string;     [width](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#width) : number; } #### Hierarchy * INodeState * IViewNodeState ##### Index ### Properties [id](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#inputs) [outputs](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#outputs) [position](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#position) [title](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#title) [twoColumn](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#twocolumn) [type](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#type) [width](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#width) Properties ---------- ### id[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#id) id: string ### inputs[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#inputs) inputs: NodeInterfaceDefinitionStates & NodeInterfaceDefinitionStates<     Record\>, \> ### outputs[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#outputs) outputs: NodeInterfaceDefinitionStates & NodeInterfaceDefinitionStates<     Record\>, \> ### position[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#position) position: { x: number; y: number } ### title[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#title) title: string ### twoColumn[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#twocolumn) twoColumn: boolean ### type[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#type) type: string ### width[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#width) width: number ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [id](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#id) [inputs](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#inputs) [outputs](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#outputs) [position](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#position) [title](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#title) [twoColumn](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#twocolumn) [type](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#type) [width](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewNodeState.html#width) --- # SetViewNodePropertiesSettings | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SetViewNodePropertiesSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html) Interface SetViewNodePropertiesSettings ======================================= interface SetViewNodePropertiesSettings {     [defaultWidth](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html#defaultwidth) : number; } ##### Index ### Properties [defaultWidth](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html#defaultwidth) Properties ---------- ### defaultWidth[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html#defaultwidth) defaultWidth: number ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [defaultWidth](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html#defaultwidth) --- # ToolbarCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) Interface ToolbarCommand ======================== interface ToolbarCommand {     [command](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#command) : string;     [icon](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#icon) ?: Component;     [title](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#title) : string; } ##### Index ### Properties [command](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#command) [icon?](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#icon) [title](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#title) Properties ---------- ### command[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#command) command: string ### `Optional`icon[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#icon) icon?: Component ### title[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#title) title: string ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [command](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#command) [icon](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#icon) [title](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html#title) --- # Commands | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [Commands](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html) Namespace Commands ================== Type Aliases ------------ [StartSelectionBoxCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.Commands.StartSelectionBoxCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#startselectionboxcommand) Variables --------- [START\_SELECTION\_BOX\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.Commands.START_SELECTION_BOX_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#start_selection_box_command) References ---------- CLEAR\_CLIPBOARD\_COMMAND → [CLEAR\_CLIPBOARD\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CLEAR_CLIPBOARD_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clear_clipboard_command) CLEAR\_HISTORY\_COMMAND → [CLEAR\_HISTORY\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CLEAR_HISTORY_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clear_history_command) ClearClipboardCommand → [ClearClipboardCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ClearClipboardCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clearclipboardcommand) ClearHistoryCommand → [ClearHistoryCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ClearHistoryCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clearhistorycommand) COMMIT\_TRANSACTION\_COMMAND → [COMMIT\_TRANSACTION\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.COMMIT_TRANSACTION_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#commit_transaction_command) CommitTransactionCommand → [CommitTransactionCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CommitTransactionCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#committransactioncommand) COPY\_COMMAND → [COPY\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.COPY_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#copy_command) CopyCommand → [CopyCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CopyCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#copycommand) CREATE\_SUBGRAPH\_COMMAND → [CREATE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CREATE_SUBGRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#create_subgraph_command) CreateSubgraphCommand → [CreateSubgraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CreateSubgraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#createsubgraphcommand) DELETE\_NODES\_COMMAND → [DELETE\_NODES\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DELETE_NODES_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#delete_nodes_command) DeleteNodesCommand → [DeleteNodesCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.DeleteNodesCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#deletenodescommand) OPEN\_SIDEBAR\_COMMAND → [OPEN\_SIDEBAR\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.OPEN_SIDEBAR_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#open_sidebar_command) OpenSidebarCommand → [OpenSidebarCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.OpenSidebarCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#opensidebarcommand) PASTE\_COMMAND → [PASTE\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.PASTE_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#paste_command) PasteCommand → [PasteCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.PasteCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#pastecommand) REDO\_COMMAND → [REDO\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.REDO_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#redo_command) RedoCommand → [RedoCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.RedoCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#redocommand) SAVE\_SUBGRAPH\_COMMAND → [SAVE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SAVE_SUBGRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#save_subgraph_command) SaveSubgraphCommand → [SaveSubgraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.SaveSubgraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#savesubgraphcommand) START\_TRANSACTION\_COMMAND → [START\_TRANSACTION\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.START_TRANSACTION_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#start_transaction_command) StartTransactionCommand → [StartTransactionCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.StartTransactionCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#starttransactioncommand) SWITCH\_TO\_MAIN\_GRAPH\_COMMAND → [SWITCH\_TO\_MAIN\_GRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SWITCH_TO_MAIN_GRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#switch_to_main_graph_command) SwitchToMainGraphCommand → [SwitchToMainGraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchToMainGraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#switchtomaingraphcommand) UNDO\_COMMAND → [UNDO\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.UNDO_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#undo_command) UndoCommand → [UndoCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.UndoCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#undocommand) ZOOM\_TO\_FIT\_GRAPH\_COMMAND → [ZOOM\_TO\_FIT\_GRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_GRAPH_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoom_to_fit_graph_command) ZOOM\_TO\_FIT\_NODES\_COMMAND → [ZOOM\_TO\_FIT\_NODES\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_NODES_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoom_to_fit_nodes_command) ZOOM\_TO\_FIT\_RECT\_COMMAND → [ZOOM\_TO\_FIT\_RECT\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_RECT_COMMAND.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoom_to_fit_rect_command) ZoomToFitGraphCommand → [ZoomToFitGraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitGraphCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoomtofitgraphcommand) ZoomToFitNodesCommand → [ZoomToFitNodesCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitNodesCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoomtofitnodescommand) ZoomToFitRectCommand → [ZoomToFitRectCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitRectCommand.html) [](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoomtofitrectcommand) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Type Aliases [StartSelectionBoxCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#startselectionboxcommand) Variables [START\_SELECTION\_BOX\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#start_selection_box_command) References [CLEAR\_CLIPBOARD\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clear_clipboard_command) [CLEAR\_HISTORY\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clear_history_command) [ClearClipboardCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clearclipboardcommand) [ClearHistoryCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#clearhistorycommand) [COMMIT\_TRANSACTION\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#commit_transaction_command) [CommitTransactionCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#committransactioncommand) [COPY\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#copy_command) [CopyCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#copycommand) [CREATE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#create_subgraph_command) [CreateSubgraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#createsubgraphcommand) [DELETE\_NODES\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#delete_nodes_command) [DeleteNodesCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#deletenodescommand) [OPEN\_SIDEBAR\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#open_sidebar_command) [OpenSidebarCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#opensidebarcommand) [PASTE\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#paste_command) [PasteCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#pastecommand) [REDO\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#redo_command) [RedoCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#redocommand) [SAVE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#save_subgraph_command) [SaveSubgraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#savesubgraphcommand) [START\_TRANSACTION\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#start_transaction_command) [StartTransactionCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#starttransactioncommand) [SWITCH\_TO\_MAIN\_GRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#switch_to_main_graph_command) [SwitchToMainGraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#switchtomaingraphcommand) [UNDO\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#undo_command) [UndoCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#undocommand) [ZOOM\_TO\_FIT\_GRAPH\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoom_to_fit_graph_command) [ZOOM\_TO\_FIT\_NODES\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoom_to_fit_nodes_command) [ZOOM\_TO\_FIT\_RECT\_COMMAND](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoom_to_fit_rect_command) [ZoomToFitGraphCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoomtofitgraphcommand) [ZoomToFitNodesCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoomtofitnodescommand) [ZoomToFitRectCommand](https://baklava.tech/api/modules/_baklavajs_renderer-vue.Commands.html#zoomtofitrectcommand) --- # IViewSettings | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) Interface IViewSettings ======================= interface IViewSettings {     [background](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#background) : {         gridDivision: number;         gridSize: number;         subGridVisibleThreshold: number;     };     [contextMenu](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#contextmenu) : { additionalItems: [ContextMenuItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.ContextMenuItem.html) \[\]; enabled: boolean };     [displayValueOnHover](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#displayvalueonhover) : boolean;     [enableMinimap](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#enableminimap) : boolean;     [nodes](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#nodes) : {         defaultWidth: number;         maxWidth: number;         minWidth: number;         resizable: boolean;         reverseY: boolean;     };     [palette](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#palette) : { enabled: boolean };     [panZoom](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#panzoom) : { maxScale: number; minScale: number };     [sidebar](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#sidebar) : { enabled: boolean; resizable: boolean; width: number };     [toolbar](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#toolbar) : {         commands: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\];         enabled: boolean;         subgraphCommands: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\];     };     [useStraightConnections](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#usestraightconnections) : boolean;     [zoomToFit](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#zoomtofit) : {         paddingBottom: number;         paddingLeft: number;         paddingRight: number;         paddingTop: number;     }; } ##### Index ### Properties [background](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#background) [contextMenu](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#contextmenu) [displayValueOnHover](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#displayvalueonhover) [enableMinimap](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#enableminimap) [nodes](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#nodes) [palette](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#palette) [panZoom](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#panzoom) [sidebar](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#sidebar) [toolbar](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#toolbar) [useStraightConnections](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#usestraightconnections) [zoomToFit](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#zoomtofit) Properties ---------- ### background[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#background) background: {     gridDivision: number;     gridSize: number;     subGridVisibleThreshold: number; } Background settings ### contextMenu[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#contextmenu) contextMenu: { additionalItems: [ContextMenuItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.ContextMenuItem.html) \[\]; enabled: boolean } #### Type Declaration * ##### additionalItems: [ContextMenuItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.ContextMenuItem.html) \[\] * ##### enabled: boolean Whether the context menu should be enabled ### displayValueOnHover[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#displayvalueonhover) displayValueOnHover: boolean Show interface value on port hover ### enableMinimap[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#enableminimap) enableMinimap: boolean Show a minimap ### nodes[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#nodes) nodes: {     defaultWidth: number;     maxWidth: number;     minWidth: number;     resizable: boolean;     reverseY: boolean; } Node settings #### Type Declaration * ##### defaultWidth: number Default width of a node * ##### maxWidth: number Maximum width of a node * ##### minWidth: number Minimum width of a node * ##### resizable: boolean Whether users should be able to resize nodes * ##### reverseY: boolean Inverts the order of inputs/outputs in nodes. ### palette[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#palette) palette: { enabled: boolean } Palette settings #### Type Declaration * ##### enabled: boolean Whether the palette should be enabled ### panZoom[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#panzoom) panZoom: { maxScale: number; minScale: number } sidebar: { enabled: boolean; resizable: boolean; width: number } Sidebar settings #### Type Declaration * ##### enabled: boolean Whether the sidebar should be enabled * ##### resizable: boolean Whether users should be able to resize the sidebar * ##### width: number Width of the sidebar in pixels ### toolbar[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#toolbar) toolbar: {     commands: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\];     enabled: boolean;     subgraphCommands: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\]; } Toolbar settings #### Type Declaration * ##### commands: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\] * ##### enabled: boolean Whether the toolbar should be enabled * ##### subgraphCommands: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\] ### useStraightConnections[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#usestraightconnections) useStraightConnections: boolean Use straight connections instead of bezier curves ### zoomToFit[](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#zoomtofit) zoomToFit: {     paddingBottom: number;     paddingLeft: number;     paddingRight: number;     paddingTop: number; } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ### On This Page Properties [background](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#background) [contextMenu](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#contextmenu) [displayValueOnHover](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#displayvalueonhover) [enableMinimap](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#enableminimap) [nodes](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#nodes) [palette](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#palette) [panZoom](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#panzoom) [sidebar](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#sidebar) [toolbar](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#toolbar) [useStraightConnections](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#usestraightconnections) [zoomToFit](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html#zoomtofit) --- # ClearClipboardCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ClearClipboardCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ClearClipboardCommand.html) Type Alias ClearClipboardCommand ================================ ClearClipboardCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ClearHistoryCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ClearHistoryCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ClearHistoryCommand.html) Type Alias ClearHistoryCommand ============================== ClearHistoryCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CommitTransactionCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [CommitTransactionCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CommitTransactionCommand.html) Type Alias CommitTransactionCommand =================================== CommitTransactionCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ContextMenuItem | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ContextMenuItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.ContextMenuItem.html) Type Alias ContextMenuItem ========================== ContextMenuItem:     | SimpleContextMenuItem     | DividerContextMenuItem     | SubmenuContextMenuItem ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CopyCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [CopyCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CopyCommand.html) Type Alias CopyCommand ====================== CopyCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CreateSubgraphCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [CreateSubgraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.CreateSubgraphCommand.html) Type Alias CreateSubgraphCommand ================================ CreateSubgraphCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DeleteNodesCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [DeleteNodesCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.DeleteNodesCommand.html) Type Alias DeleteNodesCommand ============================= DeleteNodesCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # InputNode | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [InputNode](https://baklava.tech/api/types/_baklavajs_renderer-vue.InputNode.html) Type Alias InputNode ==================== InputNode: NodeInstanceOf & [ISubgraphInterfaceNode](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html) #### Deprecated[](https://baklava.tech/api/types/_baklavajs_renderer-vue.InputNode.html#deprecated) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # OpenSidebarCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [OpenSidebarCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.OpenSidebarCommand.html) Type Alias OpenSidebarCommand ============================= OpenSidebarCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # OutputNode | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [OutputNode](https://baklava.tech/api/types/_baklavajs_renderer-vue.OutputNode.html) Type Alias OutputNode ===================== OutputNode: NodeInstanceOf & [ISubgraphInterfaceNode](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ISubgraphInterfaceNode.html) #### Deprecated[](https://baklava.tech/api/types/_baklavajs_renderer-vue.OutputNode.html#deprecated) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # PasteCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [PasteCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.PasteCommand.html) Type Alias PasteCommand ======================= PasteCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # RedoCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [RedoCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.RedoCommand.html) Type Alias RedoCommand ====================== RedoCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SaveSubgraphCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SaveSubgraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.SaveSubgraphCommand.html) Type Alias SaveSubgraphCommand ============================== SaveSubgraphCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SelectInterfaceItem | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SelectInterfaceItem](https://baklava.tech/api/types/_baklavajs_renderer-vue.SelectInterfaceItem.html) Type Alias SelectInterfaceItem ================================= SelectInterfaceItem: string | [IAdvancedSelectInterfaceItem](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IAdvancedSelectInterfaceItem.html) <[V](https://baklava.tech/api/types/_baklavajs_renderer-vue.SelectInterfaceItem.html#v) \> #### Type Parameters * V ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # StartTransactionCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [StartTransactionCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.StartTransactionCommand.html) Type Alias StartTransactionCommand ================================== StartTransactionCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SwitchGraph | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) Type Alias SwitchGraph ====================== SwitchGraph: (newGraph: Graph | GraphTemplate) \=> void #### Type Declaration * * (newGraph: Graph | GraphTemplate): void * #### Parameters * newGraph: Graph | GraphTemplate #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SwitchToMainGraphCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SwitchToMainGraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchToMainGraphCommand.html) Type Alias SwitchToMainGraphCommand =================================== SwitchToMainGraphCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # UndoCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [UndoCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.UndoCommand.html) Type Alias UndoCommand ====================== UndoCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ZoomToFitGraphCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ZoomToFitGraphCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitGraphCommand.html) Type Alias ZoomToFitGraphCommand ================================ ZoomToFitGraphCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ZoomToFitNodesCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ZoomToFitNodesCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitNodesCommand.html) Type Alias ZoomToFitNodesCommand ================================ ZoomToFitNodesCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ZoomToFitRectCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ZoomToFitRectCommand](https://baklava.tech/api/types/_baklavajs_renderer-vue.ZoomToFitRectCommand.html) Type Alias ZoomToFitRectCommand =============================== ZoomToFitRectCommand: [ICommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommand.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CLEAR_CLIPBOARD_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [CLEAR\_CLIPBOARD\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CLEAR_CLIPBOARD_COMMAND.html) Variable CLEAR\_CLIPBOARD\_COMMAND`Const` ========================================= CLEAR\_CLIPBOARD\_COMMAND: "CLEAR\_CLIPBOARD" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CLEAR_HISTORY_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [CLEAR\_HISTORY\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CLEAR_HISTORY_COMMAND.html) Variable CLEAR\_HISTORY\_COMMAND`Const` ======================================= CLEAR\_HISTORY\_COMMAND: "CLEAR\_HISTORY" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # COMMIT_TRANSACTION_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [COMMIT\_TRANSACTION\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.COMMIT_TRANSACTION_COMMAND.html) Variable COMMIT\_TRANSACTION\_COMMAND`Const` ============================================ COMMIT\_TRANSACTION\_COMMAND: "COMMIT\_TRANSACTION" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # COPY_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [COPY\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.COPY_COMMAND.html) Variable COPY\_COMMAND`Const` ============================= COPY\_COMMAND: "COPY" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # CREATE_SUBGRAPH_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [CREATE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.CREATE_SUBGRAPH_COMMAND.html) Variable CREATE\_SUBGRAPH\_COMMAND`Const` ========================================= CREATE\_SUBGRAPH\_COMMAND: "CREATE\_SUBGRAPH" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DEFAULT_SETTINGS | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [DEFAULT\_SETTINGS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DEFAULT_SETTINGS.html) Variable DEFAULT\_SETTINGS`Const` ================================= DEFAULT\_SETTINGS: () \=> [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) = ... #### Type Declaration * * (): [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) * #### Returns [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DEFAULT_TOOLBAR_SUBGRAPH_COMMANDS | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [DEFAULT\_TOOLBAR\_SUBGRAPH\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DEFAULT_TOOLBAR_SUBGRAPH_COMMANDS.html) Variable DEFAULT\_TOOLBAR\_SUBGRAPH\_COMMANDS`Const` ==================================================== DEFAULT\_TOOLBAR\_SUBGRAPH\_COMMANDS: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\] = ... ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DEFAULT_TOOLBAR_COMMANDS | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [DEFAULT\_TOOLBAR\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DEFAULT_TOOLBAR_COMMANDS.html) Variable DEFAULT\_TOOLBAR\_COMMANDS`Const` ========================================== DEFAULT\_TOOLBAR\_COMMANDS: [ToolbarCommand](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ToolbarCommand.html) \[\] = ... ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # DELETE_NODES_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [DELETE\_NODES\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.DELETE_NODES_COMMAND.html) Variable DELETE\_NODES\_COMMAND`Const` ====================================== DELETE\_NODES\_COMMAND: "DELETE\_NODES" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # EditorComponent | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [EditorComponent](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html) Variable EditorComponent`Const` =============================== EditorComponent: DefineComponent<{}, {}, any\> #### Deprecated[](https://baklava.tech/api/variables/_baklavajs_renderer-vue.EditorComponent.html#deprecated) use `BaklavaEditor` instead ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # OPEN_SIDEBAR_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [OPEN\_SIDEBAR\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.OPEN_SIDEBAR_COMMAND.html) Variable OPEN\_SIDEBAR\_COMMAND`Const` ====================================== OPEN\_SIDEBAR\_COMMAND: "OPEN\_SIDEBAR" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # PASTE_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [PASTE\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.PASTE_COMMAND.html) Variable PASTE\_COMMAND`Const` ============================== PASTE\_COMMAND: "PASTE" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # REDO_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [REDO\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.REDO_COMMAND.html) Variable REDO\_COMMAND`Const` ============================= REDO\_COMMAND: "REDO" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SAVE_SUBGRAPH_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SAVE\_SUBGRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SAVE_SUBGRAPH_COMMAND.html) Variable SAVE\_SUBGRAPH\_COMMAND`Const` ======================================= SAVE\_SUBGRAPH\_COMMAND: "SAVE\_SUBGRAPH" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # START_TRANSACTION_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [START\_TRANSACTION\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.START_TRANSACTION_COMMAND.html) Variable START\_TRANSACTION\_COMMAND`Const` =========================================== START\_TRANSACTION\_COMMAND: "START\_TRANSACTION" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SUBGRAPH_INPUT_NODE_TYPE | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SUBGRAPH\_INPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SUBGRAPH_INPUT_NODE_TYPE.html) Variable SUBGRAPH\_INPUT\_NODE\_TYPE`Const` =========================================== SUBGRAPH\_INPUT\_NODE\_TYPE: "\_\_baklava\_SubgraphInputNode" = GRAPH\_INPUT\_NODE\_TYPE #### Deprecated[](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SUBGRAPH_INPUT_NODE_TYPE.html#deprecated) use GRAPH\_INPUT\_NODE\_TYPE from the @baklavajs/core package instead ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SUBGRAPH_OUTPUT_NODE_TYPE | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SUBGRAPH\_OUTPUT\_NODE\_TYPE](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SUBGRAPH_OUTPUT_NODE_TYPE.html) Variable SUBGRAPH\_OUTPUT\_NODE\_TYPE`Const` ============================================ SUBGRAPH\_OUTPUT\_NODE\_TYPE: "\_\_baklava\_SubgraphOutputNode" = GRAPH\_OUTPUT\_NODE\_TYPE #### Deprecated[](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SUBGRAPH_OUTPUT_NODE_TYPE.html#deprecated) use GRAPH\_OUTPUT\_NODE\_TYPE from the @baklavajs/core package instead ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # SWITCH_TO_MAIN_GRAPH_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [SWITCH\_TO\_MAIN\_GRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.SWITCH_TO_MAIN_GRAPH_COMMAND.html) Variable SWITCH\_TO\_MAIN\_GRAPH\_COMMAND`Const` ================================================ SWITCH\_TO\_MAIN\_GRAPH\_COMMAND: "SWITCH\_TO\_MAIN\_GRAPH" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # TOOLBAR_COMMANDS | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [TOOLBAR\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.TOOLBAR_COMMANDS.html) Variable TOOLBAR\_COMMANDS`Const` ================================= TOOLBAR\_COMMANDS: Record = ... ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # TOOLBAR_SUBGRAPH_COMMANDS | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [TOOLBAR\_SUBGRAPH\_COMMANDS](https://baklava.tech/api/variables/_baklavajs_renderer-vue.TOOLBAR_SUBGRAPH_COMMANDS.html) Variable TOOLBAR\_SUBGRAPH\_COMMANDS`Const` =========================================== TOOLBAR\_SUBGRAPH\_COMMANDS: Record = ... ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # UNDO_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [UNDO\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.UNDO_COMMAND.html) Variable UNDO\_COMMAND`Const` ============================= UNDO\_COMMAND: "UNDO" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useCommandHandler | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useCommandHandler](https://baklava.tech/api/variables/_baklavajs_renderer-vue.useCommandHandler.html) Variable useCommandHandler`Const` ================================= useCommandHandler: () \=> [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) = ... #### Type Declaration * * (): [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) * #### Returns [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ZOOM_TO_FIT_GRAPH_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ZOOM\_TO\_FIT\_GRAPH\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_GRAPH_COMMAND.html) Variable ZOOM\_TO\_FIT\_GRAPH\_COMMAND`Const` ============================================= ZOOM\_TO\_FIT\_GRAPH\_COMMAND: "ZOOM\_TO\_FIT\_GRAPH" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ZOOM_TO_FIT_NODES_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ZOOM\_TO\_FIT\_NODES\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_NODES_COMMAND.html) Variable ZOOM\_TO\_FIT\_NODES\_COMMAND`Const` ============================================= ZOOM\_TO\_FIT\_NODES\_COMMAND: "ZOOM\_TO\_FIT\_NODES" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # ZOOM_TO_FIT_RECT_COMMAND | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [ZOOM\_TO\_FIT\_RECT\_COMMAND](https://baklava.tech/api/variables/_baklavajs_renderer-vue.ZOOM_TO_FIT_RECT_COMMAND.html) Variable ZOOM\_TO\_FIT\_RECT\_COMMAND`Const` ============================================ ZOOM\_TO\_FIT\_RECT\_COMMAND: "ZOOM\_TO\_FIT\_RECT" ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # displayInSidebar | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [displayInSidebar](https://baklava.tech/api/functions/_baklavajs_renderer-vue.displayInSidebar.html) Function displayInSidebar ========================= * displayInSidebar(intf: NodeInterface, displayInSidebar: boolean): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.displayInSidebar.html#displayinsidebar) #### Parameters * intf: NodeInterface * displayInSidebar: boolean #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # getDomElementOfNode | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [getDomElementOfNode](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getDomElementOfNode.html) Function getDomElementOfNode ============================ * getDomElementOfNode(node: AbstractNode): HTMLElement | null[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getDomElementOfNode.html#getdomelementofnode) #### Parameters * node: AbstractNode #### Returns HTMLElement | null ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # getDomElements | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [getDomElements](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getDomElements.html) Function getDomElements ======================= * getDomElements(ni: NodeInterface): [IResolvedDomElements](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html) [](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getDomElements.html#getdomelements) #### Parameters * ni: NodeInterface #### Returns [IResolvedDomElements](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # getNodePosition | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [getNodePosition](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getNodePosition.html) Function getNodePosition ======================== * getNodePosition(node: AbstractNode): { x: number; y: number }[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getNodePosition.html#getnodeposition) #### Parameters * node: AbstractNode #### Returns { x: number; y: number } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # getPortCoordinates | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [getPortCoordinates](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getPortCoordinates.html) Function getPortCoordinates =========================== * getPortCoordinates(resolved: [IResolvedDomElements](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html) ): \[number, number\][](https://baklava.tech/api/functions/_baklavajs_renderer-vue.getPortCoordinates.html#getportcoordinates) #### Parameters * resolved: [IResolvedDomElements](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IResolvedDomElements.html) #### Returns \[number, number\] ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # isInputElement | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [isInputElement](https://baklava.tech/api/functions/_baklavajs_renderer-vue.isInputElement.html) Function isInputElement ======================= * isInputElement(el: Element): boolean[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.isInputElement.html#isinputelement) #### Parameters * el: Element #### Returns boolean ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # providePlugin | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [providePlugin](https://baklava.tech/api/functions/_baklavajs_renderer-vue.providePlugin.html) Function providePlugin ====================== * providePlugin(viewModel: Ref<[IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) \>): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.providePlugin.html#provideplugin) #### Parameters * viewModel: Ref<[IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) \> #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # provideTemporaryConnection | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [provideTemporaryConnection](https://baklava.tech/api/functions/_baklavajs_renderer-vue.provideTemporaryConnection.html) Function provideTemporaryConnection =================================== * provideTemporaryConnection(): {     hoveredOver: (ni: NodeInterface | undefined) \=> void;     onMouseDown: () \=> void;     onMouseMove: (ev: MouseEvent) \=> void;     onMouseUp: () \=> void;     temporaryConnection: Ref<         [ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html)         | null,         [ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html) | null,     \>; }[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.provideTemporaryConnection.html#providetemporaryconnection) #### Returns {     hoveredOver: (ni: NodeInterface | undefined) \=> void;     onMouseDown: () \=> void;     onMouseMove: (ev: MouseEvent) \=> void;     onMouseUp: () \=> void;     temporaryConnection: Ref<         [ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html)         | null,         [ITemporaryConnection](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnection.html) | null,     \>; } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # registerCreateSubgraphCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [registerCreateSubgraphCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerCreateSubgraphCommand.html) Function registerCreateSubgraphCommand ====================================== * registerCreateSubgraphCommand(     displayedGraph: Ref,     handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ,     switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerCreateSubgraphCommand.html#registercreatesubgraphcommand) #### Parameters * displayedGraph: Ref * handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) * switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # registerDeleteNodesCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [registerDeleteNodesCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerDeleteNodesCommand.html) Function registerDeleteNodesCommand =================================== * registerDeleteNodesCommand(     displayedGraph: Ref,     handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerDeleteNodesCommand.html#registerdeletenodescommand) #### Parameters * displayedGraph: Ref * handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # registerGraphCommands | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [registerGraphCommands](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerGraphCommands.html) Function registerGraphCommands ============================== * registerGraphCommands(     displayedGraph: Ref,     handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ,     switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerGraphCommands.html#registergraphcommands) #### Parameters * displayedGraph: Ref * handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) * switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # registerSaveSubgraphCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [registerSaveSubgraphCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSaveSubgraphCommand.html) Function registerSaveSubgraphCommand ==================================== * registerSaveSubgraphCommand(     displayedGraph: Ref,     handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSaveSubgraphCommand.html#registersavesubgraphcommand) #### Parameters * displayedGraph: Ref * handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # registerSidebarCommands | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [registerSidebarCommands](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSidebarCommands.html) Function registerSidebarCommands ================================ * registerSidebarCommands(     displayedGraph: Ref,     handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSidebarCommands.html#registersidebarcommands) #### Parameters * displayedGraph: Ref * handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # registerSwitchToMainGraphCommand | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [registerSwitchToMainGraphCommand](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSwitchToMainGraphCommand.html) Function registerSwitchToMainGraphCommand ========================================= * registerSwitchToMainGraphCommand(     displayedGraph: Ref,     handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ,     switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerSwitchToMainGraphCommand.html#registerswitchtomaingraphcommand) #### Parameters * displayedGraph: Ref * handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) * switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # registerZoomToFitCommands | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [registerZoomToFitCommands](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerZoomToFitCommands.html) Function registerZoomToFitCommands ================================== * registerZoomToFitCommands(     displayedGraph: Ref,     handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ,     settings: [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.registerZoomToFitCommands.html#registerzoomtofitcommands) #### Parameters * displayedGraph: Ref * handler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) * settings: [IViewSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IViewSettings.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # setNodePosition | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [setNodePosition](https://baklava.tech/api/functions/_baklavajs_renderer-vue.setNodePosition.html) Function setNodePosition ======================== * setNodePosition(node: AbstractNode, x: number, y: number): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.setNodePosition.html#setnodeposition) #### Parameters * node: AbstractNode * x: number * y: number #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # setViewNodeProperties | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [setViewNodeProperties](https://baklava.tech/api/functions/_baklavajs_renderer-vue.setViewNodeProperties.html) Function setViewNodeProperties ============================== * setViewNodeProperties(     node: AbstractNode,     settings: [SetViewNodePropertiesSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html) , ): void[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.setViewNodeProperties.html#setviewnodeproperties) #### Parameters * node: AbstractNode * settings: [SetViewNodePropertiesSettings](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.SetViewNodePropertiesSettings.html) #### Returns void ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useBaklava | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useBaklava](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useBaklava.html) Function useBaklava =================== * useBaklava(existingEditor?: Editor): [IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) [](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useBaklava.html#usebaklava) #### Parameters * `Optional`existingEditor: Editor #### Returns [IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useClipboard | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useClipboard](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useClipboard.html) Function useClipboard ===================== * useClipboard(     displayedGraph: Ref,     editor: Ref,     commandHandler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) , ): [IClipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html) [](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useClipboard.html#useclipboard) #### Parameters * displayedGraph: Ref * editor: Ref * commandHandler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) #### Returns [IClipboard](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IClipboard.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useDragMove | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useDragMove](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useDragMove.html) Function useDragMove ==================== * useDragMove(     positionRef: Ref, ): {     dragging: ComputedRef;     onPointerDown: (ev: PointerEvent) \=> void;     onPointerMove: (ev: PointerEvent) \=> void;     onPointerUp: () \=> void; }[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useDragMove.html#usedragmove) #### Parameters * positionRef: Ref #### Returns {     dragging: ComputedRef;     onPointerDown: (ev: PointerEvent) \=> void;     onPointerMove: (ev: PointerEvent) \=> void;     onPointerUp: () \=> void; } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useGraph | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useGraph](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useGraph.html) Function useGraph ================= * useGraph(): { graph: Readonly\>; switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) }[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useGraph.html#usegraph) #### Returns { graph: Readonly\>; switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useHistory | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useHistory](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useHistory.html) Function useHistory =================== * useHistory(graph: Ref, commandHandler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) ): [IHistory](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html) [](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useHistory.html#usehistory) #### Parameters * graph: Ref * commandHandler: [ICommandHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ICommandHandler.html) #### Returns [IHistory](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IHistory.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useNodeCategories | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useNodeCategories](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useNodeCategories.html) Function useNodeCategories ========================== * useNodeCategories(     viewModel: Ref<[IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) \>, ): ComputedRef<{ name: string; nodeTypes: NodeTypeInformations }\[\]\>[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useNodeCategories.html#usenodecategories) #### Parameters * viewModel: Ref<[IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) \> #### Returns ComputedRef<{ name: string; nodeTypes: NodeTypeInformations }\[\]\> ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useSwitchGraph | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useSwitchGraph](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useSwitchGraph.html) Function useSwitchGraph ======================= * useSwitchGraph(     editor: Ref,     displayedGraph: Ref, ): { switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) }[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useSwitchGraph.html#useswitchgraph) #### Parameters * editor: Ref * displayedGraph: Ref #### Returns { switchGraph: [SwitchGraph](https://baklava.tech/api/types/_baklavajs_renderer-vue.SwitchGraph.html) } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useTemporaryConnection | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useTemporaryConnection](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useTemporaryConnection.html) Function useTemporaryConnection =============================== * useTemporaryConnection(): [ITemporaryConnectionHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html) [](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useTemporaryConnection.html#usetemporaryconnection) #### Returns [ITemporaryConnectionHandler](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.ITemporaryConnectionHandler.html) ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useTransform | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useTransform](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useTransform.html) Function useTransform ===================== * useTransform(): { transform: (x: number, y: number) \=> \[number, number\] }[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useTransform.html#usetransform) #### Returns { transform: (x: number, y: number) \=> \[number, number\] } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark --- # useViewModel | Reference - BaklavaJS * [@baklavajs/renderer-vue](https://baklava.tech/api/modules/_baklavajs_renderer-vue.html) * [useViewModel](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useViewModel.html) Function useViewModel ===================== * useViewModel(): { viewModel: Ref<[IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) \> }[](https://baklava.tech/api/functions/_baklavajs_renderer-vue.useViewModel.html#useviewmodel) #### Returns { viewModel: Ref<[IBaklavaViewModel](https://baklava.tech/api/interfaces/_baklavajs_renderer-vue.IBaklavaViewModel.html) \> } ### Settings Member Visibility * Protected * Inherited ThemeOSLightDark ---