1(function ($){ 2const groupAccordions=$(".wp-block-aab-group-accordion"); 3let id=0; 4$.each(groupAccordions, function (index, item){ 5const accordionId=$(item).attr('id'); 6const parentDiv=$(`#${accordionId}`); 7const accordionItems=$(parentDiv).children('.wp-block-aab-accordion-item.aagb__accordion_container.step'); 8const accordionCompletionStatus={}; 9const accordionStatusCookie=JSON.parse(getCookie(`aab-completion-status-${accordionId}`)); 10$.each(accordionItems, function (index, accordionItem){ 11const accordionHead=$(accordionItem).children('.aagb__accordion_head'); 12const accordionBody=$(accordionItem).children('.aagb__accordion_body'); 13const accordionBodyContinue=$(accordionBody).children('.continue'); 14const completeSign=$(accordionHead).find('.complete-sign'); 15const aagbIcon=$(accordionHead).find('.aagb__icon'); 16const $stepResult=$("#" + accordionId).find('> .step-result'); 17if(accordionStatusCookie!==null){ 18accordionCompletionStatus[index]=accordionStatusCookie[index]||false; 19if(accordionCompletionStatus[index]){ 20completeSign.show(); 21aagbIcon.hide(); 22accordionBodyContinue.hide(); 23}}else{ 24accordionCompletionStatus[index]=false; 25} 26accordionBodyContinue.on('click', function (e){ 27completeSign.show(); 28accordionHead.click(); 29accordionCompletionStatus[index]=true; 30aagbIcon.hide(); 31accordionBodyContinue.hide(); 32setCookie('aab-completion-status-' + accordionId, JSON.stringify(accordionCompletionStatus), 30); 33updateProgressBasedOnActiveSection(accordionId, parentDiv.find("#progressBarFill")); 34if(allAccordionsCompleted(accordionCompletionStatus, accordionItems)){ 35$stepResult.css('display', 'block'); 36setTimeout(()=> { 37$stepResult.hide(); 38}, 5000) 39}else{ 40let nextIndex=index + 1; 41while (nextIndex < accordionItems.length){ 42if(!accordionCompletionStatus[nextIndex]){ 43accordionItems.eq(nextIndex).find("> .aagb__accordion_head").click(); 44break; 45} 46nextIndex++; 47} 48if(nextIndex >=accordionItems.length){ 49nextIndex=0; 50while (nextIndex < index){ 51if(!accordionCompletionStatus[nextIndex]){ 52accordionItems.eq(nextIndex).find('> .aagb__accordion_head').click(); 53break; 54} 55nextIndex++; 56}} 57}}) 58}) 59const lastAccordionItem=accordionItems.last(); 60const lastAccordionItemStepText=lastAccordionItem.find('> .aagb__accordion_body').children('.continue').find('.step-text'); 61if(lastAccordionItemStepText.length > 0){ 62lastAccordionItemStepText.text("End"); 63} 64const accordionCheckListItems=$(parentDiv).children('.wp-block-aab-accordion-item.aagb__accordion_container.check-list'); 65if(accordionCheckListItems.length){ 66let checklistItems=[]; 67const checklistItemsCookie=JSON.parse(getCookie(`aab-checklist-status-${accordionId}`)); 68if(checklistItemsCookie!==null){ 69checklistItems=checklistItemsCookie; 70} 71$.each(accordionCheckListItems, function (index, item){ 72const checklistBox=$(item).find('> .aagb__accordion_head .checklist-box'); 73const aagb__accordion_title=$(item).find('> .aagb__accordion_head .aagb__accordion_title'); 74let isChecked=false; 75if(checklistItemsCookie==null){ 76const checklistItemsObj={[`${index}`]: false}; 77checklistItems.push(checklistItemsObj); 78}else{ 79$.each(checklistItems, function (checklistItemsIndex, checklistItem){ 80if(index===checklistItemsIndex){ 81if(checklistItem[checklistItemsIndex]===true){ 82checklistBox.prop('checked', true); 83aagb__accordion_title.toggleClass('line-through'); 84}} 85}); 86} 87checklistBox.change(function (){ 88aagb__accordion_title.toggleClass('line-through'); 89isChecked=checklistBox.is(':checked'); 90checklistItems[index]={[`${index}`]: isChecked}; 91setCookie('aab-checklist-status-' + accordionId, JSON.stringify(checklistItems), 30); 92const checklistStatus={}; 93checklistItems.forEach((item, idx)=> { 94checklistStatus[idx]=item[idx]; 95}); 96updateProgressBasedOnActiveSection(accordionId, parentDiv.find("#progressBarFill")); 97}); 98}); 99}}) 100function allAccordionsCompleted(status, items){ 101for (let i=0; i < items.length; i++){ 102if(!status[i]){ 103return false; 104}} 105return true; 106} 107$(".aagb__accordion_component.read-more-btn").each(function (){ 108const textMax=$(this).data('contentcount'); 109const paragraph=$(this).find("p:first"); 110const fullText=paragraph.text(); 111if(paragraph.text().length > textMax){ 112const slicedText=fullText.slice(0, textMax); 113paragraph.text(slicedText + '...').show(); 114paragraph.data("full-text", fullText); 115$(this).children().not(paragraph).not('.aagb_overlay').fadeOut();
116$(this).siblings(".aagb_button_toggle").click(function (e){ 117e.preventDefault(); 118const $btn=$(this); 119const $body=$btn.closest(".aagb__accordion_body"); 120const $component=$body.find(".aagb__accordion_component"); 121const $overlay=$body.find(".aagb_overlay"); 122const startHeight=$component.height(); 123paragraph.text(fullText); 124$component.children().not('.aagb_overlay').show(); 125const endHeight=$component.height(); 126$component 127.css({ height: startHeight, overflow: "hidden" }) 128.animate({ height: endHeight }, "slow", function (){ 129$component.css({ height: "", overflow: "" }); 130}); 131$btn.fadeOut("slow"); 132$overlay.fadeOut("slow").removeClass("aagb_overlay"); 133}); 134}else{ 135$(this).siblings(".aagb_button_toggle").remove(); 136$(this).closest(".aagb__accordion_body").find(".aagb_overlay").remove(); 137}}); 138function setCookie(name, value, days){ 139let expires=""; 140if(days){ 141let date=new Date(); 142date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 143expires="; expires=" + date.toUTCString(); 144} 145document.cookie=name + "=" + (value||"") + expires + "; path=/"; 146} 147function getCookie(name){ 148let nameEQ=name + "="; 149let ca=document.cookie.split(';'); 150for (let i=0; i < ca.length; i++){ 151let c=ca[i]; 152while (c.charAt(0)==' ') c=c.substring(1, c.length); 153if(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length, c.length); 154} 155return null; 156} 157if($('.wp-block-aab-group-accordion').length){ 158$(".wp-block-aab-group-accordion").each(function (){ 159const $groupAccordion=$(this); 160const $accordionItems=$groupAccordion.find('> .wp-block-aab-accordion-item'); 161const $searchContainer=$groupAccordion.find('> .aagb_form_inner'); 162const $search=$searchContainer.find('> .aagb_form_group .aagb-search-control'); 163const $searchHelp=$searchContainer.find('> .help-block'); 164const $searchWrapperBtn=$groupAccordion.find('> .aagb_accordion_wrapper_btn'); 165const $showMoreBtn=$groupAccordion.find('> .aab-show-more-btn-container .show-more-btn'); 166const $showLessBtn=$groupAccordion.find('> .aab-show-more-btn-container .show-less-btn'); 167let itemsPerClick=Number($showMoreBtn.data('items-to-show')); 168let itemsToShow=itemsPerClick; 169let filterClass=''; 170let searchTxt=''; 171let searchTimeout; 172$search.on('input', function (){ 173clearTimeout(searchTimeout); 174searchTimeout=setTimeout(()=> { 175searchTxt=$search.val(); 176loadAccordions(); 177}, 300); 178}); 179$search.one('focus input', function (){ 180$accordionItems.each(function (){ 181if(!$(this).data('search-content')){ 182$(this).data('search-content', $(this).text().toLowerCase()); 183}}); 184}); 185function loadAccordions(){ 186let _targetItems=$accordionItems; 187_targetItems.hide(); 188if(filterClass) _targetItems=_targetItems.filter(`.${filterClass}`); 189$searchContainer.removeClass('has-success has-error'); 190$groupAccordion?.unmark?.(); 191$searchHelp.hide(); 192if(searchTxt){ 193$searchHelp.show(); 194const searchLower=searchTxt.toLowerCase(); 195_targetItems=_targetItems.filter(function(){ 196const content=$(this).data('search-content')||$(this).text().toLowerCase(); 197return content.includes(searchLower); 198}); 199if(_targetItems.length){ 200$searchHelp.text(`${_targetItems.length} question(s) found.`); 201$searchContainer.addClass('has-success'); 202_targetItems?.mark?.(searchTxt); 203$searchWrapperBtn.show(); 204}else{ 205$searchContainer.addClass('has-error'); 206$searchHelp.text('No questions found.'); 207$searchWrapperBtn.hide(); 208}} 209$showMoreBtn.parent()?.show(); 210if(itemsToShow > 0){ 211let loaded=0; 212_targetItems.each(function (){ 213$(this).hide(); 214if(loaded < itemsToShow){ 215$(this).show(); 216loaded++; 217}}); 218if(loaded >=_targetItems.length){ 219$showMoreBtn.hide(); 220$showLessBtn.show(0, function (){ 221$(this).css("display", "flex"); 222}); 223$showLessBtn.parent()?.css("background-color", "#ffffff00"); 224if(loaded <=itemsPerClick) $showMoreBtn.parent()?.hide(); 225}else{ 226$showMoreBtn.show(); 227$showLessBtn.hide(); 228}}else{ 229_targetItems.show(); 230$showMoreBtn?.parent()?.hide(); 231}} 232var filterButtons=$(this).find('> .aab-filter-button-group button'); 233var allButton=$(this).find('> .aab-filter-button-group .cat_all_item'); 234filterButtons.on('click', function (){ 235filterClass=$(this).data('filter'); 236filterButtons.removeClass('active'); 237allButton.removeClass('active'); 238$(this).addClass('active'); 239loadAccordions(); 240}); 241allButton.on('click', function (){ 242filterButtons.removeClass('active'); 243$(this).addClass('active'); 244filterClass=''; 245loadAccordions(); 246}); 247allButton.click(); 248loadAccordions(); 249$showMoreBtn.on('click', function (){ 250itemsToShow +=itemsPerClick; 251loadAccordions(); 252$showLessBtn.focus(); 253}); 254$showLessBtn.on('click', function (){ 255itemsToShow=itemsPerClick; 256loadAccordions(); 257$showMoreBtn.focus(); 258}); 259}); 260} 261function updateProgressBasedOnActiveSection(accordionId, $progressBarFill){ 262const $groupAccordion=$('#' + accordionId); 263const $stepAccordionItems=$groupAccordion.children('.wp-block-aab-accordion-item.aagb__accordion_container.step' 264); 265const $checklistAccordionItems=$groupAccordion.children('.wp-block-aab-accordion-item.aagb__accordion_container.check-list' 266); 267const $progressText=$groupAccordion.find('.aab-progress-text'); 268let completedCount=0, 269totalCount=0, 270percentage=0; 271if($stepAccordionItems.length&&$stepAccordionItems.is(':visible')){ 272const stepStatus=JSON.parse(getCookie(`aab-completion-status-${accordionId}`)||'{}' 273); 274totalCount=$stepAccordionItems.length; 275for (let i=0; i < totalCount; i++) 276if(stepStatus[i]) completedCount++; 277}else if($checklistAccordionItems.length && 278$checklistAccordionItems.is(':visible') 279){ 280const checklistStatus=JSON.parse(getCookie(`aab-checklist-status-${accordionId}`)||'[]' 281); 282totalCount=$checklistAccordionItems.length; 283for (let i=0; i < totalCount; i++) 284if(checklistStatus[i]&&checklistStatus[i][i]) 285completedCount++; 286} 287percentage=totalCount > 0 ? (completedCount / totalCount) * 100:0; 288$progressBarFill.css('width', `${percentage}%`); 289$progressText.text(`${Math.round(percentage)}%`); 290setCookie(`aab-progress-${accordionId}`, percentage, 30); 291} 292$(document).ready(function (){ 293$('.wp-block-aab-group-accordion').each(function (){ 294const accordionId=$(this).attr('id'); 295updateProgressBasedOnActiveSection( 296accordionId, 297$(this).find('#progressBarFill') 298); 299}); 300}); 301})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.