|
@@ -4,20 +4,22 @@ function inputAccordionChecked(id, checked) {
|
|
|
accordion.onVisibleCheckboxChange();
|
|
|
}
|
|
|
|
|
|
-function setupAccordion(accordion){
|
|
|
+function setupAccordion(accordion) {
|
|
|
var labelWrap = accordion.querySelector('.label-wrap');
|
|
|
var gradioCheckbox = gradioApp().querySelector('#' + accordion.id + "-checkbox input");
|
|
|
var extra = gradioApp().querySelector('#' + accordion.id + "-extra");
|
|
|
var span = labelWrap.querySelector('span');
|
|
|
var linked = true;
|
|
|
|
|
|
- var isOpen = function(){ return labelWrap.classList.contains('open'); }
|
|
|
+ var isOpen = function() {
|
|
|
+ return labelWrap.classList.contains('open');
|
|
|
+ };
|
|
|
|
|
|
var observerAccordionOpen = new MutationObserver(function(mutations) {
|
|
|
mutations.forEach(function(mutationRecord) {
|
|
|
accordion.classList.toggle('input-accordion-open', isOpen());
|
|
|
|
|
|
- if(linked){
|
|
|
+ if (linked) {
|
|
|
accordion.visibleCheckbox.checked = isOpen();
|
|
|
accordion.onVisibleCheckboxChange();
|
|
|
}
|
|
@@ -29,22 +31,22 @@ function setupAccordion(accordion){
|
|
|
labelWrap.insertBefore(extra, labelWrap.lastElementChild);
|
|
|
}
|
|
|
|
|
|
- accordion.onChecked = function(checked){
|
|
|
+ accordion.onChecked = function(checked) {
|
|
|
if (isOpen() != checked) {
|
|
|
labelWrap.click();
|
|
|
}
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
var visibleCheckbox = document.createElement('INPUT');
|
|
|
visibleCheckbox.type = 'checkbox';
|
|
|
visibleCheckbox.checked = isOpen();
|
|
|
- visibleCheckbox.id = accordion.id + "-visible-checkbox";
|
|
|
+ visibleCheckbox.id = accordion.id + "-visible-checkbox";
|
|
|
visibleCheckbox.className = gradioCheckbox.className + " input-accordion-checkbox";
|
|
|
span.insertBefore(visibleCheckbox, span.firstChild);
|
|
|
|
|
|
accordion.visibleCheckbox = visibleCheckbox;
|
|
|
- accordion.onVisibleCheckboxChange = function(){
|
|
|
- if(linked && isOpen() != visibleCheckbox.checked) {
|
|
|
+ accordion.onVisibleCheckboxChange = function() {
|
|
|
+ if (linked && isOpen() != visibleCheckbox.checked) {
|
|
|
labelWrap.click();
|
|
|
}
|
|
|
|
|
@@ -52,7 +54,7 @@ function setupAccordion(accordion){
|
|
|
updateInput(gradioCheckbox);
|
|
|
};
|
|
|
|
|
|
- visibleCheckbox.addEventListener('click', function(event){
|
|
|
+ visibleCheckbox.addEventListener('click', function(event) {
|
|
|
linked = false;
|
|
|
event.stopPropagation();
|
|
|
});
|