You are here

public function WebformToggleTrait::form in Webform 8.5

Same name and namespace in other branches
  1. 6.x modules/webform_toggles/src/Plugin/WebformElement/WebformToggleTrait.php \Drupal\webform_toggles\Plugin\WebformElement\WebformToggleTrait::form()

File

modules/webform_toggles/src/Plugin/WebformElement/WebformToggleTrait.php, line 33

Class

WebformToggleTrait
Provides a 'toggle' trait.

Namespace

Drupal\webform_toggles\Plugin\WebformElement

Code

public function form(array $form, FormStateInterface $form_state) {
  $form = parent::form($form, $form_state);
  $form['toggle'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('toggle settings'),
  ];
  $form['toggle']['toggle_container'] = $this
    ->getFormInlineContainer();
  $form['toggle']['toggle_container']['toggle_theme'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Toggle theme'),
    '#options' => [
      'light' => $this
        ->t('Light'),
      'dark' => $this
        ->t('Dark'),
      'iphone' => $this
        ->t('iPhone'),
      'modern' => $this
        ->t('Modern'),
      'soft' => $this
        ->t('Soft'),
    ],
    '#required' => TRUE,
  ];
  $form['toggle']['toggle_container']['toggle_size'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Toggle size'),
    '#options' => [
      'small' => $this
        ->t('Small (@size)', [
        '@size' => '16px',
      ]),
      'medium' => $this
        ->t('Medium (@size)', [
        '@size' => '24px',
      ]),
      'large' => $this
        ->t('Large (@size)', [
        '@size' => '32px',
      ]),
    ],
    '#required' => TRUE,
  ];
  $form['toggle']['toggle_text_container'] = $this
    ->getFormInlineContainer();
  $form['toggle']['toggle_text_container']['on_text'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Toggle on text'),
  ];
  $form['toggle']['toggle_text_container']['off_text'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Toggle off text'),
  ];
  return $form;
}