TRUE, ] + parent::defaultSettings(); } /** * {@inheritdoc} */ public function settingsForm(array $form, FormStateInterface $form_state) { $element['display_label'] = [ '#type' => 'checkbox', '#title' => t('Use field label instead of the "On" label as the label.'), '#default_value' => $this->getSetting('display_label'), '#weight' => -1, ]; return $element; } /** * {@inheritdoc} */ public function settingsSummary() { $summary = []; $display_label = $this->getSetting('display_label'); $summary[] = t('Use field label: @display_label', ['@display_label' => ($display_label ? t('Yes') : 'No')]); return $summary; } /** * {@inheritdoc} */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) { $element['value'] = $element + [ '#type' => 'checkbox', '#default_value' => !empty($items[0]->value), ]; // Override the title from the incoming $element. if ($this->getSetting('display_label')) { $element['value']['#title'] = $this->fieldDefinition->getLabel(); } else { $element['value']['#title'] = $this->fieldDefinition->getSetting('on_label'); } return $element; } }