Skip to content

Releases: valor-software/ngx-bootstrap

v21.2.1

Choose a tag to compare

@lexasq lexasq released this 26 Jun 12:04
404c3b2

Bug Fixes
component-loader: Fixed a visual flash where popover content briefly appeared at the trigger element's location before being positioned correctly. This affected popovers using popoverContext in zoneless mode. (#6817)
typeahead: Fixed several accessibility issues (#6791):
Changed the container role from listbox to combobox for correct ARIA semantics
Switched from aria-owns to aria-controls per ARIA spec
Fixed activeChangeEvent not firing when the active item changed via keyboard navigation; it now consistently emits (emitting an empty string instead of undefined when cleared)
Refactoring / Internals
component-loader: Replaced the deprecated ComponentFactoryResolver API (removed in Angular 17+) with the modern createComponent() + EnvironmentInjector API. Affects dynamic overlay rendering for Modal, Tooltip, Popover, Typeahead, Dropdown, and Datepicker. (#6813)
animations: Removed the @angular/animations peer dependency. Collapse, Dropdown, Datepicker, and Typeahead now use pure CSS transitions with a shared animateExpand / onTransitionFinished utility (exported from ngx-bootstrap/utils). This reduces bundle size and removes the requirement to import BrowserAnimationsModule. Existing consumers do not need any code changes. (#6812)

v21.2.0

Choose a tag to compare

@lexasq lexasq released this 20 Apr 09:37
f249240

BREAKING CHANGES

  • zoneless: Completed migration to Angular's zoneless change detection. zone.js is no longer required and has been removed from dependencies.
  • zoneless: All components now use ChangeDetectionStrategy.OnPush. Applications must use provideZonelessChangeDetection() in their bootstrap configuration.
  • inputs: All @Input() decorators have been replaced with the input() signal function API. Programmatic access to component inputs now requires signal read syntax (e.g., component.myInput() instead of component.myInput).
  • outputs: All @Output() decorators have been replaced with the output() function API. Output emissions continue to use .emit().
  • services: Removed NgZone dependency from carousel, component-loader, positioning service, and focus-trap. Replaced NgZone.onStable with afterRenderEffect().
  • modules: Removed deprecated forRoot() static method from all 17 module classes (AccordionModule, AlertModule, ButtonsModule, CarouselModule, CollapseModule, BsDatepickerModule, BsDropdownModule, FocusTrapModule, PaginationModule, PopoverModule, ProgressbarModule, RatingModule, SortableModule, TabsModule, TimepickerModule, TooltipModule, TypeaheadModule). These methods were no-ops returning empty providers and were deprecated since v18. Simply use the module directly in imports (e.g., TooltipModule instead of TooltipModule.forRoot()).
  • schematics: ng add schematics now generate module imports without .forRoot().

Features

  • core: Migrated to Angular 21.2.x
  • core: Migrated 230+ @Input() decorators to input() across 35 files
  • core: Migrated 70+ @Output() decorators to output() across 24 files
  • core: All 17 component groups updated for zoneless operation
  • core: Added postinstall warning script for breaking change notifications on npm install

Migration Guide

To upgrade from previous versions:

  1. Update Angular to ^21.2.0
  2. Remove zone.js from your polyfills and dependencies
  3. Add provideZonelessChangeDetection() to your app bootstrap providers
  4. Update any programmatic input access from component.prop to component.prop() (signal read)
  5. See ZONELESS_MIGRATION_PLAN.md for the full migration guide

v21.0.1

Choose a tag to compare

@lexasq lexasq released this 04 Feb 11:30
2b60ddd

fixed type exports

v21.0.0

Choose a tag to compare

@lexasq lexasq released this 03 Feb 09:19
172ef1b

Angular21 support

v20.0.2

Choose a tag to compare

@lexasq lexasq released this 10 Sep 09:07

Fixed #6773 and #6774 date-range picker adaptive positions
Fixed typeahead highlighting #6760

v20.0.1

Choose a tag to compare

@lexasq lexasq released this 20 Aug 12:11
e89ca9e

Fixed tabset setActive (#6767 )

v20.0.0

Choose a tag to compare

@lexasq lexasq released this 29 Jul 19:18
0be2799

Angular 20 support

v19.0.2

Choose a tag to compare

@lexasq lexasq released this 06 Jan 12:50
eaccf82

Fixed adaptive datepicker position

v19.0.1

Choose a tag to compare

@lexasq lexasq released this 11 Dec 14:22
c31c3ca

Fixed peer deps

v19.0.0

Choose a tag to compare

@lexasq lexasq released this 10 Dec 15:27
6fbbed3
  • Updated to angular 19 support
  • Fixed sortable drag and drop issue #6701