@@ -107,6 +107,7 @@ export default {
107
107
108
108
// Assign the button
109
109
let btn = heading . querySelector ( 'button' ) ;
110
+ let svg = heading . querySelector ( 'button > .arrow' ) ;
110
111
111
112
let links = content . querySelectorAll ( 'a' ) ;
112
113
@@ -121,11 +122,14 @@ export default {
121
122
} ;
122
123
} ) ;
123
124
124
- document . onclick = e => {
125
+ let $svgArrow = jQuery ( 'button[aria-expanded] > svg' ) ;
126
+ let $toggleButton = jQuery ( 'button[aria-expanded]' ) ;
127
+
128
+ jQuery ( $toggleButton , $svgArrow ) . click ( function ( e ) {
125
129
// Cast the state as a boolean
126
130
let expanded = btn . getAttribute ( 'aria-expanded' ) === 'true' || false ;
127
131
128
- if ( btn === e . target ) {
132
+ if ( btn === e . target || svg === e . target ) {
129
133
// Switch the state
130
134
btn . setAttribute ( 'aria-expanded' , ! expanded ) ;
131
135
// Switch the content's visibility
@@ -134,6 +138,23 @@ export default {
134
138
btn . setAttribute ( 'aria-expanded' , false ) ;
135
139
content . hidden = true ;
136
140
}
141
+ } ) ;
142
+
143
+ document . onclick = e => {
144
+ const downloadClass = 'book-header__cover__downloads' ;
145
+ const $target = jQuery ( e . target ) ;
146
+ const $downloadButton = jQuery ( `.${ downloadClass } ` ) . find ( 'button' ) ;
147
+
148
+ if ( $downloadButton . length === 0
149
+ || $target . closest ( 'div' ) . hasClass ( downloadClass )
150
+ || $target . hasClass ( 'dropdown-item' ) ) {
151
+ return ;
152
+ }
153
+
154
+ if ( $downloadButton . attr ( 'aria-expanded' ) === 'true' ) {
155
+ btn . setAttribute ( 'aria-expanded' , false ) ;
156
+ content . hidden = true ;
157
+ }
137
158
} ;
138
159
139
160
document . onkeydown = e => {
0 commit comments