unstale

npm / @ng-select/ng-select

@ng-select/ng-select

What changed in @ng-select/ng-select 4 to 24, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-24.

21 breaking1 security8 new APIs and options1 performance3 behavior and defaults45 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@ng-select/ng-select 2417 changes

Breaking changes 6

  • Angular CDK ^22.0.0 is now required because the dropdown panel renders in CDK Overlay.

    24.0.0release notes

  • appendTo controls DOM containment only; positioning remains viewport-based.

    24.0.0release notes

  • The panel renders in CDK Overlay rather than as a child of ng-select, changing its DOM location and CSS scoping.

    24.0.0release notes

  • Escape is consumed only when it closes an open dropdown, allowing parent dialogs to handle it when the select is closed.

    24.0.0release notes

  • popover is deprecated and becomes a no-op because the top layer is automatic.

    24.0.0release notes

  • The typeahead output emits only when typing; selecting, closing, or clearing no longer emits. Use close or clear for those actions.

    24.0.0release notes

Security 1

  • Default labels are rendered as text to prevent XSS.

    24.0.1release notes

New APIs and options 2

Fixes and other changes 8

  • Keeps the virtual scroll offset in sync with rendered rows.

    24.2.1release notes

  • Selection state is initialized for async options.

    24.1.4release notes

  • Fixes issues with signal forms.

    24.1.1release notes

  • Overlay behavior is enhanced for dynamic host elements.

    24.0.3release notes

  • Fixed the placeholder configuration.

    24.0.2release notes

  • Selected value text can be selected and copied when searchable is false without toggling the panel.

    24.0.0release notes

  • unselect now does nothing when the select or item is disabled.

    24.0.0release notes

  • Virtual scroll measures option height with offsetHeight so borders are included, and handles separate group and option heights.

    24.0.0release notes

@ng-select/ng-select 2320 changes

Breaking changes 3

  • Disabled selects and disabled items can no longer be removed via × or clearItem.

    23.10.0release notes

  • Migrates the project’s test runner from Karma to Vitest.

    23.2.0release notes

  • Adds Angular 22 support and raises the minimum required Angular version to 22.

    23.0.0release notes

New APIs and options 2

  • Adds support for zoneless change detection.

    23.5.0release notes

  • The ng-option component now supports custom classes.

    23.1.0release notes

Behavior and default changes 2

  • The dropdown panel is rendered in CDK Overlay.

    23.7.0release notes

  • Accessibility and interaction for selected items in ng-select were enhanced.

    23.3.0release notes

Fixes and other changes 13

  • Virtual scroll measures option height with offsetHeight, including borders.

    23.10.0release notes

  • preventDefault is skipped during Angular event replay for SSR/hydration.

    23.10.0release notes

  • Selected labels can be copied or selected when searchable is false.

    23.10.0release notes

  • The highlight directive matches all words in multi-word search queries.

    23.5.1release notes

  • Active-option announcements are fixed.

    23.4.0release notes

  • Grouped scroll targeting is fixed.

    23.4.0release notes

  • The blur commit behavior for selectOnTab is fixed.

    23.4.0release notes

  • Prevents the dropdown from closing when the click target shifts after mousedown, including in shadow DOM.

    23.2.4release notes

  • Adds a notched outline appearance to the ng-select component.

    23.2.3release notes

  • The dropdown id is assigned to the listbox element, and its ARIA attributes are corrected.

    23.2.2release notes

  • Group header elements in ng-select no longer have the ng-option class.

    23.2.1release notes

  • NgDropdownPanelComponent and NgSelectComponent now handle an undefined outsideClickEvent.

    23.0.3release notes

  • Corrected Angular peer dependency versions to match the supported Angular version.

    23.0.1release notes

@ng-select/ng-select 2116 changes

Breaking changes 1

  • The NgSelectComponent isOpen property type now enforces boolean only.

    21.1.5release notes

New APIs and options 3

Performance 1

  • Scroll handling was optimized in NgDropdownPanelComponent.

    21.1.4release notes

Behavior and default changes 1

  • A disabled option that is currently selected can now be cleared.

    21.4.0release notes

Fixes and other changes 10

  • Fixes a regression introduced in v20.1.2; the affected behavior is not specified in the notes.

    21.8.2release notes

  • The dropdown closes immediately when the user clicks outside it.

    21.8.1release notes

  • Input signals are writable, restoring programmatic configurability.

    21.8.0release notes

  • Handles undefined values in the items list and during ng-option initialization.

    21.5.2release notes

  • Enhances dropdown behavior with window scroll handling.

    21.4.1release notes

  • Disabled items are no longer marked on key press, correcting accessibility behavior.

    21.3.1release notes

  • Clear button template rendering was reordered.

    21.1.6release notes

  • isOpen now accepts undefined.

    21.1.2release notesrelease notes

  • Fixes an issue with ng-option-highlight.

    21.1.1release notes

  • Adds support for Angular 21.0.0.

    21.0.0release notes

@ng-select/ng-select 2012 changes

Breaking changes 2

  • The project migrated from Yarn to pnpm for package management.

    20.7.0release notes

  • The items input type in NgSelectComponent is now readonly.

    20.3.3release notes

New APIs and options 1

  • Adds outside click event configuration to the ng-select component.

    20.5.0release notes

Fixes and other changes 9

  • Supports null as a valid value in ng-select.

    20.6.3release notes

  • Fixes dropdown panel height when using addTag and virtual scroll.

    20.6.2release notes

  • Fixes the inability to access SearchInput.

    20.6.1release notes

  • Fixes scroll behavior when ng-select is used in shadow DOM.

    20.4.4release notes

  • Items are updated only when findItem succeeds, avoiding updates when no matching item is found.

    20.4.3release notes

  • Fixed an ng-option race condition.

    20.4.2release notes

  • Fixes an accessibility issue where a signal was not being called in the template.

    20.3.5release notes

  • A touchstart event is no longer considered an outside click.

    20.3.4release notes

  • Fixes converting items as an input signal.

    20.3.2release notes

@ng-select/ng-select 151 changes

Breaking changes 1

  • Angular 20 is now the minimum required Angular version.

    15.0.0release notes

@ng-select/ng-select 142 changes

Breaking changes 1

  • Angular 19.0.0 is now the minimum required Angular version.

    14.0.0release notes

Fixes and other changes 1

@ng-select/ng-select 131 changes

Breaking changes 1

@ng-select/ng-select 121 changes

Fixes and other changes 1

@ng-select/ng-select 112 changes

Fixes and other changes 2

@ng-select/ng-select 101 changes

Fixes and other changes 1

  • Adds support for Angular 15, affecting which Angular versions developers can use with the package.

    10.0.0release notes

@ng-select/ng-select 91 changes

Breaking changes 1

  • Updates the package to Angular 14, changing the Angular version it supports.

    9.0.0release notes

@ng-select/ng-select 81 changes

Breaking changes 1

  • Updated to Angular 13, a breaking change for projects using this release.

    8.0.0release notes

@ng-select/ng-select 71 changes

Breaking changes 1

@ng-select/ng-select 61 changes

Breaking changes 1

  • The release updates ng-select to Angular 11, so developers need to account for the Angular 11 compatibility change.

    6.0.0release notes

@ng-select/ng-select 51 changes

Breaking changes 1

  • Angular 10 is the minimum dependency requirement.

    5.0.0release notes

@ng-select/ng-select 41 changes

Breaking changes 1

  • Updated to Angular 9, affecting the framework version used with ng-select.

    4.0.0release notes