ecs-admin.js
36 lines
| 1 | ( function () { |
| 2 | 'use strict'; |
| 3 | |
| 4 | document.addEventListener( 'DOMContentLoaded', function () { |
| 5 | |
| 6 | // ── Preview popups (click-to-toggle) ─────────────────────────── |
| 7 | document.querySelectorAll( '.ecs-preview-btn' ).forEach( function ( btn ) { |
| 8 | btn.addEventListener( 'click', function ( e ) { |
| 9 | e.stopPropagation(); |
| 10 | var wrap = btn.closest( '.ecs-preview-wrap' ); |
| 11 | var isOpen = wrap.classList.contains( 'is-open' ); |
| 12 | |
| 13 | // Close all open popups first. |
| 14 | document.querySelectorAll( '.ecs-preview-wrap.is-open' ).forEach( function ( w ) { |
| 15 | w.classList.remove( 'is-open' ); |
| 16 | w.querySelector( '.ecs-preview-btn' ).classList.remove( 'is-active' ); |
| 17 | } ); |
| 18 | |
| 19 | if ( ! isOpen ) { |
| 20 | wrap.classList.add( 'is-open' ); |
| 21 | btn.classList.add( 'is-active' ); |
| 22 | } |
| 23 | } ); |
| 24 | } ); |
| 25 | |
| 26 | // Close on click outside. |
| 27 | document.addEventListener( 'click', function () { |
| 28 | document.querySelectorAll( '.ecs-preview-wrap.is-open' ).forEach( function ( w ) { |
| 29 | w.classList.remove( 'is-open' ); |
| 30 | w.querySelector( '.ecs-preview-btn' ).classList.remove( 'is-active' ); |
| 31 | } ); |
| 32 | } ); |
| 33 | |
| 34 | } ); |
| 35 | } )(); |
| 36 |