Skip to content
This repository was archived by the owner on Jan 6, 2025. It is now read-only.

Commit dde6e87

Browse files
fix(api): layout with layoutAlign was not responding to reverse directions
fxLayoutAlign was ignoring reverse flow-directions in peer fxLayout=“row-reverse” configurations. Fixes #82.
1 parent d07f057 commit dde6e87

2 files changed

Lines changed: 24 additions & 2 deletions

File tree

‎src/lib/flexbox/api/layout-align.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export class LayoutAlignDirective extends BaseFxDirective implements OnInit, OnC
118118
* Cache the parent container 'flex-direction' and update the 'flex' styles
119119
*/
120120
private _onLayoutChange(direction) {
121-
this._layout = (direction || '').toLowerCase().replace('-reverse', '');
121+
this._layout = (direction || '').toLowerCase();
122122
if (!LAYOUT_VALUES.find(x => x === this._layout))
123123
this._layout = 'row';
124124

‎src/lib/flexbox/api/layout.spec.ts‎

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ import {BreakPointRegistry} from '../../media-query/breakpoints/break-point-regi
99
import {FlexLayoutModule} from '../_module';
1010

1111
import {customMatchers} from '../../utils/testing/custom-matchers';
12-
import {makeCreateTestComponent, makeExpectDOMFrom, expectNativeEl} from '../../utils/testing/helpers';
12+
import {makeCreateTestComponent, makeExpectDOMFrom, makeExpectDOMForQuery, expectNativeEl} from '../../utils/testing/helpers';
1313

1414
describe('layout directive', () => {
1515
let fixture: ComponentFixture<any>;
1616
let createTestComponent = makeCreateTestComponent(()=> TestLayoutComponent);
1717
let expectDOMFrom = makeExpectDOMFrom(()=> TestLayoutComponent);
18+
let expectDomForQuery = makeExpectDOMForQuery(()=> TestLayoutComponent);
1819
let activateMediaQuery = (alias, allowOverlaps?:boolean) => {
1920
let matchMedia : MockMatchMedia = fixture.debugElement.injector.get(MatchMedia);
2021
matchMedia.activate(alias,allowOverlaps);
@@ -98,6 +99,27 @@ describe('layout directive', () => {
9899

99100
});
100101

102+
it('should set row-reverse direction for nested fxLayout containers', () => {
103+
let template = `
104+
<div [fxLayout]="direction" (click)="toggleDirection()" class="colored box" >
105+
<div fxFlex="20"> fxFlex="20" </div>
106+
<div fxFlex="60"> outer fxFlex="60"
107+
<div fxLayout="row-reverse" fxLayoutAlign="center center" class="colored box" >
108+
<div fxFlex="20"> inner fxFlex="20" </div>
109+
<div fxFlex="60"> inner fxFlex="60" </div>
110+
<div fxFlex > inner fxFlex </div>
111+
</div>
112+
</div>
113+
<div fxFlex > fxFlex </div>
114+
</div>
115+
`;
116+
117+
expectDomForQuery( template,"[fxLayout='row-reverse']" )
118+
.toHaveCssStyle({
119+
'flex-direction' : 'row-reverse',
120+
});
121+
});
122+
101123
});
102124

103125
describe('with responsive features', () => {

0 commit comments

Comments
 (0)