| let dynthres_update_enabled = function() { | |
| return Array.from(arguments); | |
| }; | |
| (function(){ | |
| let accordions = {}; | |
| let enabled = {}; | |
| onUiUpdate(() => { | |
| let accordion_id_prefix = "#dynthres_"; | |
| let extension_checkbox_class = ".dynthres-enabled"; | |
| dynthres_update_enabled = function() { | |
| let res = Array.from(arguments); | |
| let tabname = res[1] ? "img2img" : "txt2img"; | |
| let checkbox = accordions[tabname]?.querySelector(extension_checkbox_class + ' input'); | |
| checkbox?.dispatchEvent(new Event('change')); | |
| return res; | |
| }; | |
| function attachEnabledButtonListener(checkbox, accordion) { | |
| let span = accordion.querySelector('.label-wrap span'); | |
| let badge = document.createElement('input'); | |
| badge.type = "checkbox"; | |
| badge.checked = checkbox.checked; | |
| badge.addEventListener('click', (e) => { | |
| checkbox.checked = !checkbox.checked; | |
| badge.checked = checkbox.checked; | |
| checkbox.dispatchEvent(new Event('change')); | |
| e.stopPropagation(); | |
| }); | |
| badge.className = checkbox.className; | |
| badge.classList.add('primary'); | |
| span.insertBefore(badge, span.firstChild); | |
| let space = document.createElement('span'); | |
| space.innerHTML = " "; | |
| span.insertBefore(space, badge.nextSibling); | |
| checkbox.addEventListener('change', () => { | |
| let badge = accordion.querySelector('.label-wrap span input'); | |
| badge.checked = checkbox.checked; | |
| }); | |
| checkbox.parentNode.style.display = "none"; | |
| } | |
| if (Object.keys(accordions).length < 2) { | |
| let accordion = gradioApp().querySelector(accordion_id_prefix + 'txt2img'); | |
| if (accordion) { | |
| accordions.txt2img = accordion; | |
| } | |
| accordion = gradioApp().querySelector(accordion_id_prefix + 'img2img'); | |
| if (accordion) { | |
| accordions.img2img = accordion; | |
| } | |
| } | |
| if (Object.keys(accordions).length > 0 && accordions.txt2img && !enabled.txt2img) { | |
| enabled.txt2img = accordions.txt2img.querySelector(extension_checkbox_class + ' input'); | |
| attachEnabledButtonListener(enabled.txt2img, accordions.txt2img); | |
| } | |
| if (Object.keys(accordions).length > 0 && accordions.img2img && !enabled.img2img) { | |
| enabled.img2img = accordions.img2img.querySelector(extension_checkbox_class + ' input'); | |
| attachEnabledButtonListener(enabled.img2img, accordions.img2img); | |
| } | |
| }); | |
| })(); | |