1.0.0-alpha.30 (2017-08-03)
- 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
1.0.0-alpha.29 (2017-07-25)
- buttons: make buttons selectors more specific (f9bc76e), closes #1125 #1678
- modal: don't try to focus non-focusable elements (0c03671), closes #1627 #1691
- timepicker: account for CD before model write (meridian case) (ffd86bc), closes #1696 #1699
- timepicker: switch to PM when hour > 12 (5cbb429), closes #1680 #1684
- 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)
- datepicker: use noon instead of midnight for date conversion (2fdd8f1), closes #1615 #1676
- timepicker: respect meridian setting when entring hours (62c5ae3), closes #1631 #1636
- typeahead: avoid unnecessary re-creation of DOM nodes (0c19153), closes #1659 #1674
- datepicker: add keyboard navigation (bd94215)
- 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)
- 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
- carousel: add event on carousel slide with direction info (5d79c00), closes #1356 #1406
- datepicker: allow positioning of datepicker popup (3e22a63), closes #1082 #1570
- typeahead: export the NgbHighlight component (a89cc97), closes #1553 #1555
1.0.0-alpha.26 (2017-05-16)
- datepicker: prevent memory leak caused by ngZone subscription (c0c093b), closes #1534
- rating: properly propagate control's touched state (53aa678), closes #1514 #1532
1.0.0-alpha.25 (2017-04-25)
- ng-bootstrap requires a minimal version of Angular 4.0.3
1.0.0-alpha.24 (2017-04-22)
- buttons: add
role="group"
to radio group (c847a92), closes #1503 - collapse: remove aria-expanded from target (a24b283), closes #1492
- 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)
- 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 unneded 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
- 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
- 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.
1.0.0-alpha.21 (2017-03-15)
- datepicker: allow datepicker calendar override (2792768), closes #1366
- datepicker: protect against invalid inputs (eaf2de1), closes #1308 #1364
- rating: don't fire change event on init (815cc20), closes #1282 #1306 #1357
- datepicker: initial version of Hijri calendar (1cf0c02)
- model: introduce the 'container' option (743db91), closes #1018 #1264 #1373
- tabset: improve accessibility (d7722ad), closes #1327
- tabset: support nodes preservation (79dd101), closes #1161 #1369
- 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)
- 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
- progressbar: add possibility to specify progressbars content (8e03090), closes #1251 #1259
- progressbar: show current value of progressbar (83e01de), closes #1251 #1269
- timepicker: add input and meridian button sizing (89c1e6b), closes #1094 #1258
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.
- update angular version (43b8e2b)
- 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
- 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
-
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!
- 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
- 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)
1.0.0-alpha.16 (2017-01-02)
- export all directives (4554855), closes #779 #1154
- pagination: add disabled state support (2827e50), closes #1153 #1155
- popover: pass context to popup open method (87d569b), closes #1145
1.0.0-alpha.15 (2016-12-15)
- buttons: properly handle disabled property on a button level (cc88ed2), closes #1088 #1089 #1095 #1141
- datepicker: protect against invalid min, max and start dates (186c0e1), closes #1062 #1092
- datepicker: use
td
in arrows navigation (6b8827a), closes #1086 - pagination: prevent focus of disabled selectors (733fc54), closes #1108 #1114 #1114
- accordion: add aria-selected (d1abd37), closes #1109
- rating: enable form integration (c090a5a), closes #1087 #1097
- tabs: add aria (97f116f), closes #1118 #1120
- rating: event emitter behind the 'rateChange' output emits asynchronously now
1.0.0-alpha.14 (2016-11-25)
- datepicker: navigation restrictions work with min- and maxDate (a12c559), closes #1057 #1077
- demo: upgrade webpack and loaders (994deda), closes #1047 #1048
- modal: stricter interpretation of backdrop clicks (3af8329), closes #1040 #1042 #1067
- progressbar: progress stays striped when type changes (e3af043), closes #1035 #1038
- rating: restore update on click functionality (a64a8a0), closes #1072 #1074
- timepicker: display 12 PM/AM when merdian is true (91ca518), closes #1031 #1033
- typeahead: clear model on user input when editable=false (cfbc24a), closes #829 #1083
- accordion: add aria attributes (ed5d4ca), closes #1070
- typeahead: do not trap keydown enter event (1702df9), closes #958 #877 #980 #1032 #1032
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).
1.0.0-alpha.12 (2016-11-10)
- carousel: enable key auto-repeat (fb6294d), closes #1025
- modal: don't stop propagation of click events from content (6a2c074), closes #1011 #1013
- typeahead: properly respect focusFirst option (282a089), closes #876 #1021
- 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)
- 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
- datepicker: datepicker navigation now must be hidden with
navigation='none'
and not[showNavigation]='false'
as prevoiusly
1.0.0-alpha.10 (2016-10-28)
- 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)
- 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
- 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)
- 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
- 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.
- 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
- 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
- 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)
- 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
- 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
- alert: the
NgbSelfClosingAlert
component has been removed. Check the self-closing alert demo to know how to achieve the same thing withNgbAlert
. - accordion: the
change
event on the accordion level was renamed topanelChange
.
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 totabChange
.
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.
- 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
- 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
- typeahead: payload of the typeahead's
selectItem
event was changed - now it is an object implementing theNgbTypeaheadSelectItemEvent
. 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
'smain
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.
- 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
- 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.
- typeahead: cleans up subscription on component destroy (5dcecae), closes #620
- fix the error emitted by TS due to missing generic type (976ff34), closes #622
- 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.
- 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
- timepicker: allow hiding the spinners (dc4962d), closes #510 #519
- typeahead: set autocomplete, autocapitalize and autocorrect off (46024c3), closes #520 #525
- 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
@NgModule
s 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.
- 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)
- accordion: add panels type option (b5ad117), closes #420 #431
- timepicker: add timepicker widget
- typeahead: add typeahead widget
- 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)
Initial release with the following directives:
- accordion
- alert
- buttons
- carousel
- collapse
- dropdown
- pager
- pagination
- popover
- progressbar
- rating
- tabset
- tooltip