Class SelectionInput

SelectionInput

An input field that allows choosing between a set of predefined options.

Available for Google Workspace Add-ons and Google Chat apps.

var checkboxGroup = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.CHECK_BOX)
    .setTitle("A group of checkboxes. Multiple selections are allowed.")
    .setFieldName("checkbox_field")
    .addItem("checkbox one title", "checkbox_one_value", false)
    .addItem("checkbox two title", "checkbox_two_value", true)
    .addItem("checkbox three title", "checkbox_three_value", true)
    .setOnChangeAction(CardService.newAction()
        .setFunctionName("handleCheckboxChange"));

var radioGroup = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.RADIO_BUTTON)
    .setTitle("A group of radio buttons. Only a single selection is allowed.")
    .setFieldName("checkbox_field")
    .addItem("radio button one title", "radio_one_value", true)
    .addItem("radio button two title", "radio_two_value", false)
    .addItem("radio button three title", "radio_three_value", false);

const multiSelect = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.MULTI_SELECT)
    .setFieldName("multiselect")
    .setTitle("A multi select input example.")
    .addMultiSelectItem("Contact 1", "contact-1", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact one description")
    .addMultiSelectItem("Contact 2", "contact-2", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact two description")
    .addMultiSelectItem("Contact 3", "contact-3", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact three description")
    .addMultiSelectItem("Contact 4", "contact-4", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact four description")
    .addMultiSelectItem("Contact 5", "contact-5", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact five description")
    .setMultiSelectMaxSelectedItems(3)
    .setMultiSelectMinQueryLength(1);

Methods

Method Return type Brief description
SelectionInput Adds a new item that can be selected.
SelectionInput Adds a new item that can be selected, for multi-select menus.
SelectionInput Sets external data source, such as a relational data base.
SelectionInput Sets the key that identifies this selection input in the event object that is generated when there is a UI interaction.
SelectionInput Sets the maximum number of items that a user can select.
SelectionInput Sets the number of text characters that a user inputs before the app queries autocomplete and displays suggested items on the card.
SelectionInput Sets an Action to be performed whenever the selection input changes.
SelectionInput Sets a data source from Google Workspace.
SelectionInput Sets the title to be shown ahead of the input field.
SelectionInput Sets the type of this input.

Detailed documentation

addItem(text, value, selected)

Adds a new item that can be selected.

Parameters

Name Type Description
text
Object The text to be shown for this item. Non-string primitive arguments are converted to strings automatically.
value
Object The form input value that is sent via the callback. Non-string primitive arguments are converted to strings automatically.
selected
Boolean Whether the item is selected by default. If the selection input only accepts one value (such as for radio buttons or a dropdown menu), only set this field for one item.

Return

SelectionInput — This object, for chaining.


addMultiSelectItem(text, value, selected, startIconUri, bottomText)

Adds a new item that can be selected, for multi-select menus.

const multiSelect = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.MULTI_SELECT)
    .setFieldName("multiselect")
    .setTitle("A multi select input example.")
    .addMultiSelectItem("Contact 1", "contact-1", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact one description")
    .addMultiSelectItem("Contact 2", "contact-2", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact two description")
    .addMultiSelectItem("Contact 3", "contact-3", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact three description")
    .addMultiSelectItem("Contact 4", "contact-4", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact four description")
    .addMultiSelectItem("Contact 5", "contact-5", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact five description");

Parameters

Name Type Description
text
Object The text to be shown for this item. Non-string primitive arguments are converted to strings automatically.
value
Object The form input value that is sent via the callback. Non-string primitive arguments are converted to strings automatically.
selected
Boolean Whether the item is selected by default. If the selection input only accepts one value (such as for radio buttons or a dropdown menu), only set this field for one item.
startIconUri
Object For multiselect menus, the URL for the icon displayed next to the item's text field. Supports PNG and JPEG files.
bottomText
Object For multiselect menus, a text description or label that's displayed below the item's text field.

Return

SelectionInput — This object, for chaining.


setExternalDataSource(action)

Sets external data source, such as a relational data base.

const multiSelect = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.MULTI_SELECT)
    .setFieldName("contacts")
    .setTitle("Selected contacts")
    .addMultiSelectItem("Contact 3", "contact-3", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact three description")
    .setMultiSelectMaxSelectedItems(5)
    .setMultiSelectMinQueryLength(2)
    .setExternalDataSource(CardService.newAction().setFunctionName("getContacts"));

Parameters

Name Type Description
action
Action The external data source.

Return

SelectionInput — This object, for chaining.


setFieldName(fieldName)

Sets the key that identifies this selection input in the event object that is generated when there is a UI interaction. Not visible to the user. Required, must be unique.

Parameters

Name Type Description
fieldName
String The name to assign to this input.

Return

SelectionInput — This object, for chaining.


setMultiSelectMaxSelectedItems(maxSelectedItems)

Sets the maximum number of items that a user can select.

const multiSelect = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.MULTI_SELECT)
    .setFieldName("multiselect")
    .setTitle("A multi select input example.")
    .setMultiSelectMaxSelectedItems(3)
    .addMultiSelectItem("Contact 1", "contact-1", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact one description")
    .addMultiSelectItem("Contact 2", "contact-2", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact two description")
    .addMultiSelectItem("Contact 3", "contact-3", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact three description")
    .addMultiSelectItem("Contact 4", "contact-4", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact four description")
    .addMultiSelectItem("Contact 5", "contact-5", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact five description");

Parameters

Name Type Description
maxSelectedItems
Integer The maximum number of items.

Return

SelectionInput — This object, for chaining.


setMultiSelectMinQueryLength(queryLength)

Sets the number of text characters that a user inputs before the app queries autocomplete and displays suggested items on the card.

const multiSelect = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.MULTI_SELECT)
    .setFieldName("multiselect")
    .setTitle("A multi select input example.")
    .setMultiSelectMinQueryLength(1)
    .addMultiSelectItem("Contact 1", "contact-1", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact one description")
    .addMultiSelectItem("Contact 2", "contact-2", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact two description")
    .addMultiSelectItem("Contact 3", "contact-3", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact three description")
    .addMultiSelectItem("Contact 4", "contact-4", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact four description")
    .addMultiSelectItem("Contact 5", "contact-5", false,
       "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
       "Contact five description");

Parameters

Name Type Description
queryLength
Integer The number of text characters.

Return

SelectionInput — This object, for chaining.


setOnChangeAction(action)

Sets an Action to be performed whenever the selection input changes.

Parameters

Name Type Description
action
Action The action to take.

Return

SelectionInput — This object, for chaining.


setPlatformDataSource(platformDataSource)

Sets a data source from Google Workspace. Used to populate items in a multiselect menu.

const multiSelect = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.MULTI_SELECT)
    .setFieldName("contacts")
    .setTitle("Selected contacts")
    .setPlatformDataSource(
       CardService.newPlatformDataSource()
         .setCommonDataSource(CardService.CommonDataSource.USER));
Only available for Google Chat apps. Not available for Google Workspace Add-ons.

Parameters

Name Type Description
platformDataSource
PlatformDataSource The data source.

Return

SelectionInput — This object, for chaining.


setTitle(title)

Sets the title to be shown ahead of the input field.

Parameters

Name Type Description
title
String The input field title.

Return

SelectionInput — This object, for chaining.


setType(type)

Sets the type of this input. Defaults to CHECKBOX .

Parameters

Name Type Description
type
SelectionInputType The selection type.

Return

SelectionInput — This object, for chaining.