@@ -32,17 +32,28 @@ export type NgClassType = string | string[] | Set<string> | {[klass: string]: an
32
32
*/
33
33
@Directive ( {
34
34
selector : `
35
+ [class],
35
36
[class.xs], [class.sm], [class.md], [class.lg], [class.xl],
36
37
[class.lt-sm], [class.lt-md], [class.lt-lg], [class.lt-xl],
37
- [class.gt-xs], [class.gt-sm], [class.gt-md], [class.gt-lg],
38
-
38
+ [class.gt-xs], [class.gt-sm], [class.gt-md], [class.gt-lg],
39
+ [ngClass],
39
40
[ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl],
40
41
[ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl],
41
42
[ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]
42
43
`
43
44
} )
44
45
export class ClassDirective extends NgClass implements OnInit , OnChanges , OnDestroy {
45
46
47
+ /**
48
+ * Intercept ngClass assignments so we cache the default classes
49
+ * which are merged with activated styles or used as fallbacks.
50
+ */
51
+ @Input ( 'ngClass' )
52
+ set ngClassBase ( val : NgClassType ) {
53
+ this . _base . cacheInput ( 'class' , val , true ) ;
54
+ this . ngClass = this . _base . inputMap [ 'class' ] ;
55
+ }
56
+
46
57
/* tslint:disable */
47
58
@Input ( 'ngClass.xs' ) set ngClassXs ( val : NgClassType ) { this . _base . cacheInput ( 'classXs' , val , true ) ; }
48
59
@Input ( 'ngClass.sm' ) set ngClassSm ( val : NgClassType ) { this . _base . cacheInput ( 'classSm' , val , true ) ; } ;
@@ -61,6 +72,7 @@ export class ClassDirective extends NgClass implements OnInit, OnChanges, OnDest
61
72
@Input ( 'ngClass.gt-lg' ) set ngClassGtLg ( val : NgClassType ) { this . _base . cacheInput ( 'classGtLg' , val , true ) ; } ;
62
73
63
74
/** Deprecated selectors */
75
+ @Input ( 'class' ) set classBase ( val : NgClassType ) { this . _base . cacheInput ( 'class' , val , true ) ; }
64
76
@Input ( 'class.xs' ) set classXs ( val : NgClassType ) { this . _base . cacheInput ( 'classXs' , val , true ) ; }
65
77
@Input ( 'class.sm' ) set classSm ( val : NgClassType ) { this . _base . cacheInput ( 'classSm' , val , true ) ; } ;
66
78
@Input ( 'class.md' ) set classMd ( val : NgClassType ) { this . _base . cacheInput ( 'classMd' , val , true ) ; } ;
@@ -94,7 +106,7 @@ export class ClassDirective extends NgClass implements OnInit, OnChanges, OnDest
94
106
return ( `ngClass${ it . suffix } ` in changes ) || ( `class${ it . suffix } ` in changes ) ;
95
107
} ) ;
96
108
if ( changed || this . _base . mqActivation ) {
97
- this . _updateStyle ( ) ;
109
+ this . _updateClass ( ) ;
98
110
}
99
111
}
100
112
@@ -104,16 +116,16 @@ export class ClassDirective extends NgClass implements OnInit, OnChanges, OnDest
104
116
*/
105
117
ngOnInit ( ) {
106
118
this . _base . listenForMediaQueryChanges ( 'class' , '' , ( changes : MediaChange ) => {
107
- this . _updateStyle ( changes . value ) ;
119
+ this . _updateClass ( changes . value ) ;
108
120
} ) ;
109
- this . _updateStyle ( ) ;
121
+ this . _updateClass ( ) ;
110
122
}
111
123
112
124
ngOnDestroy ( ) {
113
125
this . _base . ngOnDestroy ( ) ;
114
126
}
115
127
116
- protected _updateStyle ( value ?: NgClassType ) {
128
+ protected _updateClass ( value ?: NgClassType ) {
117
129
let clazz = value || this . _base . queryInput ( "class" ) || '' ;
118
130
if ( this . _base . mqActivation ) {
119
131
clazz = this . _base . mqActivation . activatedInput ;
0 commit comments