diff --git a/src/Plugin/Field/FieldType/ColorFieldType.php b/src/Plugin/Field/FieldType/ColorFieldType.php index 0d4af25..e24684b 100644 --- a/src/Plugin/Field/FieldType/ColorFieldType.php +++ b/src/Plugin/Field/FieldType/ColorFieldType.php @@ -223,33 +223,34 @@ class ColorFieldType extends FieldItemBase { if ($format = $this->getSetting('format')) { $color = $this->color; - - // Clean up data and format it. - $color = trim($color); - - if (substr($color, 0, 1) === '#') { - $color = substr($color, 1); + if ($color) { + // Clean up data and format it. + $color = trim($color); + + if (substr($color, 0, 1) === '#') { + $color = substr($color, 1); + } + + switch ($format) { + case '#HEXHEX': + $color = '#' . strtoupper($color); + break; + + case 'HEXHEX': + $color = strtoupper($color); + break; + + case '#hexhex': + $color = '#' . strtolower($color); + break; + + case 'hexhex': + $color = strtolower($color); + break; } - switch ($format) { - case '#HEXHEX': - $color = '#' . strtoupper($color); - break; - - case 'HEXHEX': - $color = strtoupper($color); - break; - - case '#hexhex': - $color = '#' . strtolower($color); - break; - - case 'hexhex': - $color = strtolower($color); - break; + $this->color = $color; } - - $this->color = $color; } if (!$this->getSetting('opacity')) { diff --git a/src/Plugin/Field/FieldWidget/ColorFieldWidgetBox.php b/src/Plugin/Field/FieldWidget/ColorFieldWidgetBox.php index 8263e29..a7d740b 100644 --- a/src/Plugin/Field/FieldWidget/ColorFieldWidgetBox.php +++ b/src/Plugin/Field/FieldWidget/ColorFieldWidgetBox.php @@ -103,7 +103,19 @@ class ColorFieldWidgetBox extends ColorFieldWidgetBase { $element = parent::formElement($items, $delta, $element, $form, $form_state); // Ensure the default value is the required format. if ($element['color']['#default_value']) { - $element['color']['#default_value'] = strtoupper($element['color']['#default_value']); + $format = $this->fieldDefinition->getFieldStorageDefinition()->getSetting('format'); + $default_value = $element['color']['#default_value']; + switch ($format) { + case '#HEXHEX': + case 'HEXHEX': + $default_value = strtoupper($default_value); + break; + case '#hexhex': + case 'hexhex': + $default_value = strtolower($default_value); + break; + } + $element['color']['#default_value'] = $default_value; if (strlen($element['color']['#default_value']) === 6) { $element['color']['#default_value'] = '#' . $element['color']['#default_value']; }