@@ -162,14 +162,34 @@ const createViewer = (
162162 transferFunctionWidget . setDataArray ( image . getPointData ( ) . getScalars ( ) ) ;
163163 }
164164
165+ const toggleUserInterfaceButton = document . getElementById ( `${ viewerDOMId } -toggleUserInterfaceButton` ) ;
166+
165167 publicAPI . setUserInterfaceCollapsed = ( collapse ) => {
166- const toggleUserInterfaceButton = document . getElementById ( `${ viewerDOMId } -toggleUserInterfaceButton` ) ;
167168 const collapsed = toggleUserInterfaceButton . getAttribute ( 'collapsed' ) === '' ;
168169 if ( collapse && ! collapsed || ! collapse && collapsed ) {
169170 toggleUserInterfaceButton . click ( ) ;
170171 }
171172 }
172173
174+ const toggleUserInterfaceCollapsedHandlers = [ ] ;
175+ const toggleUserInterfaceButtonListener = ( event ) => {
176+ const collapsed = toggleUserInterfaceButton . getAttribute ( 'collapsed' ) === '' ;
177+ toggleUserInterfaceCollapsedHandlers . forEach ( ( handler ) => {
178+ handler . call ( null , collapsed ) ;
179+ } )
180+ }
181+ toggleUserInterfaceButton . addEventListener ( 'click' , toggleUserInterfaceButtonListener )
182+
183+ publicAPI . subscribeToggleUserInterfaceCollapsed = ( handler ) => {
184+ const index = toggleUserInterfaceCollapsedHandlers . length ;
185+ toggleUserInterfaceCollapsedHandlers . push ( handler ) ;
186+ function unsubscribe ( ) {
187+ toggleUserInterfaceCollapsedHandlers [ index ] = null ;
188+ }
189+ return Object . freeze ( { unsubscribe } ) ;
190+ }
191+
192+
173193 let annotationsEnabled = true ;
174194 publicAPI . setAnnotationsEnabled = ( annotations ) => {
175195 const toggleAnnotationButton = document . getElementById ( `${ viewerDOMId } -toggleAnnotationButton` ) ;
0 commit comments