Skip to content

Radio button properties

The radio button definition property template can be used to add a custom property of radio button type. When defining a radio button property, the following fields can be used:

Definition properties

FieldDescription
typeUsed for all custom property type definitions. Can be either string, integer, number, array, or boolean.
This field is mandatory and should always be "string" for a radio button property type definition.

Note: The radio button effect is achieved by setting the component field to "radiobuttons"; see below.
componentUsed 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 radio button property and should always be "radiobuttons".
labelUsed for defining the label that is displayed in the property panel.
refName or ID used to reference a property.
defaultValueUsed for defining the default value of your custom property.
optionsArray of options. Can be value, label, and function.

Example:

options: [{
value: "v",
label: "Vertical"
}, {
value: "h",
label: "Horizontal"
}],

Examples

Fetching options from an external resource

**Note: This example is using jQuery. Make sure to have jQuery included as a require-dependency.

return {
  type: "items",
  component: "accordion",
  items: {
    settings: {
      uses: "settings",
      items: {
        MyDropdownProp: {
          type: "string",
          component: "dropdown",
          label: "Data source",
          ref: "myproperties.datasource",
          options: () => {
            return $.get("datasource.php").then((items) => {
              return items.map((item) => {
                return {
                  value:item.toLowerCase(),
                  label:item
                };
              });
            });
          }

Note: Options will be fetched every time a property is changed. It is up to the developer to cache the result from the web service if you want to avoid repeating reloads.

Defining custom radio buttons

Defining a custom property of radio button type can look like below.

Example: Add custom radio button property to Appearance accordion

Note: Customization of properties always starts with items.

return {
  type: "items",
  component: "accordion",
  items: {
    settings: {
    uses: "settings",
    items: {
      MyRadiobuttongroupProp: {
        type: "string",
        component: "radiobuttons",
        label: "Orientation radio-buttons",
        ref: "myproperties.orientation",
        options: [{
          value: "v",
          label: "Vertical"
        }, {
          value: "h",
          label: "Horizontal"
        }],
        defaultValue: "v"
      }
    }
  }

This is what it looks like in the property panel

Custom radio buttons with
title object in extension

You can also define a new accordion item as a radio button property.

Example: Add custom radio button property as a new accordion item

return {
  type: "items",
  component: "accordion",
  items: {
    MyAccordion: {
      type: "string",
      component: "radiobuttons",
      label: "Orientation radio-buttons",
      ref: "myproperties.orientation",
      options: [{
        value: "v",
        label: "Vertical"
      }, {
        value: "h",
        label: "Horizontal"
      }],
      defaultValue: "v"
    }

This is what it looks like in the property panel

Custom radio buttons with
title object in extension as an accordion item
Was this page helpful?