$(document).ready(function() { // Check for click events on the navbar burger icon $(".navbar-burger").click(function() { // Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu" $(".navbar-burger").toggleClass("is-active"); $(".navbar-menu").toggleClass("is-active"); }); var options = { slidesToScroll: 1, slidesToShow: 1, loop: true, infinite: true, autoplay: false, autoplaySpeed: 3000, } // Initialize all div with carousel class var carousels = bulmaCarousel.attach('.carousel', options); // Loop on each carousel initialized for(var i = 0; i < carousels.length; i++) { // Add listener to event carousels[i].on('before:show', state => { console.log(state); }); } // Access to bulmaCarousel instance of an element var element = document.querySelector('#my-element'); if (element && element.bulmaCarousel) { // bulmaCarousel instance is available as element.bulmaCarousel element.bulmaCarousel.on('before-show', function(state) { console.log(state); }); } var dropdowns = document.getElementsByClassName('dropdown'); for (let dropdown of dropdowns) { dropdown.addEventListener('click', function(event) { event.stopPropagation(); event.preventDefault(); dropdown.classList.toggle('is-active'); }); } // load and display default models let qids = getRandomSubarray(num_output_qs); let [folder , output_data] = read_data('Multimodal Bard'); output_data.addEventListener('load', function() { refresh_table(qids); }); [folder , output_data] = read_data('CoT GPT4 (Caption+OCR)'); output_data.addEventListener('load', function() { refresh_table(qids); }); // refresh_table(qids); let dropdown_displays = document.getElementsByClassName('dropdown-display'); let refresh_button = document.getElementById('refresh-qids'); refresh_button.addEventListener('click', function(event) { qids = getRandomSubarray(num_output_qs); refresh_table(qids); }); // let dropdown_displays = document.getElementsByClassName('dropdown-display'); let dropdown_contents = document.getElementsByClassName('dropdown-content'); for (let i = 0; i < dropdown_contents.length; i++) { // add an tag to the dropdown-content for each key in model_output_folder_list let dropdown_content = dropdown_contents[i]; for (let name in model_output_folder_list) { let a = document.createElement('a'); a.classList.add('dropdown-item'); a.innerHTML = ' ' + name + ' '; dropdown_content.appendChild(a); a.addEventListener('click', function(event) { dropdown_displays[i].innerHTML = name; let [folder, script_tag] = read_data(name); script_tag.addEventListener('load', function() { refresh_table(qids); }); }); a.style.padding = '0.375em 1em'; } } // // create the leaderboard // let leaderboard = new Tabulator("#score-table", { // data:score_table, //assign data to table // layout:"fitDataTable", // // layout:"fitColumns", // initialSort:[ // {column:"ALL", dir:"desc"}, //sort by this first // ], // autoColumns:true, //create columns from data field names // }); }) var cache = {}; var num_output_qs = 5; // var // dynamically links a js data file function read_data(model_name) { console.log('loading data for ' + model_name); let folder = model_output_folder_list[model_name]; // dynamically link the js file let script = document.createElement('script'); script.src = './data/results/' + folder + '/data.js'; document.body.appendChild(script); return [folder, script]; } function getRandomSubarray(size, arr=null) { if (arr == null) { arr = []; for (let i = 1; i < 1001; i++) { arr.push(i); } } var shuffled = arr.slice(0), i = arr.length, temp, index; while (i--) { index = Math.floor((i + 1) * Math.random()); temp = shuffled[index]; shuffled[index] = shuffled[i]; shuffled[i] = temp; } return shuffled.slice(0, size); } function refresh_table(qids) { let table = document.getElementById('result-table'); let dropdown_displays = document.getElementsByClassName('dropdown-display'); let model_names = []; for (let i = 0; i < dropdown_displays.length; i++) { model_names.push(dropdown_displays[i].innerText); } console.log(qids); console.log(model_names); while (table.children.length > 3) table.removeChild(table.lastChild); for (let qid of qids) { let row = generate_row(qid, model_names); // console.log('inserting' + row); table.insertAdjacentHTML('beforeend', row); } } function generate_row(qid, model_names) { let responses = []; for (let model_name of model_names) { if (model_name in cache) responses.push(cache[model_name][qid.toString()]); else responses.push({'response': ''}); } let html = `
${create_number(test_data[qid.toString()])}
${responses[0]['response']}
${responses[1]['response']}
`; return html; }