@@ -28,24 +28,23 @@ angular.module('ui.bootstrap.collapse', ['ui.bootstrap.transition'])
28
28
function expand ( ) {
29
29
if ( initialAnimSkip ) {
30
30
initialAnimSkip = false ;
31
- element . removeClass ( 'collapsing' ) ;
32
- element . addClass ( 'collapse in' ) ;
33
- element . css ( { height : 'auto' } ) ;
31
+ expandDone ( ) ;
34
32
} else {
35
33
element . removeClass ( 'collapse' ) . addClass ( 'collapsing' ) ;
36
- doTransition ( { height : element [ 0 ] . scrollHeight + 'px' } ) . then ( function ( ) {
37
- element . removeClass ( 'collapsing' ) ;
38
- element . addClass ( 'collapse in' ) ;
39
- element . css ( { height : 'auto' } ) ;
40
- } ) ;
34
+ doTransition ( { height : element [ 0 ] . scrollHeight + 'px' } ) . then ( expandDone ) ;
41
35
}
42
36
}
43
37
38
+ function expandDone ( ) {
39
+ element . removeClass ( 'collapsing' ) ;
40
+ element . addClass ( 'collapse in' ) ;
41
+ element . css ( { height : 'auto' } ) ;
42
+ }
43
+
44
44
function collapse ( ) {
45
45
if ( initialAnimSkip ) {
46
46
initialAnimSkip = false ;
47
- element . removeClass ( 'collapsing' ) ;
48
- element . addClass ( 'collapse' ) ;
47
+ collapseDone ( ) ;
49
48
element . css ( { height : 0 } ) ;
50
49
} else {
51
50
// CSS transitions don't work with height: auto, so we have to manually change the height to a specific value
@@ -55,13 +54,15 @@ angular.module('ui.bootstrap.collapse', ['ui.bootstrap.transition'])
55
54
56
55
element . removeClass ( 'collapse in' ) . addClass ( 'collapsing' ) ;
57
56
58
- doTransition ( { height : 0 } ) . then ( function ( ) {
59
- element . removeClass ( 'collapsing' ) ;
60
- element . addClass ( 'collapse' ) ;
61
- } ) ;
57
+ doTransition ( { height : 0 } ) . then ( collapseDone ) ;
62
58
}
63
59
}
64
60
61
+ function collapseDone ( ) {
62
+ element . removeClass ( 'collapsing' ) ;
63
+ element . addClass ( 'collapse' ) ;
64
+ }
65
+
65
66
scope . $watch ( attrs . collapse , function ( shouldCollapse ) {
66
67
if ( shouldCollapse ) {
67
68
collapse ( ) ;
0 commit comments