@tripetto
The @tripetto
decorator is used to register the builder part of node and condition blocks. It can be used to register the following classes:
NodeBlock
: A block that can be assigned to a node (this can be a visual block or a headless block);ConditionBlock
: A block that can be assigned to branch conditions.
See the blocks documentation to learn how to develop custom blocks.
Decorator type
Class ℹ️
Applies to
Decorator signature
@tripetto(properties: INodeBlockDecorator | IConditionBlockDecorator)
Decorator parameters
Name | Type | Optional | Description |
---|---|---|---|
properties | INodeBlockDecorator | IConditionBlockDecorator | No | Specifies the block properties that implicitly determine the type of block. |
Example
import { tripetto, _, NodeBlock, ConditionBlock } from "@tripetto/builder";
// Register a node block
@tripetto({
type: "node",
identifier: "example-block",
get label() {
return _("Example");
},
icon: /* Icon for the block. */
})
class ExampleBlock extends NodeBlock {
// Block implementation here
}
// Register a condition block
@tripetto({
type: "condition",
identifier: "example-block-condition",
context: ExampleBlock,
get label() {
return _("Condition for the example block");
},
icon: /* Icon for the block. */
})
class ExampleCondition extends ConditionBlock {
// Block implementation here
}
⛓️ Interfaces
🔗 INodeBlockDecorator
Describes the interface for registering a NodeBlock
.
Type declaration
interface INodeBlockDecorator { type: "node"; identifier: string; label: string; icon: SVGImage | string; version?: string;Optional alias?: string | string[];Optional namespace?: string | string[];Optional kind?: "ui" | "headless";Optional }
🏷️ alias
Specifies optional type aliases (alternative type identifiers for the block).
Type
string | string[]
🏷️ icon
Specifies the icon image for the block (either an URL or Base64-encoded image data).
See the Block icon guide for more information about the block icon.
Type
SVGImage
| string
Example
@tripetto({
type: "node",
identifier: "example-block",
label: "Example block",
icon: "data:image/svg+xml;base64,PHN2ZyAvPg=="
})
🏷️ identifier
Specifies the unique type identifier for the block.
Type
string
🏷️ kind
Specifies the kind of block. Can be one of the following values:
ui
: Specifies the block needs a user interface in the runner (this is the default kind);headless
: Specifies the block is headless (doesn't need a user interface).
Type
"ui" | "headless"
🏷️ label
Specifies the localized block label (if you use gettext
, return the localized string using a getter function).
Type
string
Example
import { _, tripetto } from "@tripetto/builder";
@tripetto({
get label() {
return _("Example");
},
})
🏷️ namespace
Specifies the namespace(s) for the block.
Type
string | string[]
🏷️ type
Specifies to register a node block.
Type
"node"
🏷️ version
Specifies the version of the block in SemVer format (defaults to 0.0.0
).
Type
"node"
🔗 IConditionBlockDecorator
Describes the interface for registering a ConditionBlock
.
Type declaration
interface IConditionBlockDecorator { type: "condition"; identifier: string; context: "*" | "section" | "branch" | "node" | string | typeof NodeBlock label: string; icon: SVGImage | string; version?: string;Optional alias?: string | string[];Optional namespace?: string | string[];Optional autoOpen?: boolean;Optional }
🏷️ alias
Specifies optional type aliases (alternative type identifiers for the block).
Type
string | string[]
🏷️ autoOpen
Specifies if the condition editor panel in the builder should automatically open when the condition is added to the form.
Type
boolean
🏷️ context
Specifies the block context. Can be one of the following values:
*
: The block defines a global condition (it can be used anywhere and it is not dependent on a section, branch, node or block type);section
: The block defines a condition that applies to a section;branch
: The block defines a condition that applies to a branch;node
: The block defines a condition that applies to a node;typeof NodeBlock
: Specifies theNodeBlock
type to which the condition applies;- The type string identifier of the
NodeBlock
type to which the condition applies.
Type
"*" | "section" | "branch" | "node" | string | typeof NodeBlock
🏷️ icon
Specifies the icon image for the block (either an URL or Base64-encoded image data).
See the Block icon guide for more information about the block icon.
Type
SVGImage
| string
Example
@tripetto({
type: "condition",
identifier: "example-block",
context: "*",
label: "Example block",
icon: "data:image/svg+xml;base64,PHN2ZyAvPg=="
})
🏷️ identifier
Specifies the unique type identifier for the block.
Type
string
🏷️ label
Specifies the localized block label (if you use gettext
, return the localized string using a getter function).
Type
string
Example
import { _, tripetto } from "@tripetto/builder";
@tripetto({
get label() {
return _("Example");
},
})
🏷️ namespace
Specifies the namespace(s) for the block.
Type
string | string[]
🏷️ type
Specifies to register a condition block.
Type
"condition"
🏷️ version
Specifies the version of the block in SemVer format (defaults to 0.0.0
).
Type
string