diff --git a/src/bundle/Resources/public/js/scripts/core/dropdown.js b/src/bundle/Resources/public/js/scripts/core/dropdown.js index 91f546a585..665c9d9378 100644 --- a/src/bundle/Resources/public/js/scripts/core/dropdown.js +++ b/src/bundle/Resources/public/js/scripts/core/dropdown.js @@ -276,6 +276,7 @@ filterItems(event) { const forceShowItems = event.currentTarget.value.length < MINIMUM_LETTERS_TO_FILTER; const allItems = [...this.itemsListContainer.querySelectorAll('[data-filter-value]')]; + const groups = [...this.itemsListContainer.querySelectorAll('.ibexa-dropdown__item-group')]; const separator = this.itemsListContainer.querySelector('.ibexa-dropdown__separator'); let hideSeparator = true; @@ -294,6 +295,12 @@ item.classList.toggle('ibexa-dropdown__item--hidden', !isItemVisible); }); + groups.forEach((group) => { + const areAllItemsHidden = !group.querySelectorAll('.ibexa-dropdown__item:not(.ibexa-dropdown__item--hidden)').length; + + group.classList.toggle('ibexa-dropdown__item-group--hidden', areAllItemsHidden); + }); + if (separator && !hideSeparator) { separator.removeAttribute('hidden'); } diff --git a/src/bundle/Resources/public/scss/_dropdown.scss b/src/bundle/Resources/public/scss/_dropdown.scss index e640ad3092..f094748d9f 100644 --- a/src/bundle/Resources/public/scss/_dropdown.scss +++ b/src/bundle/Resources/public/scss/_dropdown.scss @@ -251,6 +251,12 @@ } } + &__item-group { + &--hidden { + display: none; + } + } + &__item-group-label { font-weight: bold; }