drupal/core/themes/claro/js/autocomplete.js

40 lines
1.1 KiB
JavaScript

/**
* @file
* Claro's enhancement for autocomplete form element.
*/
(($, Drupal, once) => {
Drupal.behaviors.claroAutoCompete = {
attach(context) {
once('claroAutoComplete', 'input.form-autocomplete', context).forEach(
(value) => {
const $input = $(value);
const classRemove = ($autoCompleteElem) => {
$autoCompleteElem.removeClass('is-autocompleting');
$autoCompleteElem
.siblings('[data-drupal-selector="autocomplete-message"]')
.addClass('hidden');
};
$input.autocomplete({
search(event) {
const result = Drupal.autocomplete.options.search(event);
if (result) {
$(event.target).addClass('is-autocompleting');
$(event.target)
.siblings('[data-drupal-selector="autocomplete-message"]')
.removeClass('hidden');
}
return result;
},
response(event) {
classRemove($(event.target));
},
});
},
);
},
};
})(jQuery, Drupal, once);