Switch properties
The switch definition property template can be used to add a custom property of switch type. When defining a switch property, the following fields can be used:
Definition properties
Field | Description |
---|---|
type | Used for all custom property type definitions. Can be either string , integer , number , array , or boolean .This field is mandatory and should always be "boolean" for a switch property type definition.Note: The switch effect is achieved by setting the component field to "switch" ; see below. |
component | Used for defining how the property is visualized in the property panel. Used to override the default component that comes with the type setting. This field is mandatory for a switch property and should always be "switch" . |
label | Used for defining the label that is displayed in the property panel. |
ref | Name or ID used to reference a property. |
defaultValue | Used for defining the default value of your custom property. |
options | Array of options. Can be value and label .Example: options: [{ value: "v", label: "Vertical" }, { value: "h", label: "Horizontal" }], |
Examples
Defining a custom property of switch type can look like below.
Example: Add custom switch property to Appearance accordion
Note: Customization of properties always starts with
items
.
return { type: "items", component: "accordion", items: { settings: { uses: "settings", items: { MySwitchProp: { type: "boolean", component: "switch", label: "Switch me On", ref: "myproperties.border", options: [{ value: true, label: "On" }, { value: false, label: "Not On" }], defaultValue: true } } }
This is what it looks like in the property panel

You can also define a new accordion item as a switch property.
Example: Add custom switch property as a new accordion item
return { type: "items", component: "accordion", items: { MyAccordion: { type: "boolean", component: "switch", label: "Switch me Off", ref: "myproperties.border", options: [{ value: true, label: "On" }, { value: false, label: "Not on" }], defaultValue: false }
This is what it looks like in the property panel
