File tree 3 files changed +20
-2
lines changed
3 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ export const config = {
24
24
'should not remove margin if initial label is set through binding' ,
25
25
'should re-add margin if label is added asynchronously' ,
26
26
'should properly update margin if label content is projected' ,
27
+ 'should transition correctly from initially checked to indeterminate' ,
27
28
28
29
// TODO: the focus origin behavior needs to be implemented in the MDC checkbox
29
30
'should not change focus origin if origin not specified' ,
Original file line number Diff line number Diff line change @@ -557,6 +557,21 @@ describe('MatCheckbox', () => {
557
557
'mat-checkbox-anim-unchecked-indeterminate' ,
558
558
) ;
559
559
} ) ) ;
560
+
561
+ it ( 'should transition correctly from initially checked to indeterminate' , ( ) => {
562
+ testComponent . isIndeterminate = false ;
563
+ testComponent . isChecked = true ;
564
+ fixture . detectChanges ( ) ;
565
+
566
+ expect ( checkboxNativeElement . className ) . not . toMatch ( / ^ m a t \- c h e c k b o x \- a n i m / g) ;
567
+
568
+ testComponent . isIndeterminate = testComponent . isChecked = true ;
569
+ fixture . detectChanges ( ) ;
570
+
571
+ expect ( checkboxNativeElement . classList ) . toContain (
572
+ 'mat-checkbox-anim-checked-indeterminate' ,
573
+ ) ;
574
+ } ) ;
560
575
} ) ;
561
576
562
577
describe ( `when MAT_CHECKBOX_CLICK_ACTION is 'check'` , ( ) => {
Original file line number Diff line number Diff line change @@ -332,7 +332,7 @@ export abstract class _MatCheckboxBase<E>
332
332
if ( oldState === newState || ! element ) {
333
333
return ;
334
334
}
335
- if ( this . _currentAnimationClass . length > 0 ) {
335
+ if ( this . _currentAnimationClass ) {
336
336
element . classList . remove ( this . _currentAnimationClass ) ;
337
337
}
338
338
@@ -438,7 +438,9 @@ export abstract class _MatCheckboxBase<E>
438
438
if ( newState === TransitionCheckState . Checked ) {
439
439
return this . _animationClasses . uncheckedToChecked ;
440
440
} else if ( newState == TransitionCheckState . Indeterminate ) {
441
- return this . _animationClasses . uncheckedToIndeterminate ;
441
+ return this . _checked
442
+ ? this . _animationClasses . checkedToIndeterminate
443
+ : this . _animationClasses . uncheckedToIndeterminate ;
442
444
}
443
445
break ;
444
446
case TransitionCheckState . Unchecked :
You can’t perform that action at this time.
0 commit comments