@@ -21,6 +21,7 @@ import {LAYOUT_VALUES, isFlowHorizontal} from '../../utils/layout-validator';
21
21
22
22
export interface LayoutAlignParent {
23
23
layout : string ;
24
+ inline : boolean ;
24
25
}
25
26
26
27
@Injectable ( { providedIn : 'root' } )
@@ -85,7 +86,7 @@ export class LayoutAlignStyleBuilder extends StyleBuilder {
85
86
}
86
87
87
88
return extendObject ( css , {
88
- 'display' : 'flex' ,
89
+ 'display' : parent . inline ? 'inline-flex' : 'flex' ,
89
90
'flex-direction' : parent . layout ,
90
91
'box-sizing' : 'border-box' ,
91
92
'max-width' : crossAxis === 'stretch' ?
@@ -121,6 +122,7 @@ const selector = `
121
122
export class LayoutAlignDirective extends BaseDirective2 {
122
123
protected DIRECTIVE_KEY = 'layout-align' ;
123
124
protected layout = 'row' ; // default flex-direction
125
+ protected inline = false ; // default inline value
124
126
125
127
constructor ( protected elRef : ElementRef ,
126
128
protected styleUtils : StyleUtils ,
@@ -144,24 +146,34 @@ export class LayoutAlignDirective extends BaseDirective2 {
144
146
*/
145
147
protected updateWithValue ( value : string ) {
146
148
const layout = this . layout || 'row' ;
147
- if ( layout === 'row' ) {
149
+ const inline = this . inline ;
150
+ if ( layout === 'row' && inline ) {
151
+ this . styleCache = layoutAlignHorizontalInlineCache ;
152
+ } else if ( layout === 'row' && ! inline ) {
148
153
this . styleCache = layoutAlignHorizontalCache ;
149
- } else if ( layout === 'row-reverse' ) {
154
+ } else if ( layout === 'row-reverse' && inline ) {
155
+ this . styleCache = layoutAlignHorizontalRevInlineCache ;
156
+ } else if ( layout === 'row-reverse' && ! inline ) {
150
157
this . styleCache = layoutAlignHorizontalRevCache ;
151
- } else if ( layout === 'column' ) {
158
+ } else if ( layout === 'column' && inline ) {
159
+ this . styleCache = layoutAlignVerticalInlineCache ;
160
+ } else if ( layout === 'column' && ! inline ) {
152
161
this . styleCache = layoutAlignVerticalCache ;
153
- } else if ( layout === 'column-reverse' ) {
162
+ } else if ( layout === 'column-reverse' && inline ) {
163
+ this . styleCache = layoutAlignVerticalRevInlineCache ;
164
+ } else if ( layout === 'column-reverse' && ! inline ) {
154
165
this . styleCache = layoutAlignVerticalRevCache ;
155
166
}
156
- this . addStyles ( value , { layout} ) ;
167
+ this . addStyles ( value , { layout, inline } ) ;
157
168
}
158
169
159
170
/**
160
171
* Cache the parent container 'flex-direction' and update the 'flex' styles
161
172
*/
162
173
protected onLayoutChange ( matcher : ElementMatcher ) {
163
- const layout : string = matcher . value ;
164
- this . layout = layout . split ( ' ' ) [ 0 ] ;
174
+ const layoutKeys : string [ ] = matcher . value . split ( ' ' ) ;
175
+ this . layout = layoutKeys [ 0 ] ;
176
+ this . inline = matcher . value . includes ( 'inline' ) ;
165
177
if ( ! LAYOUT_VALUES . find ( x => x === this . layout ) ) {
166
178
this . layout = 'row' ;
167
179
}
@@ -178,3 +190,7 @@ const layoutAlignHorizontalCache: Map<string, StyleDefinition> = new Map();
178
190
const layoutAlignVerticalCache : Map < string , StyleDefinition > = new Map ( ) ;
179
191
const layoutAlignHorizontalRevCache : Map < string , StyleDefinition > = new Map ( ) ;
180
192
const layoutAlignVerticalRevCache : Map < string , StyleDefinition > = new Map ( ) ;
193
+ const layoutAlignHorizontalInlineCache : Map < string , StyleDefinition > = new Map ( ) ;
194
+ const layoutAlignVerticalInlineCache : Map < string , StyleDefinition > = new Map ( ) ;
195
+ const layoutAlignHorizontalRevInlineCache : Map < string , StyleDefinition > = new Map ( ) ;
196
+ const layoutAlignVerticalRevInlineCache : Map < string , StyleDefinition > = new Map ( ) ;
0 commit comments