$(()=>{class DefaultClass{logColor='cyan';moduleName='Unknown';log(m){console.log(`%c[${this.moduleName} LOG]: ${m}`,`color: ${this.logColor}`);} error(m){console.log(`%c[${this.moduleName} ERROR]: ${m}`,`color: indianred`);} warn(m){console.log(`%c[${this.moduleName} WARN]: ${m}`,`color: darkorange`);} purple(m){console.log(`%c[${this.moduleName} INFO]: ${m}`,`color: blueviolet`);}} class Util extends DefaultClass{logColor='cornflowerblue';moduleName='Utils';isSearching=false;searchContainer=$('.header_search_results');searchInput=$('.header_search');searchTerm='';endpoints={findCollection:'/api/index.php',};requestData(opts){return new Promise(async(resolve)=>{const xhr=new XMLHttpRequest();xhr.onload=()=>{if(xhr.status>=200&&xhr.status<300){let response=JSON.parse(xhr.responseText);try{if(opts.json&&typeof(response)!=='object'){response=JSON.parse(response);} resolve({body:response});}catch(e){console.log(response,e);this.error(e);resolve(false);}}else{this.error(`Something went wrong while fetching ${opts.endpoint}. Server responded with status code ${xhr.status}.`);resolve(false);}};xhr.open(opts.method||'GET',opts.endpoint);if(opts.json){xhr.setRequestHeader('Content-Type','application/json');} for(let h in opts.headers){xhr.setRequestHeader(h,opts.headers[h]);} if(opts.method==='POST'){if(opts.json){xhr.send(JSON.stringify(opts.body));}else{xhr.send(opts.body);}}else{xhr.send();}});} async fetchSearch(){return new Promise(async(resolve)=>{let endpoint=this.endpoints.findCollection;let data=await this.requestData({endpoint:`${endpoint}?query=search&search=${this.searchTerm}`,method:'GET',json:true});if(data&&data!==null&&data.body&&typeof(data.body)==='object'){data=data.body;if(data.reason){data.error=data.reason;}} resolve(data||false);});} async actualizeSearch(newInput){this.searchTerm=newInput;if(!this.searchContainer.is(':visible')){this.searchContainer.fadeIn();} $('.header_search_results').html(`
`);this.log(`New search query for target ${this.searchTerm}`);let results=await this.fetchSearch();if(results&&typeof(results)==='object'){let finalHtml=``;if(results.error){$('.header_search_results').html(`NOT FOUND`);}else if(results.length){this.log(`Got response.`);for(let i=0;i
verified${result.name}
${nftCount} NFTs ${certifiedMsg}
`;}} $('.header_search_results').html(finalHtml);try{resetImages();}catch(e){}}else{$('.header_search_results').html(`NOT FOUND`);}}else{$('.header_search_results').html(`NOT FOUND`);}} registerEvents(){$('[data-toggle-filter]').on('click',function(e){let Toggle=$(this).attr('data-toggle-filter');});$('[data-toggle-tab]').on('click',function(e){let ContainerElement=$(this).parent();if(!$(this).hasClass("view")){let ActiveElement=ContainerElement.children(".view");let ActiveContainerAttr=ActiveElement.attr("data-toggle-tab");let ActiveContainer=$(`#${ActiveContainerAttr}`);ContainerElement.children(".view").removeClass("view");$(this).addClass("view");let newAttr=$(this).attr("data-toggle-tab");let newContainer=$(`#${newAttr}`);newContainer.show();ActiveContainer.hide();}});$('.modal-back').on('click',function(e){let target=e.target;if($(target)){if($(target).hasClass("modal-back")){$(this).fadeOut();$('html, body').css({overflow:'auto',height:'auto'});}}});$('.header_search').on('input',(e)=>{let inputData=this.searchInput.val();if(inputData.length>0){this.actualizeSearch(inputData);}else{this.searchContainer.fadeOut();this.searchTerm='';}});$(window).on('click',(click)=>{if(this.searchContainer.is(':visible')){let targetElem=$(event.target);let targetParent=$(event.target).parent();let targetParentParent=$(event.target).parent().parent();if(targetElem.hasClass("header_search_results")||targetParent.hasClass("header_search_results")||targetParentParent.hasClass("header_search_results")||targetElem.hasClass("searchInput")||targetElem.hasClass("header_search")){}else{this.searchContainer.fadeOut();this.searchInput.val("");}}});$('#expandSidebar').on('click',()=>{let self=$('#filter_left_bar');if(self.hasClass("show")){self.removeClass("show");} else{self.addClass("show");}});$('#toggle_mobile_navigation').on('click',()=>{let Container=$('.mobile_navigation_container');if(Container.is(':visible')){$('.mobile_navigation_container').fadeOut();}else{$('.mobile_navigation_container').fadeIn();}});} init(){this.log(`Loading utils library.`);$('[data-toggle="tooltip"]').tooltip();this.registerEvents();}} (window.utils=new Util).init();});