CoreUI PRO for Angular v5.7.32 - Multi Select Option Groups and Autocomplete on Angular Aria
We are pleased to announce the release of CoreUI PRO for Angular v5.7.32. This release adds selectable option groups and a custom dropdown header to the Multi Select, rebuilds the Autocomplete on the Angular Aria combobox with a signal forms control and a virtual scroller, and aligns the library with Angular 22.2.1. The Autocomplete changes include behavior changes marked as possibly breaking - see the Migration Notes.
Speed up your responsive apps and websites with fully-featured, ready-to-use open-source admin panel templates—free to use and built for efficiency.
How to Update
To update to CoreUI PRO for Angular v5.7.32, run:
ng update @angular/core@22 @angular/cli@22 @coreui/coreui-pro@~5.27.0 @coreui/angular-pro@~5.7.32
- Please ensure that there are no error messages in the results.
- Download the latest PRO packages from CoreUI Downloads.
What’s New
Multi Select: Selectable Option Groups
optionsGroupsSelectable turns each projected group label into a toggle for the enabled options of its group that match the search. With optionsGroupsStyle="checkbox" (default) and multiple, the label is a role="checkbox" with a tri-state indicator and aria-checked (false / mixed / true), and the toggle respects selectionLimit.
Multi Select: Custom Dropdown Header
The dropdown header can be replaced with your own template. Its context carries the selection counts (selected, total, filtered, filteredSelected) as the implicit value and the selectAll, deselectAll, selectFiltered and deselectFiltered actions under actions:
<c-multi-select multiple>
<ng-template cTemplateId="multiSelectHeaderTemplate" let-state let-actions="actions">
<button type="button" (click)="actions.selectAll()">Select all ({{ state.selected }}/{{ state.total }})</button>
</ng-template>
...
</c-multi-select>
More Multi Select Improvements
hideSelectAllOnSearchNoResults(defaulttrue) hides the select all button when the search matches nothing; set it tofalseto keep the button visible.ariaSearchLabelnames the search input andariaTagDeleteLabelthe tag delete buttons.selectionLimitReachednow emits the limit.- New default texts:
searchNoResultsLabelisNo results found(wasno items),ariaCleanerLabelisClear all selections(wasClear selection), the tag delete button is namedRemove <label>(wasClear) and the search inputSearch options.
Multi Select Bug Fixes
- ArrowDown in the search input moves focus to the first enabled option when the caret is at the end of the text, except with Alt or during IME composition.
- The virtual scroll viewport fills the dropdown on the first open instead of leaving the scrollbar inside the menu until the width syncs.
- An option’s
disabledstate is tracked as a signal, so the group state and the option classes follow it after the first render. - In single selection, the header actions select the first option or clear the selection instead of throwing in the selection model.
cTemplateIdtemplates are picked up outside the virtual scroller too.- The delayed search reset is skipped once the component is destroyed, so it no longer logs
NG0953.
Autocomplete on the Angular Aria Combobox
The Autocomplete is rebuilt on the Angular Aria combobox: the input is an ngCombobox, the list an ngListbox with ngOption options. Focus stays in the input, and the highlighted option is announced through aria-activedescendant.
- Signal forms control:
valueis a model and the newtouchoutput marks the field touched.ngModelandformControlbind through the same path; the directive no longer providesNG_VALUE_ACCESSOR. - Virtual scroller:
virtualScrollerrenders the options in the CDK virtual scroll viewport, loaded in a deferred chunk, with the row height measured at runtime andaria-setsize/aria-posinseton the options. - Option groups: Groups render in
role="group"containers labelled by their group label; in the virtual list each option is described by the labels of its groups. - No results:
searchNoResultsLabelaccepts aTemplateRef, andtrueshows the defaultNo results found. - Change detection: The component uses
OnPushchange detection.
<input cAutocomplete [options]="options" [virtualScroller]="true" [(value)]="country" (touch)="onTouched()" />
Autocomplete Bug Fixes
- Selecting an option writes the option’s value (number or string) instead of its label, and
valueChangeemits that value. - Typing clears the selection at once; only the search waits for
delay, and keys pressed before it act on the new text. - Home/End go to the first/last option, PageUp/PageDown move by
visibleItems, and modified Home/End stay with the text field. - Tab commits the highlighted option and leaves the field instead of moving focus into the list.
Deprecations
- Autocomplete:
search: 'global'(and{ global: true }) is deprecated and has no effect - typing anywhere in the component always continues in the search input.
Internal Improvements
- Tests: Real timers are restored after the Autocomplete and Multi Select search specs, so leaked fake timers no longer hang the next spec file, and the Autocomplete spec hosts have their own selectors.
Dependency Updates
We have updated key dependencies to their latest compatible versions for CoreUI PRO for Angular v5.7.32:
Angular Core Updates
@angular/ariato:22.2.1@angular/cdkto:22.2.1@angular/commonto:22.2.1@angular/compilerto:22.2.1@angular/coreto:22.2.1@angular/formsto:22.2.1@angular/localizeto:22.2.1@angular/platform-browserto:22.2.1@angular/routerto:22.2.1
Angular Development Tools
@angular-devkit/schematicsto:22.2.1@angular/buildto:22.2.1@angular/clito:22.2.1@angular/compiler-clito:22.2.1@angular/language-serviceto:22.2.1ng-packagrto:22.2.4
Development Tools
@types/nodeto:26.6.3@vitest/coverage-v8to:5.0.3@vitest/uito:5.0.3typescript-eslintto:8.71.0vitestto:5.0.3
Migration Notes
The library changelog marks the Autocomplete changes as possibly breaking. After upgrading:
- Install updated dependencies.
- Run your test suite and verify the build.
- Autocomplete value: Selecting an option now writes its value instead of its label, and
valueChangeemits that value. If your code expected the label, look it up from your options by value. - Autocomplete keyboard: Tab now commits the highlighted option and leaves the field.
- Autocomplete forms:
ngModelandformControlbind through the signal forms control path, withoutNG_VALUE_ACCESSOR. Re-test forms that use the Autocomplete, and dropsearch: 'global', which no longer has any effect. - Multi Select texts: If your tests or translations match the old default texts (
no items,Clear selection,Clear), update them or setsearchNoResultsLabel,ariaCleanerLabelandariaTagDeleteLabelexplicitly.
For the latest package files and update access, visit CoreUI Downloads.



