fixed home duplicate, patched autocomplete deluxe for placeholder message
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
diff --git a/assets/css/autocomplete_deluxe.gin.css b/assets/css/autocomplete_deluxe.gin.css
|
||||
--- a/assets/css/autocomplete_deluxe.gin.css
|
||||
+++ b/assets/css/autocomplete_deluxe.gin.css
|
||||
@@ -41,3 +41,18 @@
|
||||
.autocomplete-deluxe-item .autocomplete-deluxe-item-delete:hover {
|
||||
background: var(--gin-color-button-text);
|
||||
}
|
||||
+
|
||||
+/* Faux placeholder: show no_empty_message when no items selected. */
|
||||
+div.autocomplete-deluxe-container.autocomplete-deluxe-multiple:not(:has(.autocomplete-deluxe-item))::before {
|
||||
+ content: attr(data-placeholder);
|
||||
+ display: block;
|
||||
+ color: var(--gin-color-text-disabled, #999);
|
||||
+ pointer-events: none;
|
||||
+ font-size: 0.875rem;
|
||||
+ line-height: 1.3;
|
||||
+ white-space: normal;
|
||||
+ word-wrap: break-word;
|
||||
+ padding: 0.68rem 2.5rem 0.68rem 0.93rem;
|
||||
+ min-height: 3rem;
|
||||
+ box-sizing: border-box;
|
||||
+}
|
||||
diff --git a/src/Element/AutocompleteDeluxeElement.php b/src/Element/AutocompleteDeluxeElement.php
|
||||
--- a/src/Element/AutocompleteDeluxeElement.php
|
||||
+++ b/src/Element/AutocompleteDeluxeElement.php
|
||||
@@ -41,6 +41,7 @@
|
||||
],
|
||||
];
|
||||
$info['#process'][] = [$class, 'processElement'];
|
||||
+ $info['#theme_wrappers'] = ['form_element'];
|
||||
|
||||
return $info;
|
||||
}
|
||||
@@ -77,19 +78,12 @@
|
||||
|
||||
$element['#after_build'][] = [get_called_class(), 'afterBuild'];
|
||||
|
||||
- // Add label_display and label variables to template.
|
||||
- $element['label'] = ['#theme' => 'form_element_label'];
|
||||
- $element['label'] += array_intersect_key(
|
||||
- $element,
|
||||
- array_flip(
|
||||
- [
|
||||
- '#id',
|
||||
- '#required',
|
||||
- '#title',
|
||||
- '#title_display',
|
||||
- ]
|
||||
- )
|
||||
- );
|
||||
+ // Clear #description so the form_element wrapper does not render it
|
||||
+ // (which would trigger Gin's help-icon toggle).
|
||||
+ $element['#description'] = '';
|
||||
+ $element['#description_display'] = 'after';
|
||||
+
|
||||
+ $no_empty_message = $element['#no_empty_message'] ?? '';
|
||||
|
||||
$element['textfield'] = [
|
||||
'#disabled' => $element_disabled,
|
||||
@@ -100,12 +94,11 @@
|
||||
'aria-label' => $element['#title'] ?? '',
|
||||
],
|
||||
'#default_value' => '',
|
||||
- '#description' => $element['#description'] ?? '',
|
||||
];
|
||||
|
||||
// Add autocomplete deluxe container and class only if element is enabled.
|
||||
if (!$element_disabled) {
|
||||
- $element['textfield']['#prefix'] = '<div class="autocomplete-deluxe-container">';
|
||||
+ $element['textfield']['#prefix'] = \Drupal\Core\Render\Markup::create('<div class="autocomplete-deluxe-container"' . (!empty($no_empty_message) ? ' data-placeholder="' . str_replace('"', '"', $no_empty_message) . '"' : '') . '>');
|
||||
$element['textfield']['#suffix'] = '</div>';
|
||||
$element['textfield']['#attributes']['class'][] = 'autocomplete-deluxe-form';
|
||||
}
|
||||
@@ -144,7 +137,6 @@
|
||||
'#default_value' => $default_value,
|
||||
'#prefix' => '<div class="autocomplete-deluxe-value-container">',
|
||||
'#suffix' => '</div>',
|
||||
- '#description' => $element['#description'] ?? '',
|
||||
];
|
||||
$element['textfield']['#attributes']['style'] = ['display: none'];
|
||||
|
||||
Reference in New Issue
Block a user