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

Commit 4076cf4

Browse files
fix(fxLayoutAlign): support flex-start and flex-end options
Current API translates `start` and `end` to `flex-start` and `flex-end` respectively. The API should also support the raw flex-<xxx> values. Fixes #232.
1 parent 3743282 commit 4076cf4

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

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

+11
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ describe('layout-align directive', () => {
8282
extendObject({'justify-content': 'flex-start'}, CROSSAXIS_DEFAULTS)
8383
);
8484
});
85+
it('should add correct styles for `fxLayoutAlign="flex-start"` usage', () => {
86+
expectDOMFrom(`<div fxLayoutAlign="flex-start"></div>`).toHaveCssStyle(
87+
extendObject({'justify-content': 'flex-start'}, CROSSAXIS_DEFAULTS)
88+
);
89+
});
8590
it('should add correct styles for `fxLayoutAlign="center"` usage', () => {
8691
expectDOMFrom(`<div fxLayoutAlign="center"></div>`).toHaveCssStyle(
8792
extendObject({'justify-content': 'center'}, CROSSAXIS_DEFAULTS)
@@ -102,6 +107,11 @@ describe('layout-align directive', () => {
102107
extendObject({'justify-content': 'flex-end'}, CROSSAXIS_DEFAULTS)
103108
);
104109
});
110+
it('should add correct styles for `fxLayoutAlign="flex-end"` usage', () => {
111+
expectDOMFrom(`<div fxLayoutAlign="flex-end"></div>`).toHaveCssStyle(
112+
extendObject({'justify-content': 'flex-end'}, CROSSAXIS_DEFAULTS)
113+
);
114+
});
105115
it('should add ignore invalid main-axis values', () => {
106116
expectDOMFrom(`<div fxLayoutAlign="invalid"></div>`).toHaveCssStyle(
107117
extendObject({'justify-content': 'flex-start'}, CROSSAXIS_DEFAULTS)
@@ -121,6 +131,7 @@ describe('layout-align directive', () => {
121131
it('should add correct styles for `fxLayoutAlign="start baseline"` usage', () => {
122132
expectDOMFrom(`<div fxLayoutAlign="start baseline"></div>`).toHaveCssStyle(
123133
extendObject(MAINAXIS_DEFAULTS, {
134+
'justify-content': 'flex-start',
124135
'align-items': 'baseline',
125136
'align-content': 'stretch'
126137
})

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

+12-2
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,6 @@ export class LayoutAlignDirective extends BaseFxDirective implements OnInit, OnC
142142
let css = {}, [main_axis, cross_axis] = align.split(' '); // tslint:disable-line:variable-name
143143

144144
css['justify-content'] = 'flex-start'; // default main axis
145-
css['align-items'] = 'stretch'; // default cross axis
146-
css['align-content'] = 'stretch'; // default cross axis
147145

148146
// Main axis
149147
switch (main_axis) {
@@ -157,12 +155,22 @@ export class LayoutAlignDirective extends BaseFxDirective implements OnInit, OnC
157155
css['justify-content'] = 'space-between';
158156
break;
159157
case 'end':
158+
case 'flex-end':
160159
css['justify-content'] = 'flex-end';
161160
break;
161+
case 'start':
162+
case 'flex-start':
163+
default :
164+
break;
162165
}
166+
167+
css['align-items'] = 'stretch'; // default cross axis
168+
css['align-content'] = 'stretch'; // default cross axis
169+
163170
// Cross-axis
164171
switch (cross_axis) {
165172
case 'start':
173+
case 'flex-start':
166174
css['align-items'] = css['align-content'] = 'flex-start';
167175
break;
168176
case 'baseline':
@@ -172,8 +180,10 @@ export class LayoutAlignDirective extends BaseFxDirective implements OnInit, OnC
172180
css['align-items'] = css['align-content'] = 'center';
173181
break;
174182
case 'end':
183+
case 'flex-end':
175184
css['align-items'] = css['align-content'] = 'flex-end';
176185
break;
186+
case 'stretch':
177187
default : // 'stretch'
178188
break;
179189
}

0 commit comments

Comments
 (0)