Skip to content

Drop-down list properties

The drop-down list definition property template can be used to add a custom property of drop-down list type. When defining a drop-down list 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 drop-down list property type definition.

Note: The drop-down list effect is achieved by setting the component field to dropdown; 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 drop-down list property and should always be dropdown.
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, or 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 a custom drop down list

Defining a custom property of drop down list type can look like below.

Example: Add custom drop down list property to Appearance accordion

Note: Customization of properties always starts with items.

return {
  type: "items",
  component: "accordion",
  items: {
    settings: {
      uses: "settings",
      items: {
        MyDropdownProp: {
          type: "string",
          component: "dropdown",
          label: "Orientation",
          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 drop-down menu in
extension

You can also define a new accordion item as a drop down property.

Example: Add custom drop down property as a new accordion item

return {
  type: "items",
  component: "accordion",
  items: {
    MyAccordion: {
      type: "string",
      component: "dropdown",
      label: "Orientation",
      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 dropdown menu in
extension as accordion property
Was this page helpful?