Skip to content

Latest commit

 

History

History
1779 lines (1050 loc) · 142 KB

CHANGELOG.md

File metadata and controls

1779 lines (1050 loc) · 142 KB

4.2.2 (2019-09-03)

Bug Fixes

  • tabset: remove aria-expanded and use aria-selected instead (d67bea2), closes #3292

5.1.1 (2019-09-03)

This is an internal release with no user-facing updates/fixes.

5.1.0 (2019-07-17)

Features

  • carousel: stay paused after calling pause() until cycle() is called (#3225) (2602154), closes #3188

    In order for the user to also have more control, we also introduce 2 new properties on NgbSlideEvent:

    • The "source" property allowing to know what triggered the event: "timer", "arrowLeft", "arrowRight" or "indicator".
    • The "paused" boolean status.

Bug Fixes

  • datepicker: ease the styling of datepicker (#3248) (dd86266), closes #3244
  • datepicker: NgbCalendarIslamicUmalqura.fromGregorian with date in the afternoon (#3256) (cc29290), closes #3237
  • demo: direct link to specific carousel sample not working (#3272) (a6d73d6)
  • dropdown: allow template directive on the menu (#3263) (8f73899)
  • dropdown: remove x-placement when display is static (#3270) (c6ad5b7)
  • modal: cmpt based content was not scrollable (#3286) (ffbb4fd), closes #3281
  • popover: apply arrow styles to direct descendant (#3288) (0b3ad65)
  • stackblitz: fixed version for prismjs (#3282) (db72c7a)
  • tabset: remove aria-expanded and use aria-selected instead (#3292) (5b6cc69)
  • toast: proper handling of autohide toggling (#3283) (ffcdad4), closes #3280

5.0.0 (2019-07-09)

This major release is compatible with Angular ^8.0.0. We would like to emphasis that it is not yet fully compatible with Ivy renderer.

BREAKING CHANGES

  • for ng-bootstrap 5.0.0 minimal required version of Angular is 8.0.0, and minimal required version of Bootstrap is 4.3.1.

5.0.0-rc.1 (2019-06-28)

This release requires Angular version ^8.0.0, Bootstrap ^4.3.1 and is not yet Ivy compatible.

Bug Fixes

Features

  • timepicker: use Angular locale data for AM and PM (#2830) (3ce8a4c)

5.0.0-rc.0 (2019-06-24)

This release requires Angular version ^8.0.0, Bootstrap ^4.3.1 and is not yet Ivy compatible.

Bug Fixes

  • all widgets: specify 'static' for ViewChild and ContentChild queries (b3010ab)
  • demo: missing Object.values() polyfill for IE. (#3249) (0eff381)
  • toast: adds static: true for Angular 8 query compatibility (#3250) (e682ee3)

Code Refactoring

Features

BREAKING CHANGES

  • for ng-bootstrap 5.0.0-rc.0 minimal required version of Angular is 8.0.0, and minimal required version of Bootstrap is 4.3.1.
  • Importing any ng-bootstrap module via .forRoot() has now been completely removed. The only supported way is the one documented in the getting started page.
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';

@NgModule({
  ...
  imports: [NgbModule, ...],
  ...
})
export class YourAppModule {
}

4.2.1 (2019-06-03)

Reverts

  • datepicker: expose validators minDate, maxDate, invalidDate (#3126) (509bba3), closes #3215

4.2.0 (2019-05-29)

Bug Fixes

  • positioning: put the popup in a separate layer (#3206) (2bbaaee)

Features

  • datepicker: add 'closed' event fired after datepicker window was closed (#3055) (e31895e)
  • datepicker: add new 'positionTarget' input (#3119) (42cef4f)
  • datepicker: expose validators minDate, maxDate, invalidDate (#3126) (509bba3)
  • dropdown: new 'display' input and navbar management (#3098) (a07dbff), closes #3030
  • highlight: highlight array of terms instead of just one term (#3154) (ec8a129), closes #2698

4.1.3 (2019-05-13)

Bug Fixes

  • alert: project content before the closing button (#3176) (3e1dba9), closes #3171
  • datepicker: 'startDate' change was preventing arrow navigation (#3179) (8bb6ddd), closes #3178
  • datepicker: don't change month content if navigation is prevented (#3173) (c41da80)
  • dropdown: close dropdown menu on Enter / Space (#3180) (5163d03), closes #3142
  • dropdown: close dropdown only on dropdown elements click (fa8e45f), closes #3063 #3143
  • timepicker: fix tab navigation & handling keyboard arrows (#2053) (7efa35c), closes #1836

4.1.2 (2019-04-30)

Bug Fixes

  • datepicker: access view child from ngAfterViewInit (#3152) (0e54eef), closes #3150
  • datepicker: export NgbDatepickerNavigateEvent correctly (#3161) (e287a74), closes #3160
  • datepicker: z-index set when appended to body (00ee594), closes #3133
  • dropdown: don't fail on keypress if there are no ngbDropdownItems (b4b0222), closes #3117
  • dropdown: z-index set when appended to body (#3157) (ec73fc2)
  • popover: open popover correctly from lifecycle hooks (b3f8010)
  • tooltip: open tooltip correctly from lifecycle hooks (80beb3a), closes #3130

4.1.1 (2019-04-01)

Bug Fixes

4.1.0 (2019-03-05)

Features

  • accordion: allow any content in the accordion card header (8ea4d81), closes #717
  • datepicker: make 'navigate' event cancellable (#3044) (dce63ef), closes #2913
  • datepicker: mark today's date with a custom class (#2940) (6029304), closes #1470
  • dropdown: add keyboard navigation support (#2683) (6608487)
  • dropdown: allow attaching to body (#2823) (3f65ac8), closes #1012
  • pagination: allow customizing pagination links (a889d09), closes #899
  • popover: add openDelay and closeDelay (4975529)
  • positioning: accept placement values with a space separated string (#3034) (28ce374)
  • positioning: position tooltip and popover automatically (#3019) (aeb39aa)
  • timepicker: use arrow keys to increment/decrement values (#2912) (6ca79a5), closes #459
  • tooltip: add openDelay and closeDelay (1b8abae), closes #1052
  • tooltip: trigger with "focus" by default to enhance a11y (#3028) (be84733), closes #3022

4.0.5 (2019-03-05)

Bug Fixes

  • positioning: wrong placement class applies in some cases (#3042) (5fdc3fa), closes #3040

4.0.4 (2019-02-21)

Bug Fixes

4.0.3 (2019-02-12)

Bug Fixes

4.0.2 (2019-01-28)

Bug Fixes

  • accordion: remove 'h5' from the card header (88af5c8), closes #2915
  • autoclose: use mouseup asynchronously instead of click (0c91b05), closes #2711
  • autoclose: using each dropdown component inside OnPush component (1b7614c)
  • datepicker: fix 'outsideDays' clicks for multiple months (c37a803), closes #2879
  • datepicker: update model correctly with updateOn: 'blur' (#2982) (eddf188), closes #2976
  • modal: add missing 'aria-modal' and 'aria-hidden' attributes (eee0afb), closes #2575 #2965
  • timepicker: handle setting hour/minute/second step to 'undefined' (34baece), closes #2851 #2903
  • timepicker: use ViewEncapsulation.None forgotten in 4.0.0 (1d01940), closes #2932

4.0.1 (2018-12-17)

Bug Fixes

  • carousel: do change detection when slides change (a944d5d), closes #2908 #2900
  • datepicker: focus handling performance regression (1d9a84e)
  • datepicker: visual focus on arrows for ie (#2818) (b20355e)
  • focustrap: discarding tabindex='-1' when finding element (#2888) (db7347b), closes #2884
  • rating: don't hijack Tab key navigation (4b05da1), closes #2473 #2895
  • typeahead: input value properly reset when hint/ngModel are used together (8d5397c), closes #2816 #2850
  • typeahead: prevent dropdown to be reopened after an item selection (e0fe9f5), closes #2854 #2869

4.0.0 (2018-10-26)

This release is fully compatible with Angular ^7.0.0. All widgets have view encapsulation set to NONE now and this should help with custom themes / CSS overrides.

Bug Fixes

  • datepicker: display correct Hebrew numerals for numbers 11-19 (5a5c6da)
  • datepicker: focus correct day when opening popup (838693a), closes #2136 #2796
  • datepicker: use longer weekday format in Hebrew (107ea44)

Features

  • datepicker: add Gregorian conversion methods to Hebrew calendar (565cfda)
  • switch viewEncapsulation to NONE for all widgets (a25d5d2), closes #1875 #2564 #2784

3.3.1 (2018-10-19)

Bug Fixes

3.3.0 (2018-10-05)

Bug Fixes

Features

3.2.2 (2018-09-21)

Bug Fixes

  • datepicker: fix 'util' import and use 'isInteger' (#2738) (e3fa911)
  • datepicker: avoid updating the model twice (on input and on change) (b44c6d7), closes #2642 #2684
  • datepicker: convert years 0-99 correctly with native adapters (#2732) (8ed7ce5), closes #2731
  • datepicker: don't close on Escape if autoClose is false (83b49c2), closes #2704 #2713
  • datepicker: mark year 0 as invalid in Gregorian calendar (#2733) (dd788a0), closes #2721
  • datepicker: no longer trigger onChange when the value is equivalent (f8977be), closes #2668
  • popover: unregister event listener functions only if present (#2699) (5dd4e1e), closes #2688
  • timepicker: match chevron width and height (2d6a586), closes #2663 #2674

3.2.1 (2018-09-21)

WARNING! The 3.2.1 release is broken (incorrect import of the util package) and should not be used. Please use 3.2.2 instead.

Bug Fixes

  • datepicker: avoid updating the model twice (on input and on change) (b44c6d7), closes #2642 #2684
  • datepicker: convert years 0-99 correctly with native adapters (#2732) (8ed7ce5), closes #2731
  • datepicker: don't close on Escape if autoClose is false (83b49c2), closes #2704 #2713
  • datepicker: mark year 0 as invalid in Gregorian calendar (#2733) (dd788a0), closes #2721
  • datepicker: no longer trigger onChange when the value is equivalent (f8977be), closes #2668
  • popover: unregister event listener functions only if present (#2699) (5dd4e1e), closes #2688
  • timepicker: match chevron width and height (2d6a586), closes #2663 #2674

3.2.0 (2018-08-30)

Bug Fixes

Features

  • datepicker: add aria-labels and titles for navigation select elements (dcdb5fc), closes #2636 #2543
  • datepicker: add hebrew i18n (2d68122), closes #2606
  • datepicker: Hebrew calendar support (8404994)
  • datepicker: Add NgbDateNativeUTCAdapter (f847791), closes #2631 #2659
  • modal: add implicit context for template based modals (6e4f9e7), closes #2669
  • modal: add support for stacked modals (2409572), closes #2640 #643
  • tooltip: ability to add custom CSS classes to tooltip window (709d6b6), closes #2625 #1349

3.1.0 (2018-08-24)

Bug Fixes

  • timepicker: avoid unnecessary CSS class mutation in the DOM (47e91ba), closes #2582 #2617
  • provide overrideable services at the root level (#2627) (88e5e98), closes #2618

Features

3.0.0 (2018-08-13)

ng-bootstrap 3.0.0 requires Angular version ^6.1.0 and is delivered in Angular Package Format (APF) v6.0 (https://goo.gl/jB3GVv) using @angular/cli 6.

Bug Fixes

  • accordion: correct "collapsed" CSS class usage (25b5bee), closes #2553 #2555
  • accordion: the markup should follow the bootstrap one (8ddc363), closes #2511
  • carousel: make it work inside the 'OnPush' components (827dfcb), closes #2597 #2599
  • datepicker: correctly override year numerals for multiple months (#2596) (bc540e9)
  • demo: missing / in bootstrap href link (42b1470), closes #2584 #2586
  • dropdown: close dropdown correctly inside the OnPush component (a2dea82), closes #2561 #2559
  • dropdown: remove global document click listener (d80204c), closes #900 #2518
  • modal: adjust modal background to avoid shifting (2871316), closes #641 #2508
  • modal: use correct ComponentFactoryResolver (8d72f37), closes #2588
  • typeahead: don't fail when user returns falsy results (de613ae), closes #2530 #2550

Chores

  • bump minimal required version of Angular to 6.1 (335598c), closes #2548

Code Refactoring

Features

BREAKING CHANGES

  • for ng-bootstrap 3.0.0 minimal required version of Angular is 6.1.0
  • The library is now delivered in Angular Package Format (APF) v6.0 (https://goo.gl/jB3GVv) using @angular/cli 6.

One notable change is that delivered UMD bundle is now located in 'bundles/ng-bootstrap.umd.js' instead of 'bundles/ng-bootstrap.js'.

Also ES5 code is now delivered as a flat version by default, so 'module' in the 'package.json' is now pointing to 'fesm5/ng-bootstrap.js' and not 'index.js'. You can still find all the ES5 code in the 'esm5' folder if necessary.

Please examine the contents of the delivered package, if you have a custom build configuration.

  • alert: markup generated by <ngb-alert> was simplified, there is no more intermediate <div> element

Before:

<ngb-alert>
  <div role="alert" class="alert alert-warning">
    Hello there
  </div>
</ngb-alert>

After:

<ngb-alert role="alert" class="alert alert-warning">
  Hello there
</ngb-alert>

2.2.2 (2018-08-03)

Bug Fixes

  • dropdown: close dropdown correctly inside the OnPush component (75060ca), closes #2561 #2559

2.2.1 (2018-07-27)

Bug Fixes

3.0.0-beta.1 (2018-07-06)

Bug Fixes

Features

BREAKING CHANGES

  • The library is now delivered in Angular Package Format (APF) v6.0 (https://goo.gl/jB3GVv) using @angular/cli 6.

One notable change is that delivered UMD bundle is now located in 'bundles/ng-bootstrap.umd.js' instead of 'bundles/ng-bootstrap.js'.

Also ES5 code is now delivered as a flat version by default, so 'module' in the 'package.json' is now pointing to 'fesm5/ng-bootstrap.js' and not 'index.js'. You can still find all the ES5 code in the 'esm5' folder if necessary.

Please examine the contents of the delivered package, if you have a custom build configuration.

  • datepicker: datepicker popup will now close on outside click by default.

Because of this datepicker will NOT open with (click)="d.open()" and (click)="d.toggle()" unless you mark the element with click handler with [ngbDatepickerToggle]="d"

BEFORE:

<input ngbDatepicker #d="ngbDatepicker" />
<button (click)="d.toggle()">...</button>
<button (click)="d.open()">...</button>

AFTER:

<input ngbDatepicker #d="ngbDatepicker" />
<button [ngbDatepickerToggle]="d" (click)="d.toggle()">...</button>
<button [ngbDatepickerToggle]="d" (click)="d.open()">...</button>

Also note that [autoClose] input now accepts additional 'inside' and 'outside' values.

2.2.0 (2018-06-29)

Bug Fixes

  • accordion: update generated markup to Bootstrap HTML / CSS (9b2b0bc), closes #2368

Features

  • carousel: add flags controlling display of navigation arrows and indicators (ec4e939), closes #2274 #2275
  • carousel: add input to control pause on mouseover (8d54cac), closes #1163 #2436
  • modal: aria-labelledby attribute for modal window (3cc6fa7), closes #1477 #2049
  • popover: ability to add custom CSS classes to popover window (483bd05), closes #1441 #2310
  • timepicker: add custom time adapter support (7eaa7e7), closes #545 #2347

2.1.2 (2018-06-22)

Bug Fixes

  • datepicker: fix ExpressionChangedAfterItHasBeenCheckedError when switching between months (b47f981), closes #2408 #2462
  • timepicker: fix placeholder width issues on iOS (e65d5cf), closes #2460

2.1.1 (2018-06-15)

Bug Fixes

  • datepicker: properly display month select box when 'displayMonths' > 1 (18acd62), closes #2377 #2452
  • live: use a single DOM element for Live Announcer (31968ad), closes #2458
  • positioning: add missing primary position checks (54168ea)
  • positioning: add secondary positions to auto conversion (7208006), closes #1899

2.1.0 (2018-06-08)

Bug Fixes

Features

  • add support for i18n of static text in component templates (65c232d), closes #2314 #2317
  • datepicker: add aria attributes for navigation (cd01d32), closes #2345
  • datepicker: add native js date adapter (cd14b96), closes #2305
  • datepicker: close datepicker popup on ESC from anywhere (2666d8b), closes #2432
  • modal: focus is now trapped inside any opened modal (cf48325), closes #642 #2441
  • modal: support for promises in beforeDismiss hook (cca789f), closes #2340
  • typeahead: add input reflecting the 'autocomplete' attribute (3a7ca58), closes #2194 #2366

2.0.0 (2018-05-04)

This is a major release of ng-bootstrap. It is fully compatible with Angular / RxJS 6.x. Please pay attention to the breaking changes section when upgrading.

Bug Fixes

  • accordion: add 'accordion' css class (d014d0e), closes #2304
  • accordion: remove active class from open panel titles (f804649), closes #2307 #2221
  • datepicker: allow weekday and week number css to be overridden (57bf8f8), closes #2296
  • dropdown: correct dropup position with Bootstrap 4.1 (91c166d), closes #2297 #2313
  • modal: don't use deprecated 'ReflectiveInjector' (0f8055f), closes #2285
  • typeahead: reset active index when results change (46a4b3b), closes #2303 #2312

Features

BREAKING CHANGES

  • datepicker: if you're using a custom NgbDatepickerI18n implementation, you'll have to implement an additional method: getDayAriaLabel(date: NgbDateStruct): string. It returns the string that will be set for the aria-label attribute for each displayed day. If you're not using the custom service, the aria-label will default to the value returned by the angular DatePipe with 'fullDate' format.
  • accordion: The "active" CSS class is no longer added to headers of an active panel. This change assures that markup used by ng-bootstrap is in-line with the markup described in: https://getbootstrap.com/docs/4.0/components/collapse/#accordion-example
  • popover: Popovers with an empty title and content are considered disabled and won't open by default.
  • datepicker: The datepicker is no longer focusable as a whole component. Instead, the focus is allowed on each element inside the datepicker (navigation buttons, select boxes, focusable day) in the natural order. The datepicker .focus() method will now only focus one day and not the whole component.
  • datepicker: if your application provides a LOCALE_ID other than the default en-US, registers the locale data for this locale, and doesn't use a custom NgbDatepickerI18n, then the days and months of the datepicker won't be displayed in English anymore, but in the language of the provided locale.

1.1.1 (2018-04-06)

Bug Fixes

  • datepicker: emit 'selectEvent' when datepicker model changes (4a0ec89), closes #2278 #2281

1.1.0 (2018-03-30)

Bug Fixes

  • accordion: don't crash for panels with no content (da96dec), closes #2250 #2251
  • pagination: emit page change only when collection size is set (51a2a29), closes #1841 #2257
  • tabset: don't crash for tabs with no content (3b3c979), closes #2252

Features

1.0.4 (2018-03-23)

This release contains the same code as 1.0.3 but we need to push another version due to npm errors while publishing 1.0.3

1.0.3 (2018-03-23)

Bug Fixes

  • accordion: properly determine titles when using nested accordions (171a70d), closes #2240 #2247
  • tabset: properly determine titles when using nested tabsets (4a2f65a), closes #2249

1.0.2 (2018-03-19)

Bug Fixes

1.0.1 (2018-03-09)

Bug Fixes

1.0.0 (2018-01-26)

This is the first, stable release of ng-bootstrap!

Bug Fixes

1.0.0-beta.9 (2018-01-05)

This release bumps up minimal Bootstrap CSS dependency to 4.0.0-beta.3.

Bug Fixes

  • tooltip: fix arrow positioning in Bootstrap beta.3 (de56f10), closes #2067

1.0.0-beta.8 (2017-12-15)

Bug Fixes

Features

  • datepicker: simplify css handling of the navigation system (9a27911), closes #1614
  • typeahead: allow search on focus and click (96d073d), closes #698 #1990

1.0.0-beta.7 (2017-12-08)

This release bumps up minimal Angular dependency to 5.0.2.

1.0.0-beta.6 (2017-12-01)

This release depends on Bootstrap beta.2 CSS.

Bug Fixes

  • accordion: hide panel when destroyOnHide set to false (9e2df7f), closes #1915
  • buttons: mark the form control of a ngbRadioGroup as touched (9dde9c2), closes #1987 #1988
  • datepicker: close date picker after selecting the same date (ea796de), closes #1783
  • datepicker: date selection regression for non-visible dates (8e0ddb4), closes #1974
  • datepicker: popup disabled state (a05727e)
  • datepicker: remove border from 'btn-link' style (c6121b3), closes #1900 #1851
  • datepicker: use class btn with btn-link (3648f46)
  • dropdown: add "dropdown" class for placements other than "top" (ed88f72), closes #1847 #1852
  • dropdown: adjust for better compatibility with universal (9ad8f43), closes #1883
  • popover: added margin to arrow placement (2506ae4), closes #1845 #1855
  • timepicker: remove border from 'btn-link' style (3f9b909), closes #1851 #1901
  • timepicker: use class btn with btn-link (e6a93e0)
  • typeahead: don't close dropdown on typeahead input click (fa9c080), closes #1853 #1989

Features

  • datepicker: add Islamic Umalqura calendar (22a7210)
  • datepicker: add support for the container option (6c7a31b), closes #1380 #1857
  • datepicker: allow user to define his own date structure (a406e52), closes #1753
  • progressbar: allow changing progressbar height (b329be9), closes #1904 #1908
  • rating: add 'index' variable in template (2ed3632), closes #1922 #1931
  • typeahead: add exportAs property for ngbTypeahead (c318045), closes #1559

1.0.0-beta.5 (2017-09-14)

Bug Fixes

1.0.0-beta.4 (2017-09-07)

Lot's of positioning updates in this release. Now you can use more positioning options and auto-positioning for all widgets that open popups.

Bug Fixes

  • positioning: check for secondary available placements (0f92c80), closes #1819

Features

1.0.0-beta.3 (2017-08-30)

Bug Fixes

1.0.0-beta.2 (2017-08-23)

Bug Fixes

Features

BREAKING CHANGES

  • dropdown: The up input is no longer supported by you can use more flexible placement setting now.

Before:

<div ngbDropdown [up]="true">

After:

<div ngbDropdown placement="top-right">

1.0.0-beta.1 (2017-08-11)

ng-bootstrap goes BETA (and requires Bootstrap CSS 4.0.0-beta now)!

Bug Fixes

  • dropdown: update for Bootstrap4.beta (877c696), closes #1745
  • popover: account for margins when positioning popovers (5a7df43)

Features

BREAKING CHANGES

  • ng-bootstrap now requires Bootstrap CSS 4.0.0-beta
  • buttons: The btn-group CSS class needs to added explicitly for radio buttons.

Before:

<div ngbRadioGroup ...>
  ...
</div>

After:

<div class="btn-group" ngbRadioGroup ...>
  ...
</div>
  • dropdown: Dropdown menu now requires usage of the new ngbDropdownMenu directive.

Before:

<div ngbDropdown>
  <button ngbDropdownToggle>Toggle dropdown</button>
  <div class="dropdown-menu">
    <a class="dropdown-item">Action</a>
  </div>
</div>

After (notice ngbDropdownMenu):

<div ngbDropdown>
  <button ngbDropdownToggle>Toggle dropdown</button>
  <div ngbDropdownMenu>
    <a class="dropdown-item">Action</a>
  </div>
</div>

1.0.0-alpha.31 (2017-08-11)

This is the last alpha release of ng-bootstrap. Next stop - beta!

Bug Fixes

  • typeahead: resubscribe for value changes on blur, esc, enter (47797d3), closes #723 #1244

Features

1.0.0-alpha.30 (2017-08-03)

Bug Fixes

  • buttons: set name on radio inputs to fix keyboard navigation (3bfd82d), closes #1704 #1706
  • carousel: restart timer when interval changed (ae4e3e9), closes #1690 #1702
  • datepicker: focus datepicker after opening it inside the popup (0dbe0cb), closes #1708 #1717
  • datepicker: propagate model and validation state on 'input' event (38b8ffa), closes #1225 #1605
  • datepicker: retain manually entered values even if invalid (4bd81c3), closes #1710 #1725

Features

1.0.0-alpha.29 (2017-07-25)

Bug Fixes

Features

BREAKING CHANGES

  • buttons: The NgbButtonsModule changed location (path) and content. This path might need adjusting for people importing individual modules. Before: import {NgbButtonsModule} from './buttons/radio.module' After: import {NgbButtonsModule} from './buttons/buttons.module'

The NgbButtonsModule now contains both checkbox and radio buttons.

  • buttons: Selectors for radio buttons related directives were changed and now both label and input require ng-bootstrap specific attributes as selectors.

Before:

<div [(ngModel)]="model" ngbRadioGroup>
  <label class="btn">
    <input type="radio" name="radio" [value]="values[0]"/> {{ values[0] }}
  </label>
  <label class="btn">
    <input type="radio" name="radio" [value]="values[1]"/> {{ values[1] }}
  </label>
</div>

After:

<div [(ngModel)]="model" ngbRadioGroup>
  <label ngbButtonLabel>
    <input ngbButton type="radio" name="radio" [value]="values[0]"/> {{ values[0] }}
  </label>
  <label ngbButtonLabel>
    <input ngbButton type="radio" name="radio" [value]="values[1]"/> {{ values[1] }}
  </label>
</div>

Notice new ngbButtonLabel and ngbButton attributes that act as new selectors.

1.0.0-alpha.28 (2017-07-11)

Bug Fixes

  • datepicker: use noon instead of midnight for date conversion (2fdd8f1), closes #1615 #1676
  • timepicker: respect meridian setting when entering hours (62c5ae3), closes #1631 #1636
  • typeahead: avoid unnecessary re-creation of DOM nodes (0c19153), closes #1659 #1674

Features

  • datepicker: add keyboard navigation (bd94215)

BREAKING CHANGES

  • datepicker: component uses ChangeDetectionStrategy.OnPush now for most of the internal implementation. Things like the dynamic internationalization or calendar change might not work anymore as these are injected services. Any internal changes in these services in runtime will not trigger datepicker re-rendering.

1.0.0-alpha.27 (2017-06-30)

Bug Fixes

  • support closure-compiler in the library (5cfd9e4)
  • datepicker: consider empty string inputs as valid (95d1668), closes #1588 #1637
  • popover: popover not positioned properly (85fadb8), closes #1649
  • positioning: top-right, right-bottom, bottom-right, left-bottom (4689b4b), closes #1561
  • tooltip: properly position tooltips close to container edges (4a221c1), closes #1263 #1371 #1643

Features

1.0.0-alpha.26 (2017-05-16)

Bug Fixes

  • datepicker: prevent memory leak caused by ngZone subscription (c0c093b), closes #1534
  • rating: properly propagate control's touched state (53aa678), closes #1514 #1532

Features

1.0.0-alpha.25 (2017-04-25)

Features

BREAKING CHANGES

  • ng-bootstrap requires a minimal version of Angular 4.0.3

1.0.0-alpha.24 (2017-04-22)

Bug Fixes

  • buttons: add role="group" to radio group (c847a92), closes #1503
  • collapse: remove aria-expanded from target (a24b283), closes #1492

Features

  • rating: set aria-disabled="true" when readonly (c89f2c4), closes #1489
  • timepicker: replace table layout with flexbox (b94a126), closes #1498

1.0.0-alpha.23 (2017-04-12)

Bug Fixes

  • accordion: disabled links are announced and focusable (e836798), closes #1443
  • accordion: remove aria-controls when panel is not in DOM (44acc44), closes #1482
  • accordion: remove unneeded aria-selected (92ae3fd), closes #1159 #1438
  • carousel: remove inappropriate role="listbox" from carousel (39e1df5), closes #1484
  • datepicker: add stricter checks on dates validity (184f45a), closes #1230 #1442
  • pagination: remove duplicate accessibility labels (4960533), closes #1429
  • rating: correct aria attribute setting (4575573), closes #1479
  • rating: properly support disabled control state (a29da45), closes #1432 #1435
  • tabs: prevent focus of disabled tabs (7d1dd97), closes #1430
  • tabs: remove aria-controls when content is destroyed (a2a8a74), closes #1485
  • tabset: remove unneeded tabpanel role on container (5005384), closes #1409
  • timepicker: improve accessibility (b2942d3), closes #1480
  • timepicker: scale chevrons when size option is used (493d0b3), closes #1300 #1405
  • typeahead: fix ARIA attributes (ba4f48f), closes #1454 #1454

Features

  • datepicker: add validation (4cbea99), closes #1222 #1434
  • pagination: improve accessibility (424c38f), closes #1294
  • popover: add aria-describedby to popover triggering element (92e4804), closes #1412
  • tooltip: add aria-describedby to tooltip triggering element (0883635), closes #1386
  • typeahead: add accessibility support (e1fa7a4), closes #1321

BREAKING CHANGES

  • datepicker: Datepickers in popups are much stricter about valid dates now and won't try to auto-correct invalid dates any more. For example 2017-99-99 was considered valid previously and auto-corrected. This is not the case any more. Please check control's validity to detect invalid dates entered by users.
  • datepicker: Invalid dates entered by a user into datepicker input are propagated to the model as-is. This is required to properly support validation and is in-line with behaviour of all the built-in Angular validators. From now on you need to check control's validity to determine if the entered date is valid or not.

1.0.0-alpha.22 (2017-03-24)

This is a small release that contains peerDependencies adjustments needed to support Angular 4.x. This library was tested with the latest Angular and now fully supports both 4.x and 2.x.

Bug Fixes

1.0.0-alpha.21 (2017-03-15)

Bug Fixes

Features

BREAKING CHANGES

  • model: The ngbModalContainer directive is no longer needed and was removed from this project. Just remove any references to the <template ngbModalContainer></template> from your projects.

1.0.0-alpha.20 (2017-02-02)

Bug Fixes

  • alert: add missing alert-dismissible CSS class (e2691b9), closes #1267 #1270
  • datepicker: mark dates without a day as invalid (c57f913), closes #1278 #1279
  • datepicker: navigation arrows not responding on Firefox when navigation=="arrows" (e2410f9), closes #1254
  • timepicker: correct input alligements (9649ab2), closes #1280
  • typeahead: don't modify Observable prototype (ae6abb7), closes #1242 #1256

Features

1.0.0-alpha.19 (2017-01-25)

This release comes with many improvements to the datepicker: better layout as well as look & feel. We are also bumping up minimal Angular version to 2.3.1 - this is required so we can provide better APIs for modal.

Chores

Bug Fixes

  • datepicker: account for undefined values in ngOnChanges (8803847), closes #1202 #1229
  • dropdown: do not close dropdown on right button click (b6bb9e9), closes #1211
  • pagination: fix unnecessary ellipsis between sibling page numbers (b607652), closes #1166 #1232 #1233

Features

  • datepicker: add full month name versions to i18n (106fa82), closes #1217
  • datepicker: improve default look and feel (d88c8b7), closes #706 #1061 #1205
  • tabset: add an option for tabs horizontal alignment (00114f3), closes #1210

BREAKING CHANGES

  • minimal angular version was updated to 2.3.1. Angular@^2.3.1 will have to be used as a peer dependency from now on.

  • datepicker: NgbDatepickerI18n methods were renamed:

getWeekdayName to getWeekdayShortName getMonthName to getMonthShortName

  • datepicker: switched to flex layout instead of table-based (drop IE9 support) and prefixed datepicker-related css classes with ngb-dp-

1.0.0-alpha.18 (2017-01-09)

This release adds full compatibility with Bootstrap CSS version 4.0.0-alpha.6!

Chores

  • upgrade documentation to bootstrap-4.0.0-alpha.6 (4499927), closes #1192

Features

  • carousel: upgrade carousel to v4-alpha.6 (e9f539a), closes #1190
  • collapse: upgrade collapse to v4-alpha.6 (6cda8b3), closes #1183
  • datepicker: upgrade datepicker to v4-alpha.6 (b60e2d7), closes #1187
  • dropdown: upgrade to 4.0.0-alpha.6 (d8bfe37), closes #1180 #1182
  • modal: upgrade modal to v4-alpha.6 (7ab022b), closes #1185
  • popover: upgrade popover to v4-alpha.6 (60fd5d9), closes #1189
  • timepicker: upgrade timepicker to v4-alpha.6 (4288e22), closes #1186
  • tooltip: upgrade tooltip to v4-alpha.6 (0000aa3), closes #1188

BREAKING CHANGES

  • This version is compatible with bootstrap-4.0.0-alpha.6, and is not backward-compatible with previous versions of bootstrap. If you choose to upgrade to this version of ng-bootstrap, you will thus also have to migrate to bootstrap-4.0.0-alpha.6.

1.0.0-alpha.17 (2017-01-09)

This is a very small release that restores TypeScript 1.8 compatibility. Additionally it and fixes plunks to work with Bootstrap version 4.0.0-alpha.5 (this is in preparation for full support of Bootstrap 4.0.0-alpha.6)

Bug Fixes

1.0.0-alpha.16 (2017-01-02)

Bug Fixes

  • buttons: properly manage disabled state of group interactions (e24f4c6), closes #1143 #1148

Features

1.0.0-alpha.15 (2016-12-15)

Bug Fixes

Features

BREAKING CHANGES

  • rating: event emitter behind the 'rateChange' output emits asynchronously now

1.0.0-alpha.14 (2016-11-25)

Bug Fixes

Features

1.0.0-alpha.13 (2016-11-11)

This is a very small release that fixes a problem in the generated Typescript definition files (#1027).

Bug Fixes

1.0.0-alpha.12 (2016-11-10)

Bug Fixes

Features

  • datepicker: add navigation notification with 'navigate' output (1639626), closes #986 #1002
  • rating: add keyboard support (da0b6a0), closes #1015

1.0.0-alpha.11 (2016-11-03)

Bug Fixes

  • modal: restore backdrop: false functionality (0e2f386), closes #989 #990
  • modal: use Injector of NgbModal for component content (5172884), closes #982 #983
  • pagination: better protect against invalid inputs (a6ec937), closes #898 #979
  • rating: restore compatibility with TypeScript 1.8 (951e538), closes #995 #996

Features

  • datepicker: ability to display several months (a65cc30), closes #977

BREAKING CHANGES

  • datepicker: datepicker navigation now must be hidden with navigation='none'and not [showNavigation]='false' as previously

1.0.0-alpha.10 (2016-10-28)

Bug Fixes

  • restore AoT compatibility with 2.1.x (991c880), closes #953 #973
  • restore TypeScript 1.8 compatibility (e077ccc), closes #940 #941
  • accordion: remove unnecessary tabindex usage (a240bea), closes #942 #943
  • modal: make it easier to use components from lazy-loaded modules (2fb72d8), closes #947 #974
  • rating: improves rating accessibility (9b5f999), closes #962

1.0.0-alpha.9 (2016-10-21)

Bug Fixes

  • restore TypeScript 1.8 compatibility (1259d37), closes #904 #911
  • buttons: properly handle focus on radio buttons (23d412b), closes #913
  • datepicker: propagate "touched" property (deadb67), closes #918 #924
  • popover: properly destroy popovers using container option (19bb887), closes #931
  • timepicker: properly display chevrons in Safari on iOS (cbfa23b), closes #908 #909
  • timepicker: properly display chevrons in older IEs (54cd30b), closes #935
  • tooltip: properly destroy tooltips using container option (94a4d5c), closes #910 #912

Features

  • datepicker: can easily hide days outside of current month (a92c0e7), closes #937
  • modal: allow interactions with components passed as content (cc4ffb0), closes #861 #903
  • modals: stack modals in opening order (20ad457), closes #902 #901

1.0.0-alpha.8 (2016-10-14)

Bug Fixes

  • build: properly reference rxjs from the UMD bundle (53115da), closes #884
  • modal: don't error on dismiss without result handler (21de54c), closes #880 #885
  • pagination: emits pageChange when collection size changes (84d555c), closes #800 #868
  • radio: don't shadow checked attribute when not using buttons (de7d0e4), closes #840 #874

Features

  • popover: add support for the 'container' option (d1a22c0), closes #852 #853
  • tooltip: add support for the 'container' option (b8230e5), closes #621 #871
  • typeahead: add support for the focusFirst option (e86277f), closes #748 #856

1.0.0-alpha.7 (2016-10-10)

This release restores full AoT compatibility and has proper support for lazy-loaded NgbModule. On top of this we are shipping a lot of new features and bug fixes - details below.

Bug Fixes

  • restore full AoT compatibility (2101a89), closes #796 #854
  • buttons: use disabled state from a control (d9495db), closes #805 #828
  • datepicker: replace not-allowed cursor with default one (807c7e7), closes #850
  • datepicker: use ISO 8601 for month and weekday numbers (#797) (a173e40), closes #728
  • dropdown: properly close dropdown on child elements click (fdf8d4b), closes #803 #810
  • modal: support modals in lazy loaded modules (#799) (eca26cd), closes #784
  • modal: properly destroy content views (3cdb0ff), closes #806 #826
  • popover: properly cleanup content passed as TemplateRef (8246541), closes #827 #830
  • rating: replace not-allowed cursor with default one (e888d67), closes #851

Features

  • carousel: add support to turn off interval (c5625e8), closes #804
  • datepicker: infer startDate from model value (4fc52c1), closes #843 #844
  • datepicker: pass current month value to 'markDisabled' callback (afe6342), closes #849
  • modal: add support for custom windowClass on modals (ff132d7), closes #818 #845
  • modal: allow components as content (ecdd3a0), closes #680 #727 #846
  • popover: add isOpen() and shown/hidden events (3bbf512), closes #841
  • rating: allow custom star templates (29c44cd), closes #815
  • rating: allow decimal numbers as rating values (964d8cf), closes #817
  • tooltip: add isOpen() and show/hide events (91c6054), closes #842

BREAKING CHANGES

  • The NgbModule module must now import using the forRoot() static method. Check the updated installation instructions for more details.
  • datepicker: now datepicker uses ISO 8601 for month and weekday numbers with default calendar

Before:

0=Jan; 1=Feb; ... 11=Dec

0=Sun; 1=Mon; ... 6=Sat

After:

1=Jan; 2=Feb; ... 12=Dec

1=Mon; 2=Tue; ... 7=Sun

1.0.0-alpha.6 (2016-09-23)

Bug Fixes

  • accordion: rename change event to avoid conflicts (21eb610), closes #751 #756
  • dropdown: support autoClose when several dropdowns exist (e2e7c1b), closes #687 #785
  • popover: avoid shadowing of the native title property (2577efd), closes #736 #757
  • popover: properly handle components using OnPush strategy (40bde5e), closes #781
  • tabset: rename change event to avoid conflicts with native ones (9d2754f), closes #741 #747
  • tooltip: hide, or avoid opening the tooltip if its value is falsy (31a035b), closes #737 #745
  • tooltip: properly handle components using OnPush strategy (667833c), closes #772 #777
  • typeahead: properly handle components using OnPush strategy (a2ba68a), closes #775

Features

  • alert: remove self-closing alert component (79e393d), closes #758
  • datepicker: allow parsing and formatting dates in a custom way (401fcfa), closes #755
  • typeahead: add support for the "editable" option (cb91905), closes #788 #789

BREAKING CHANGES

  • alert: the NgbSelfClosingAlert component has been removed. Check the self-closing alert demo to know how to achieve the same thing with NgbAlert.
  • accordion: the change event on the accordion level was renamed to panelChange.

Before:

<ngb-accordion (change)="...">

After:

<ngb-accordion (panelChange)="...">

  • popover: the title property of the popover directive was renamed to popoverTitle.

Before:

<div ngbPopover="..." title="...">

After:

<div ngbPopover="..." popoverTitle="...">

  • tabset: the change event on the tabset level was renamed to tabChange.

Before:

<ngb-tabset (change)="...">

After:

<ngb-tabset (tabChange)="...">

1.0.0-alpha.5 (2016-09-15)

This release brings support for datepicker in popups - we believe that there is a solid widget here! Alpha.5 changes content of npm package to enable AoT compilation with tree-shaking. There are also small features and bug fixes for the existing widgets - see the details below.

Bug Fixes

  • popover: properly re-position popovers (a729ba9), closes #710
  • tooltip: properly re-position tooltips (6748a78), closes #709
  • typeahead: properly re-position typeahead window (2f59666), closes #707 #714
  • typeahead: properly support disabled inputs (bf61640), closes #703

Features

  • datepicker: add support for datepickers in popups (390935b), closes #715
  • datepicker: add background color when hovering day (bc89510), closes #713
  • datepicker: add support for disabled datepicker (64ec99c), closes #702
  • timepicker: propagate second as 0 if seconds not displayed (c1c68b0), closes #711
  • typeahead: add config service to provide default values (237b4d5), closes #518 #697
  • typeahead: allow veto of an item selection (e793944), closes #699 #733

BREAKING CHANGES

  • typeahead: payload of the typeahead's selectItem event was changed - now it is an object implementing the NgbTypeaheadSelectItemEvent. You can easily migrate your existing code by changing:

<input [ngbTypeahead]="find" (selectItem)="onSelect($event)"/>

to

<input [ngbTypeahead]="find" (selectItem)="onSelect($event.item)"/>

  • build: npm package: code in ESM (ES6 Modules) format is now published at the default location in the npm package with package.json's main entry pointing to an UMD bundle (primarily for node and webpack 1 users).

If you are using SystemJS, you should adjust your configuration to point to the UMD bundle.

1.0.0-alpha.4 (2016-09-07)

This release brings a new component - datepicker! Additionally all widgets now support global config through an injectable service. There are also small features and bug fixes for the existing widgets - see the details below.

Bug Fixes

  • dropdown: don't emit duplicate change events (2e529e3), closes #694 #695
  • timepicker: spinners don't submit form anymore (f131990), closes #690 #691
  • typeahead: navigation buttons don't submit form anymore (79f4597), closes #693

Features

  • accordion: add config service to provide default values (1c290a2), closes #655
  • alert: add config service to provide default values (e666c61), closes #661
  • alert: self-closing alerts are non-dismissible by default (720c409), closes #660 #676
  • carousel: add config service to provide default values (99d4386), closes #664
  • datepicker: add config service to provide default values (42002d9), closes #677
  • datepicker: initial version of datepicker component (#618) (9e8c5c0), closes #20
  • dropdown: add config service to provide default values (e97d260), closes #688
  • dropdown: add support for dropup (56b8dc5), closes #667
  • pagination: add config service to provide default values (#665) (9405e0e)
  • popover: add config service to provide default values (a58588c), closes #686
  • progressbar: add config service to provide default values (f32f8c8)
  • rating: add config service to provide default values (8b7047d), closes #671
  • tabset: add config service to provide default values (609cbde), closes #673
  • timepicker: add config service to provide default values (ca40f27), closes #674
  • tooltip: add config service to provide default values (7107caf), closes #678
  • typeahead: add support for the showHint option (5a0226d), closes #639 #640

1.0.0-alpha.3 (2016-08-30)

This release adds support for the modal service. Cross-browser compatibility was reviewed and improved. We now support all the browsers supported by Angular 2 and Bootstrap, including IE9. There are also small features and bug fixes for the existing widgets - see the details below.

Bug Fixes

  • typeahead: cleans up subscription on component destroy (5dcecae), closes #620
  • fix the error emitted by TS due to missing generic type (976ff34), closes #622

Features

  • support IE9 (5514a97), closes #604
  • modal: add initial version of the modal service (3ef99c5), closes #3
  • typeahead: add support for the 'select' output (c0dd7b7), closes #606 #610

1.0.0-alpha.2 (2016-08-10)

This release makes the code compatible with Angular 2.0.0-rc.5. There are also small features and bug fixes for the existing widgets - see the details below.

Bug Fixes

  • buttons: don't interfere with 'active' class (af4de2a), closes #557 #559
  • progressbar: reorder 'value' and 'max' attribute bindings for IE (30e20f5), closes #543 #544
  • timepicker: format input values on blur (d9ac911), closes #511 #517
  • timepicker: propagate only valid model values (8c4144a), closes #513 #516
  • typeahead: resolves window items excessive rendering (862fbc5), closes #526
  • typeahead: specify any type for formatters argument (86c3644), closes #553 #554
  • don't accept string as boolean input (190b7ec), closes #552
  • don't accept string as number input (f49fb08), closes #560

Features

  • timepicker: allow hiding the spinners (dc4962d), closes #510 #519
  • typeahead: set autocomplete, autocapitalize and autocorrect off (46024c3), closes #520 #525

BREAKING CHANGES

  • number inputs in pagination could previously be set as strings. The values passed were transformed to numbers if necessary and rounded to integers. This is not supported anymore. All number inputs should now consistently be set as number, using the syntax [attr]="value" (for example: <ngb-pagination [pageSize]="20" ...></ngb-pagination> instead of <ngb-pagination pageSize="20" ...></ngb-pagination>), and rounding is not applied anymore.
  • boolean inputs in progressbar and pagination could be set by just adding the attribute (for example: <ngb-progressbar striped></ngb-progressbar>). This is not supported anymore. All boolean inputs must now consistently be set using the syntax [attr]="value" (for example: <ngb-progressbar [striped]="true"></ngb-progressbar>).
  • you need to use @NgModules to setup your application. Check https://ng-bootstrap.github.io/#/getting-started for more details.

1.0.0-alpha.1 (2016-07-29)

This release adds support for 2 new directives (timepicker and typeahead) and updates Bootstrap support to 4.0.0-alpha.3. There are also small features and bug fixes for the existing widgets - see the details below.

Bug Fixes

  • dropdown: use button elements instead of links (aeeee01), closes #490
  • pagination: display proper cursor on each page (dca96fd), closes #492
  • progressbar: don't add bogus CSS classes (56ea4c5), closes #496
  • rating: set cursor on stars of rating component (#411) (bcba259)

Features

  • accordion: add panels type option (b5ad117), closes #420 #431
  • timepicker: add timepicker widget
  • typeahead: add typeahead widget

BREAKING CHANGES

  • accordion: accordion implementation was overhauled to use cards instead of deprecated panels. Refer to the API docs and demo page for more details.
  • pager: support for the pager widget was removed as the result of its removal from Bootstrap's CSS.

1.0.0-alpha.0 (2016-07-08)

Features

Initial release with the following directives:

  • accordion
  • alert
  • buttons
  • carousel
  • collapse
  • dropdown
  • pager
  • pagination
  • popover
  • progressbar
  • rating
  • tabset
  • tooltip