|
| 1 | +<a name="2.0.0-beta.11"></a> |
| 2 | +# [2.0.0-beta.11](https://github.com/angular/flex-layout/compare/v2.0.0-beta.9...2.0.0-beta.11) (2017-11-05) |
| 3 | + |
| 4 | + |
| 5 | +### Bug Fixes |
| 6 | + |
| 7 | +* **api:** defer getComputedStyle() calls until ngOnInit phase ([#374](https://github.com/angular/flex-layout/issues/374)) ([3611003](https://github.com/angular/flex-layout/commit/3611003)), closes [#310](https://github.com/angular/flex-layout/issues/310) |
| 8 | +* **api:** layout with layoutAlign was not responding to reverse directions ([dde6e87](https://github.com/angular/flex-layout/commit/dde6e87)), closes [#82](https://github.com/angular/flex-layout/issues/82) |
| 9 | +* **api:** remove circular dependencies ([7bff29e](https://github.com/angular/flex-layout/commit/7bff29e)), closes [#88](https://github.com/angular/flex-layout/issues/88) |
| 10 | +* **api:** remove use of static ngModule.forRoot() ([#167](https://github.com/angular/flex-layout/issues/167)) ([86010bf](https://github.com/angular/flex-layout/commit/86010bf)) |
| 11 | +* **api:** restore orig display mode and more... ([#143](https://github.com/angular/flex-layout/issues/143)) ([d269d73](https://github.com/angular/flex-layout/commit/d269d73)), closes [#140](https://github.com/angular/flex-layout/issues/140) [#141](https://github.com/angular/flex-layout/issues/141) |
| 12 | +* **api:** support query children on API directives ([#290](https://github.com/angular/flex-layout/issues/290)) ([f5558de](https://github.com/angular/flex-layout/commit/f5558de)) |
| 13 | +* **api:** use only Renderer2 instances ([#391](https://github.com/angular/flex-layout/issues/391)) ([816d85a](https://github.com/angular/flex-layout/commit/816d85a)) |
| 14 | +* **api, class:** fix valid ngClass usages ([db2fd59](https://github.com/angular/flex-layout/commit/db2fd59)), closes [#428](https://github.com/angular/flex-layout/issues/428) |
| 15 | +* **api, class:** selector [class] should be removed from ClassDirective. ([#394](https://github.com/angular/flex-layout/issues/394)) ([7a48c25](https://github.com/angular/flex-layout/commit/7a48c25)), closes [#393](https://github.com/angular/flex-layout/issues/393) |
| 16 | +* **api, class, style:** remove deprecated selectors ([#419](https://github.com/angular/flex-layout/issues/419)) ([e461d17](https://github.com/angular/flex-layout/commit/e461d17)), closes [#410](https://github.com/angular/flex-layout/issues/410) [#408](https://github.com/angular/flex-layout/issues/408) [#273](https://github.com/angular/flex-layout/issues/273) [#418](https://github.com/angular/flex-layout/issues/418) |
| 17 | +* **auto-prefixer:** resolve perf impacts as reported by LightHouse ([#283](https://github.com/angular/flex-layout/issues/283)) ([bc0c900](https://github.com/angular/flex-layout/commit/bc0c900)), closes [#282](https://github.com/angular/flex-layout/issues/282) |
| 18 | +* **breakpoints:** resolve 1px hole between lg -> xl breakpoints ([#159](https://github.com/angular/flex-layout/issues/159)) ([d78527c](https://github.com/angular/flex-layout/commit/d78527c)), closes [#149](https://github.com/angular/flex-layout/issues/149) |
| 19 | +* **breakpoints:** support print media ([#367](https://github.com/angular/flex-layout/issues/367)) ([37a0b85](https://github.com/angular/flex-layout/commit/37a0b85)), closes [#361](https://github.com/angular/flex-layout/issues/361) |
| 20 | +* **build:** add observable-media-service to exported barrel ([#139](https://github.com/angular/flex-layout/issues/139)) ([b7dffaa](https://github.com/angular/flex-layout/commit/b7dffaa)) |
| 21 | +* **build:** angular versions are not properly inserted ([e3b7fde](https://github.com/angular/flex-layout/commit/e3b7fde)), closes [#470](https://github.com/angular/flex-layout/issues/470) |
| 22 | +* **build:** remove use of Angular private API ([#195](https://github.com/angular/flex-layout/issues/195)) ([d95cb09](https://github.com/angular/flex-layout/commit/d95cb09)), closes [#193](https://github.com/angular/flex-layout/issues/193) |
| 23 | +* **build:** support Angular 4 and AOT ([#255](https://github.com/angular/flex-layout/issues/255)) ([fed87fa](https://github.com/angular/flex-layout/commit/fed87fa)), closes [#254](https://github.com/angular/flex-layout/issues/254) [#236](https://github.com/angular/flex-layout/issues/236) [#227](https://github.com/angular/flex-layout/issues/227) |
| 24 | +* **changelog:** fix invalid parentheses and semver checks ([96aaa78](https://github.com/angular/flex-layout/commit/96aaa78)) |
| 25 | +* **closure-compiler:** use Number to cast ([#289](https://github.com/angular/flex-layout/issues/289)) ([052a4a9](https://github.com/angular/flex-layout/commit/052a4a9)) |
| 26 | +* **css:** add prefixed styles before standard ones ([99eabfb](https://github.com/angular/flex-layout/commit/99eabfb)), closes [#467](https://github.com/angular/flex-layout/issues/467) [#468](https://github.com/angular/flex-layout/issues/468) |
| 27 | +* **demo:** correctly use template instead of templateUrl ([#100](https://github.com/angular/flex-layout/issues/100)) ([c436824](https://github.com/angular/flex-layout/commit/c436824)) |
| 28 | +* **demo:** fix bindings for fxLayout with AoT ([#101](https://github.com/angular/flex-layout/issues/101)) ([51ea29e](https://github.com/angular/flex-layout/commit/51ea29e)) |
| 29 | +* **demo:** import MdCheckboxModule ([5f198a3](https://github.com/angular/flex-layout/commit/5f198a3)) |
| 30 | +* **demo:** improve use of ObservableMedia service ([#214](https://github.com/angular/flex-layout/issues/214)) ([64b122a](https://github.com/angular/flex-layout/commit/64b122a)) |
| 31 | +* **demo, media-query-status:** should use async pipe with ObservableMedia ([0e7d2e0](https://github.com/angular/flex-layout/commit/0e7d2e0)) |
| 32 | +* **flex:** add min-width to elements with flex basis using px values ([3fe5ea3](https://github.com/angular/flex-layout/commit/3fe5ea3)), closes [#68](https://github.com/angular/flex-layout/issues/68) |
| 33 | +* **flex:** fix use of values with 'auto' ([#122](https://github.com/angular/flex-layout/issues/122)) ([04d24d5](https://github.com/angular/flex-layout/commit/04d24d5)), closes [#120](https://github.com/angular/flex-layout/issues/120) |
| 34 | +* **flexbox:** add default display property to getDisplayStyle() ([#301](https://github.com/angular/flex-layout/issues/301)) ([771f2c9](https://github.com/angular/flex-layout/commit/771f2c9)) |
| 35 | +* **flexbox:** resolve 'renderer.setStyle()' error ([#298](https://github.com/angular/flex-layout/issues/298)) ([3e1fcbd](https://github.com/angular/flex-layout/commit/3e1fcbd)), closes [#270](https://github.com/angular/flex-layout/issues/270) |
| 36 | +* **flexbox:** scan flex-direction in css stylesheet ([#365](https://github.com/angular/flex-layout/issues/365)) ([635c4f5](https://github.com/angular/flex-layout/commit/635c4f5)), closes [#272](https://github.com/angular/flex-layout/issues/272) [#364](https://github.com/angular/flex-layout/issues/364) |
| 37 | +* **FlexLayoutModule:** remove console.warn() conflicts with ngc+AOT ([#179](https://github.com/angular/flex-layout/issues/179)) ([0797c85](https://github.com/angular/flex-layout/commit/0797c85)), closes [#174](https://github.com/angular/flex-layout/issues/174) [#175](https://github.com/angular/flex-layout/issues/175) [#176](https://github.com/angular/flex-layout/issues/176) [#178](https://github.com/angular/flex-layout/issues/178) |
| 38 | +* **fxFlex:** fxFlex=auto with overlapping breakpoints activated ([#183](https://github.com/angular/flex-layout/issues/183)) ([cb614ed](https://github.com/angular/flex-layout/commit/cb614ed)), closes [#135](https://github.com/angular/flex-layout/issues/135) |
| 39 | +* **fxFlex:** improve support for 'auto' and flex-basis variations ([#212](https://github.com/angular/flex-layout/issues/212)) ([c28dfc7](https://github.com/angular/flex-layout/commit/c28dfc7)) |
| 40 | +* **fxFlex:** prevent setting min/max-size when grow/shrink is zero ([#160](https://github.com/angular/flex-layout/issues/160)) ([942939e](https://github.com/angular/flex-layout/commit/942939e)), closes [#153](https://github.com/angular/flex-layout/issues/153) |
| 41 | +* **fxFlexFill, fxFlexAlign:** update selectors and wiki ([8f591c5](https://github.com/angular/flex-layout/commit/8f591c5)), closes [#93](https://github.com/angular/flex-layout/issues/93) |
| 42 | +* **fxFlexOffset:** use parent flow direction for margin property ([#369](https://github.com/angular/flex-layout/issues/369)) ([f0473e9](https://github.com/angular/flex-layout/commit/f0473e9)), closes [#328](https://github.com/angular/flex-layout/issues/328) |
| 43 | +* **fxHide,fxShow:** fix standalone breakpoint selectors ([#121](https://github.com/angular/flex-layout/issues/121)) ([0ca7d07](https://github.com/angular/flex-layout/commit/0ca7d07)), closes [#62](https://github.com/angular/flex-layout/issues/62) [#59](https://github.com/angular/flex-layout/issues/59) [#105](https://github.com/angular/flex-layout/issues/105) |
| 44 | +* **fxLayoutAlign:** support flex-start and flex-end options ([#239](https://github.com/angular/flex-layout/issues/239)) ([eb5cb9f](https://github.com/angular/flex-layout/commit/eb5cb9f)), closes [#232](https://github.com/angular/flex-layout/issues/232) |
| 45 | +* **fxLayoutGap:** add gaps to dynamic content ([#124](https://github.com/angular/flex-layout/issues/124)) ([6482c12](https://github.com/angular/flex-layout/commit/6482c12)), closes [#95](https://github.com/angular/flex-layout/issues/95) |
| 46 | +* **fxLayoutGap:** fxLayoutWrap to apply gap logic for reverse directions ([#148](https://github.com/angular/flex-layout/issues/148)) ([9f7137e](https://github.com/angular/flex-layout/commit/9f7137e)), closes [#108](https://github.com/angular/flex-layout/issues/108) |
| 47 | +* **fxLayoutGap:** mutation observer should run outside the ngZone ([#370](https://github.com/angular/flex-layout/issues/370)) ([9fb0877](https://github.com/angular/flex-layout/commit/9fb0877)), closes [#329](https://github.com/angular/flex-layout/issues/329) |
| 48 | +* **fxLayoutGap:** skip hidden element nodes ([#145](https://github.com/angular/flex-layout/issues/145)) ([6c45b35](https://github.com/angular/flex-layout/commit/6c45b35)), closes [#136](https://github.com/angular/flex-layout/issues/136) |
| 49 | +* **fxLayoutGap:** update gap logic when num children reduces to 1. ([43b34fa](https://github.com/angular/flex-layout/commit/43b34fa)), closes [#433](https://github.com/angular/flex-layout/issues/433) [#444](https://github.com/angular/flex-layout/issues/444) |
| 50 | +* **fxShow, fxHide:** support fxHide+fxShow usages on same element ([#190](https://github.com/angular/flex-layout/issues/190)) ([eee20b2](https://github.com/angular/flex-layout/commit/eee20b2)) |
| 51 | +* **fxStyle:** enable raw input caching ([#173](https://github.com/angular/flex-layout/issues/173)) ([d5b283c](https://github.com/angular/flex-layout/commit/d5b283c)) |
| 52 | +* **lib:** remove all uses of [@internal](https://github.com/internal) ([ca64760](https://github.com/angular/flex-layout/commit/ca64760)) |
| 53 | +* **lib, media-query:** support angular/universal ([#353](https://github.com/angular/flex-layout/issues/353)) ([0f13b14](https://github.com/angular/flex-layout/commit/0f13b14)), closes [#187](https://github.com/angular/flex-layout/issues/187) [#354](https://github.com/angular/flex-layout/issues/354) [#346](https://github.com/angular/flex-layout/issues/346) |
| 54 | +* **matchMediaObservable:** expose observable for rxjs operators ([#133](https://github.com/angular/flex-layout/issues/133)) ([6e46561](https://github.com/angular/flex-layout/commit/6e46561)), closes [#125](https://github.com/angular/flex-layout/issues/125) |
| 55 | +* **MatchMediaObservable:** register breakpoints so observable announces properly ([3555e14](https://github.com/angular/flex-layout/commit/3555e14)), closes [#65](https://github.com/angular/flex-layout/issues/65) [#64](https://github.com/angular/flex-layout/issues/64) |
| 56 | +* **ngClass:** add ngClass selector support ([#223](https://github.com/angular/flex-layout/issues/223)) ([980d412](https://github.com/angular/flex-layout/commit/980d412)), closes [#206](https://github.com/angular/flex-layout/issues/206) |
| 57 | +* **ngClass,ngStyle:** support proper API usages and ChangeDetectionStrategy.OnPush strategies ([#228](https://github.com/angular/flex-layout/issues/228)) ([5db01e7](https://github.com/angular/flex-layout/commit/5db01e7)), closes [#206](https://github.com/angular/flex-layout/issues/206) [#215](https://github.com/angular/flex-layout/issues/215) |
| 58 | +* **ngStyle, ngClass:** StyleDirective security fixes & merge activated styles ([#198](https://github.com/angular/flex-layout/issues/198)) ([eb22fe5](https://github.com/angular/flex-layout/commit/eb22fe5)), closes [#197](https://github.com/angular/flex-layout/issues/197) |
| 59 | +* **observableMedia:** consistently emit initial value ([f19bff2](https://github.com/angular/flex-layout/commit/f19bff2)) |
| 60 | +* **ObservableMedia:** properly announce 'xs' activation at startup ([#396](https://github.com/angular/flex-layout/issues/396)) ([66f3717](https://github.com/angular/flex-layout/commit/66f3717)), closes [#388](https://github.com/angular/flex-layout/issues/388) |
| 61 | +* **ObservableMedia:** provide consistent reporting of active breakpoint ([#186](https://github.com/angular/flex-layout/issues/186)) ([aa0dab4](https://github.com/angular/flex-layout/commit/aa0dab4)), closes [#185](https://github.com/angular/flex-layout/issues/185) |
| 62 | +* **ObservableMedia:** startup should propagate lastReplay value properly ([#313](https://github.com/angular/flex-layout/issues/313)) ([00ac57a](https://github.com/angular/flex-layout/commit/00ac57a)), closes [#245](https://github.com/angular/flex-layout/issues/245) [#275](https://github.com/angular/flex-layout/issues/275) [#303](https://github.com/angular/flex-layout/issues/303) |
| 63 | +* import specific symbols from rxjs ([#99](https://github.com/angular/flex-layout/issues/99)) ([88d1b0f](https://github.com/angular/flex-layout/commit/88d1b0f)) |
| 64 | +* **prefixer:** improve flex css prefixes ([#276](https://github.com/angular/flex-layout/issues/276)) ([beb5ed0](https://github.com/angular/flex-layout/commit/beb5ed0)) |
| 65 | +* **release:** fix checkout CHANGELOG.md from origin/master ([e17cdc1](https://github.com/angular/flex-layout/commit/e17cdc1)) |
| 66 | +* **release:** updates to commit to version changes: ([c2463a5](https://github.com/angular/flex-layout/commit/c2463a5)) |
| 67 | +* **test:** fix test for fxFlex='' ([fcf851f](https://github.com/angular/flex-layout/commit/fcf851f)) |
| 68 | +* **tests:** remove unneeded async() wrappers in karma tests ([a77de3c](https://github.com/angular/flex-layout/commit/a77de3c)) |
| 69 | +* **universal:** remove browser check from style-utils ([8dcae02](https://github.com/angular/flex-layout/commit/8dcae02)), closes [#466](https://github.com/angular/flex-layout/issues/466) |
| 70 | + |
| 71 | + |
| 72 | +### Features |
| 73 | + |
| 74 | +* **api:** add responsive API for img elements ([#382](https://github.com/angular/flex-layout/issues/382)) ([45cfd2e](https://github.com/angular/flex-layout/commit/45cfd2e)), closes [#366](https://github.com/angular/flex-layout/issues/366) [#376](https://github.com/angular/flex-layout/issues/376) |
| 75 | +* **api:** add responsive API for img elements ([#384](https://github.com/angular/flex-layout/issues/384)) ([354f54f](https://github.com/angular/flex-layout/commit/354f54f)), closes [#366](https://github.com/angular/flex-layout/issues/366) [#81](https://github.com/angular/flex-layout/issues/81) [#376](https://github.com/angular/flex-layout/issues/376) |
| 76 | +* **api:** add responsive support for ngClass and ngStyle ([#170](https://github.com/angular/flex-layout/issues/170)) ([f57a63d](https://github.com/angular/flex-layout/commit/f57a63d)) |
| 77 | +* **breakpoints:** support custom breakpoints and enhanced selectors ([#204](https://github.com/angular/flex-layout/issues/204)) ([ecc6e51](https://github.com/angular/flex-layout/commit/ecc6e51)) |
| 78 | +* **flexbox:** use protected access to allow API directives to be easily extended ([#163](https://github.com/angular/flex-layout/issues/163)) ([e6bc451](https://github.com/angular/flex-layout/commit/e6bc451)) |
| 79 | +* **fxFlex:** compute immediate parent flex-direction ([#220](https://github.com/angular/flex-layout/issues/220)) ([ba0d85d](https://github.com/angular/flex-layout/commit/ba0d85d)) |
| 80 | +* **layout:** add wrap options support to fxLayout ([#207](https://github.com/angular/flex-layout/issues/207)) ([2340a19](https://github.com/angular/flex-layout/commit/2340a19)) |
| 81 | +* **ObservableMedia:** use ObservableMedia class as provider token ([#158](https://github.com/angular/flex-layout/issues/158)) ([dad69fe](https://github.com/angular/flex-layout/commit/dad69fe)) |
| 82 | + |
| 83 | + |
| 84 | +### BREAKING CHANGES |
| 85 | + |
| 86 | +* **ngStyle, ngClass:** * `[style.<alias>]` selectors are deprecated in favor of `[ngStyle.<alias>]` selectors |
| 87 | +* `[class.<alias>]` selectors are deprecated in favor of `[ngClass.<alias>]` selectors |
| 88 | +* default styles are merged with activated styles |
| 89 | + |
| 90 | +```html |
| 91 | +<div fxLayout |
| 92 | + [class.xs]="['xs-1', 'xs-2']" |
| 93 | + [style]="{'font-size': '10px', 'margin-left' : '13px'}" |
| 94 | + [style.xs]="{'font-size': '16px'}" |
| 95 | + [style.md]="{'font-size': '12px'}"> |
| 96 | +</div> |
| 97 | +``` |
| 98 | + |
| 99 | +```html |
| 100 | +<div fxLayout |
| 101 | + [ngClass.xs]="['xs-1', 'xs-2']" |
| 102 | + [ngStyle]="{'font-size': '10px', 'margin-left' : '13px'}" |
| 103 | + [ngStyle.xs]="{'font-size': '16px'}" |
| 104 | + [ngStyle.md]="{'font-size': '12px'}"> |
| 105 | +</div> |
| 106 | +``` |
| 107 | +* **api:** Previously releases used FlexLayoutModule.forRoot(). This has been deprecated and removed. |
| 108 | +* **ObservableMedia:** Deprecated use of `ObservableMediaService` opaque token. Developers now simply use the ObservableMedia class to inject the service. |
| 109 | + |
| 110 | +*before* |
| 111 | + |
| 112 | +```js |
| 113 | +constructor( @Inject(ObserverableMediaService) private media:any ) { ... } |
| 114 | +``` |
| 115 | + |
| 116 | +**after** |
| 117 | +```js |
| 118 | +constructor(private media:ObservableMedia) { ... } |
| 119 | +``` |
| 120 | +* **matchMediaObservable:** * use opaque token `ObservableMediateService` to inject instance of `MediaService` |
| 121 | +* use `MediaService::asObservable()` to get instance of observable |
| 122 | + |
| 123 | +```js |
| 124 | +// RxJS |
| 125 | +import 'rxjs/add/operator/map'; |
| 126 | + |
| 127 | +@Component({ ... }) |
| 128 | +export class MyComponent { |
| 129 | + constructor( @Inject(ObservableMediaService) media) { |
| 130 | + media.asObservable() |
| 131 | + .map( (change:MediaChange) => change.mqAlias == 'md' ) |
| 132 | + .subscribe((change:MediaChange) => { |
| 133 | + let state = change ? `'${change.mqAlias}' = (${change.mediaQuery})` : "" |
| 134 | + console.log( state ); |
| 135 | + }); |
| 136 | + } |
| 137 | +} |
| 138 | +``` |
| 139 | + |
| 140 | + |
| 141 | + |
1 | 142 | <a name="2.0.0-beta.10"></a>
|
2 | 143 | # [2.0.0-beta.10](https://github.com/angular/flex-layout/compare/v2.0.0-beta.8...2.0.0-beta.10) (2017-10-31)
|
3 | 144 |
|
|
0 commit comments