Skip to main content

Slot class

📖 Description​

The Slot class is an abstract class from which slot type classes are derived.

📦 Derived slot types​

The following built-in slot types are derived from this class and are available in the Slots module:

🎀 Applicable decorators​

The following decorators can be applied in this class:

Class decorators ℹ️​

Property decorators ℹ️​

👩‍💻 Example​

You can define your own slot types for advanced data collection using this Slot abstract class and the @slot decorator:

import { Slots, castToNumber } from "tripetto";

// Let's define a new slot type to store a square metre unit that automatically appends the unit symbol m².
@Slots.slot("square-metre")
class SquareMetre extends Slots.Slot<number> {
// Converts the pristine data to the correct type (in this case number).
public toValue(data): number {
return castToNumber(data);
}

// Retrieves the string representation of the value (in this case with the unit symbol m² added).
public toString(data): string {
return `${this.toValue(data)} m²`;
}
}

🗃️ Fields​


🏷️ actionable​

Sets or retrieves if the slot is actionable. When set to true the slot will be included in the actionables export function.

info

When set to true, the default value for the exportable property will be false. If you want to make a slot both actionable and exportable, you should set both properties to true.

tip

More information about actionable data can be found here.

Type​

boolean


🏷️ alias​

Sets or retrieves the slot alias. This alias is used to identify the slot in the dataset of a form. The alias is, for example, used in the NVPs and CSV export functions.

tip

When prefilling (or importing data into) forms the alias can be used to easily specify the right data for the right slot.

Type​

string


🏷️ default​

Sets or retrieves the default value for a slot. This default value will be used when there is no explicit value set for a slot or when the slot value is cleared.

Type​

any


🏷️ exportable​

Sets or retrieves if the slot is exportable. When set to true, the slot will be included in the exportables export function.

info

This property defaults to true when the exportable property is omitted, and the actionable property is either set to false or omitted as well.

tip

More information about exportable data can be found here.

Type​

boolean


🏷️ id​

Retrieves the identifier of the slot.

Type​

string


🏷️ kind​

Retrieves the slot kind.

Type​

"static" | "dynamic" | "feature" | "meta"


🏷️ label​

Sets or retrieves the (localized) label for the slot. This label is often a description of the kind of data the slot holds. For example, Text for a text input block. When a block has multiple slots, the label is used to distinguish the different slots.

Type​

string


🏷️ name​

Sets or retrieves the slot name.

tip

For dynamic slots, this name is often the same as the name of the item for which the slot is intended.

Type​

string


🏷️ pipeable​

Sets or retrieves if the slot is pipeable. Piping is the process of recalling slot values in (markdown) text in the form. There are three possible values:

  • true: Slot can be used as piping value (this is the default behavior);
  • false: Slot cannot be used as piping value;
  • Or a custom configuration to instruct Tripetto how to recall the slot.
info

To simply enable or disable piping for the slot (based on the slot value), supply a boolean value. If you need more control over the pipe, you can supply an object with a more specific configuration.

Type​

boolean | {
/* Optional name for the pipe. This is used to group slot values that have the same pipe name. */
pipe?: string;

/* Optional localized label for the pipe. */
label?: string;

/* Optional alias for the pipe. */
alias?: string;

/*
* Specifies the field or content that should be used as the data that goes
* into the pipe. It can be one of the following values:
* - `value`: Use the current string value of the slot (this is the default behavior);
* - `label`: Use the slot label;
* - `name`: Use the name of the slot;
* - Custom configuration to supply the data that goes into the pipe.
*/
content?: "value" | "label" | "name" | {
/* Contains the content as a string without any markup or variables. */
string: string;

/* Contains the content as text with support for variables. */
text?: string;

/* Contains markdown content with support for basic formatting, hyperlinks, and variables. */
markdown?: string;
};

/*
* Specifies the name of a legacy pipe. Only here for backward compatibility. Do not use.
* @deprecated
*/
legacy?: string; 🗑️
}

🏷️ placeholder​

Sets or retrieves the slot placeholder that can be used when a slot doesn't hold a value.

Type​

string


🏷️ protected​

Sets or retrieves whether the slot is write-protected and can only be changed by the block that created the slot. Other blocks in the form (like the Setter block) cannot change the data of the slot.

Type​

boolean


🏷️ reference​

Retrieves the slot reference. This is a unique reference to the slot within a block. You use the reference to retrieve a certain slot in the runner part of a block.

Type​

string


🏷️ required​

Sets or retrieves if the slot is required. When set to true, the block validation will only pass when a slot has a valid value.

Type​

boolean

caution

The Runner Foundation package will automatically validate if all required slots have a valid value.


🏷️ sequence​

Sets or retrieves the sequence number that is used for sorting the slot collection.

Type​

number | undefined


🏷️ slots​

Retrieves a reference to the slots collection.

Type​

Slots


🏷️ type​

Retrieves the slot type identifier.

Type​

string

▶️ Methods​


🔧 delete​

Deletes a slot from the slots collection.

Signature​

delete(): this

Return value​

Returns a reference to the Slot instance.


🔧 deprecate​

Deprecates a slot. This removes a slot from the slots collection and is used when a new version of a block needs to remove a slot that was created by an earlier version of the block.

Signature​

deprecate(): this

Return value​

Returns a reference to the Slot instance.


🔧 toString​

Abstract method

This method is abstract and needs implementation in the derived slot class.

Converts the supplied data to a string representation.

Signature​

toString(data: any): string

Parameters​

NameTypeOptionalDescription
dataanyNoSpecifies the data.

Return value​

Returns the data formatted to a string.


🔧 toValue​

Abstract method

This method is abstract and needs implementation in the derived slot class.

Converts the supplied data to a valid value with the right type T. This type T is defined by the derived slot class.

Signature​

toValue(data: any): T

Parameters​

NameTypeOptionalDescription
dataanyNoSpecifies the data.

Return value​

Returns the validated value with the right type.