5 use Drupal\Core\Field\FieldItemListInterface;
6 use Drupal\Core\Field\WidgetBase;
7 use Drupal\Core\Form\FormStateInterface;
29 public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
30 $value = isset($items[$delta]->value) ? $items[$delta]->value :
'';
34 '#type' =>
'textfield',
35 '#default_value' => $value,
38 '#element_validate' => [
42 return [
'value' => $element];
48 public function validate($element, FormStateInterface $form_state) {
49 $value = $element[
'#value'];
52 if (strlen($value) == 0) {
53 $form_state->setValueForElement($element,
'');
56 if (!preg_match(
'/^#([a-f0-9]{6})$/iD', strtolower($value))) {
57 $form_state->setError($element, $this->t(
"Color must be a 6-digit hexadecimal value, suitable for CSS."));