@@ -60,6 +60,9 @@ function RemoteFunctions(config = {}) {
6060    const  AUTO_SCROLL_SPEED  =  12 ;  // pixels per scroll 
6161    const  AUTO_SCROLL_EDGE_SIZE  =  0.05 ;  // 5% of viewport height (either top/bottom) 
6262
63+     // to track the state as we want to have a selected state for image gallery 
64+     let  imageGallerySelected  =  false ; 
65+ 
6366    /** 
6467     * this function is responsible to auto scroll the live preview when 
6568     * dragging an element to the viewport edges 
@@ -259,7 +262,12 @@ function RemoteFunctions(config = {}) {
259262     * @param  {DOMElement } element - the HTML DOM element that was clicked (should be an image) 
260263     */ 
261264    function  _handleImageGalleryOptionClick ( event ,  element )  { 
262-         if  ( ! _imageRibbonGallery )  { 
265+         dismissImageRibbonGallery ( ) ; 
266+ 
267+         if  ( imageGallerySelected )  { 
268+             imageGallerySelected  =  false ; 
269+         }  else  { 
270+             imageGallerySelected  =  true ; 
263271            _imageRibbonGallery  =  new  ImageRibbonGallery ( element ) ; 
264272        } 
265273    } 
@@ -1389,7 +1397,7 @@ function RemoteFunctions(config = {}) {
13891397                </span> 
13901398            </div>` ; 
13911399
1392-             const  styles  =  ` 
1400+             let  styles  =  ` 
13931401                :host { 
13941402                  all: initial !important; 
13951403                } 
@@ -1440,6 +1448,15 @@ function RemoteFunctions(config = {}) {
14401448                } 
14411449            ` ; 
14421450
1451+             // to highlight that in a different color, to show the selected state 
1452+             if  ( imageGallerySelected )  { 
1453+                 styles  +=  ` 
1454+                     .node-options span[data-action="image-gallery"] { 
1455+                       background-color: rgba(255, 255, 255, 0.25) !important; 
1456+                     } 
1457+                 ` ; 
1458+             } 
1459+ 
14431460            // add everything to the shadow box 
14441461            shadow . innerHTML  =  `<style>${ styles } ${ content }  ; 
14451462            this . _shadow  =  shadow ; 
@@ -2862,6 +2879,8 @@ function RemoteFunctions(config = {}) {
28622879                closeButton . addEventListener ( 'click' ,  ( e )  =>  { 
28632880                    e . stopPropagation ( ) ; 
28642881                    this . remove ( ) ; 
2882+                     imageGallerySelected  =  false ; 
2883+                     dismissUIAndCleanupState ( ) ; 
28652884                } ) ; 
28662885            } 
28672886
@@ -3584,6 +3603,12 @@ function RemoteFunctions(config = {}) {
35843603            return  false ; 
35853604        } 
35863605
3606+         // if imageGallerySelected is true, show the image gallery directly 
3607+         if ( element  &&  element . tagName . toLowerCase ( )  ===  'img'  &&  imageGallerySelected )  { 
3608+             if  ( ! _imageRibbonGallery )  { 
3609+                 _imageRibbonGallery  =  new  ImageRibbonGallery ( element ) ; 
3610+             } 
3611+         } 
35873612
35883613        // make sure that the element is actually visible to the user 
35893614        if  ( isElementVisible ( element ) )  { 
0 commit comments