public static function ScssColor::valueCallback in SCSS Compiler 1.0.x
Determines how user input is mapped to an element's #value property.
Parameters
array $element: An associative array containing the properties of the element.
mixed $input: The incoming input to populate the form element. If this is FALSE, the element's default value should be returned.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
mixed The value to assign to the element.
Overrides FormElement::valueCallback
File
- src/
Element/ ScssColor.php, line 142
Class
- ScssColor
- A form element to represent null-able Sass colors.
Namespace
Drupal\compiler_scss\ElementCode
public static function valueCallback(&$element, $input, FormStateInterface $form_state) {
// Populate the element with a default value if none already exists.
$element += [
'#default_value' => '',
];
if ($element['#default_value'] instanceof IntermediateColor) {
$element['#default_value'] = $element['#default_value']
->toHex();
}
// Check if the element's default value should be used in lieu of an input.
if ($input === FALSE) {
// Replace the input with the element's default value if FALSE.
$input = $element['#default_value'];
$input = [
'enable' => is_string($input) && !empty($input),
'value' => is_string($input) ? $input : '',
];
}
// Only attempt to process the input (or default value) if it's an array.
if (is_array($input) && array_key_exists('value', $input)) {
if (!$element['#required']) {
$enable = $input['enable'] ?? FALSE;
// Only return a color value if this element is enabled.
return $enable ? $input['value'] : '';
}
else {
// Always return a value if the field is required.
return $input['value'];
}
}
return '';
}