UNPKG

ajax-table

Version:

Handles a table loading with AJAX

2 lines (1 loc) 26.3 kB
"use strict";function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function(){};return{s:F,n:function(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var _ajaxTable=[];(function($){$.fn.extend({ajaxTable:function(options){var _Mathfloor=Math.floor;function mergeSort(array,comparefn){function merge(arr,aux,lo,mid,hi,comparefn){for(var cmp,i=lo,j=mid+1,k=lo;;)if(cmp=comparefn(arr[i],arr[j]),0>=cmp){if(aux[k++]=arr[i++],i>mid){do aux[k++]=arr[j++];while(j<=hi);break}}else if(aux[k++]=arr[j++],j>hi){do aux[k++]=arr[i++];while(i<=mid);break}}function sortarrtoaux(arr,aux,lo,hi,comparefn){if(!(hi<lo)){if(hi==lo)return void(aux[lo]=arr[lo]);var mid=_Mathfloor(lo+(hi-lo)/2);sortarrtoarr(arr,aux,lo,mid,comparefn),sortarrtoarr(arr,aux,mid+1,hi,comparefn),merge(arr,aux,lo,mid,hi,comparefn)}}function sortarrtoarr(arr,aux,lo,hi,comparefn){if(!(hi<=lo)){var mid=_Mathfloor(lo+(hi-lo)/2);sortarrtoaux(arr,aux,lo,mid,comparefn),sortarrtoaux(arr,aux,mid+1,hi,comparefn),merge(aux,arr,lo,mid,hi,comparefn)}}return function(arr,comparefn){var aux=arr.slice(0);return sortarrtoarr(arr,aux,0,arr.length-1,comparefn),arr}(array,comparefn)}function htmlToElement(html){var template=document.createElement("template");return html=html.trim(),template.innerHTML=html,template.content.firstChild}function paginationDisplay(currentPage,pageCount){var result=[];return result=Array.from({length:pageCount},function(v,k){return k+1}).filter(function(i){return i&&i>=currentPage-2&&i<currentPage+2+1}),1<result.length&&(1<result[0]&&(2<result[0]&&result.unshift("..."),result.unshift(1)),result[result.length-1]<pageCount&&(result[result.length-1]!==pageCount-1&&result.push("..."),result.push(pageCount))),result}function updateNav(utilities,targetedPage,pageCount,i){$(".pagination-page,.pagination-etc",utilities).remove(),1==targetedPage?$(".pagination-prev",utilities).addClass("disabled"):$(".pagination-prev",utilities).removeClass("disabled"),targetedPage<pageCount?$(".pagination-next",utilities).removeClass("disabled"):$(".pagination-next",utilities).addClass("disabled");var _step,_iterator=_createForOfIteratorHelper(paginationDisplay(_ajaxTable[i].page,pageCount));try{for(_iterator.s();!(_step=_iterator.n()).done;)li=_step.value,$(".pagination-next",utilities).before("<li class=\""+("..."==li?"pagination-etc":"pagination-page")+(li==targetedPage?" active":"")+"\" data-page=\""+li+"\">"+li+"</li>")}catch(err){_iterator.e(err)}finally{_iterator.f()}_ajaxTable[i].page=targetedPage,$("#ajax-table-item-start-id",utilities).text(10*(_ajaxTable[i].page-1)+1>_ajaxTable[i].filteredTotal?_ajaxTable[i].filteredTotal:10*(_ajaxTable[i].page-1)+1),$("#ajax-table-item-end-id",utilities).text(10*_ajaxTable[i].page>_ajaxTable[i].filteredTotal?_ajaxTable[i].filteredTotal:10*_ajaxTable[i].page),$("#ajax-table-item-filtered-total",utilities).text(_ajaxTable[i].filteredTotal),$("#ajax-table-item-total",utilities).text(_ajaxTable[i].total)}function updateTable(table,i){$("tbody",table).empty().append(_ajaxTable[i].filteredData.slice(10*(_ajaxTable[i].page-1),10*_ajaxTable[i].page)),_ajaxTable[i].filteredData.slice(10*(_ajaxTable[i].page-1),10*_ajaxTable[i].page).length||$("tbody",table).append("<tr><td class=\"empty\" colspan=\""+_ajaxTable[i].columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>");var pageCount=_Mathfloor((_ajaxTable[i].filteredTotal-1)/10)+1;updateNav($(table).next(),_ajaxTable[i].page,pageCount,i)}function paginationHandler(table,i,targetedPage,pagination){var dataGathering=new Promise(function(resolve,reject){if(settings.source&&!_ajaxTable[i].dataFullyLoaded&&(!_ajaxTable[i].activeSearch&&!_ajaxTable[i].silentData[targetedPage]||_ajaxTable[i].activeSearch)){settings.beforeAjax.call(void 0,table,_ajaxTable[i]),settings.logging&&console.log("ajaxTable calling source..."),SlickLoader.enable();var data={page:targetedPage,orderBy:_ajaxTable[i].orderBy,order:_ajaxTable[i].orderSort,search:_ajaxTable[i].search,searchPatterns:_ajaxTable[i].searchPatterns,columns:_ajaxTable[i].columns,total:!0,context:settings.sourceContext};$.post({url:settings.source,data:"application/json"==settings.contentType?JSON.stringify(data):data,contentType:settings.contentType,dataType:"json"}).done(function(json){$("tbody",table).empty();var _step2,_iterator2=_createForOfIteratorHelper(json.data);try{for(_iterator2.s();!(_step2=_iterator2.n()).done;)tr=_step2.value,$("tbody",table).append(tr)}catch(err){_iterator2.e(err)}finally{_iterator2.f()}json.data.length||$("tbody",table).append("<tr><td class=\"empty\" colspan=\""+_ajaxTable[i].columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>"),_ajaxTable[i].activeSearch||_ajaxTable[i].orderBy!=settings.orderBy||_ajaxTable[i].orderSort!=settings.orderSort?settings.logging&&console.log("ajaxTable temporally recieved "+json.data.length+" items."):(_ajaxTable[i].silentData[""+targetedPage]=json.data.map(function(e){return htmlToElement(e)}),settings.logging&&console.log("ajaxTable recieved "+json.data.length+" items.")),SlickLoader.disable(),resolve(json.total)}).fail(function(_,textStatus,error){var err="Request Failed: "+textStatus+", "+error;console.log(_),console.log(err),SlickLoader.disable(),reject(err)})}else settings.source&&!_ajaxTable[i].dataFullyLoaded&&_ajaxTable[i].silentData[targetedPage]?($("tbody",table).empty().append(_ajaxTable[i].silentData[targetedPage]),_ajaxTable[i].silentData[targetedPage].length||$("tbody",table).append("<tr><td class=\"empty\" colspan=\""+_ajaxTable[i].columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>"),resolve(_ajaxTable[i].total)):($("tbody",table).empty().append(_ajaxTable[i].filteredData.slice(10*(targetedPage-1),10*targetedPage)),_ajaxTable[i].filteredData.slice(10*(targetedPage-1),10*targetedPage).length||$("tbody",table).append("<tr><td class=\"empty\" colspan=\""+_ajaxTable[i].columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>"),resolve(_ajaxTable[i].filteredData.length))});dataGathering.then(function(items){_ajaxTable[i].page=targetedPage,updateNav(pagination.parent(),targetedPage,_Mathfloor((items-1)/10)+1,i),settings.onUpdate.call(void 0,table,_ajaxTable[i])})["catch"](function(error){console.warn(error),alert(error)})}function silentLoad(page,i,table){settings.beforeAjax.call(void 0,table,_ajaxTable[i]),settings.logging&&console.log("ajaxTable calling source...");var data={page:page,context:settings.sourceContext};$.post({url:settings.source,data:"application/json"==settings.contentType?JSON.stringify(data):data,contentType:settings.contentType,dataType:"json"}).done(function(json){if(_ajaxTable[i].silentData[""+page]=json.data.map(function(e){return htmlToElement(e)}),settings.logging&&console.log("ajaxTable silently recieved "+json.data.length+" items. (page "+page+")"),page<_Mathfloor((_ajaxTable[i].total-1)/10)+1)silentLoad(page+1,i,table);else{var _ref;_ajaxTable[i].dataFullyLoaded=!0,settings.printButtons&&(table.nextElementSibling.querySelector(".ajax-table-buttons-loader").classList.add("loaded"),table.nextElementSibling.querySelector(".ajax-table-buttons").classList.add("available")),_ajaxTable[i].data=(_ref=[]).concat.apply(_ref,_toConsumableArray(Object.values(_ajaxTable[i].silentData))),_ajaxTable[i].filteredData=_ajaxTable[i].data,$("tfoot input",table).filter(function(_,e){return e.value}).each(function(){var _this=this,index=$(this).parent().index();_ajaxTable[i].filteredData=_ajaxTable[i].filteredData.filter(function(tr){return tr.children[index].hasAttribute("data-search")?tr.children[index].attr("data-search").toLowerCase().includes(_this.value.toLowerCase())||tr.children[index].innerText.toLowerCase().includes(_this.value):tr.children[index].innerText.toLowerCase().includes(_this.value)})}),_ajaxTable[i].total=_ajaxTable[i].data.length,_ajaxTable[i].filteredTotal=_ajaxTable[i].filteredData.length,settings.logging&&console.log("ajaxTable is done with AJAX tasks."),settings.logging&&console.log("ajaxTable ready."),settings.onReady.call(void 0,table,_ajaxTable[i])}}).fail(function(_,textStatus,error){console.log(_),console.log("Request Failed: "+textStatus+", "+error),silentLoad(page,i,table)})}function saveState(i){localStorage.setItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_search",JSON.stringify(_ajaxTable[i].search)),localStorage.setItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_orderBy",JSON.stringify(_ajaxTable[i].orderBy)),localStorage.setItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_order",JSON.stringify(_ajaxTable[i].orderSort)),localStorage.setItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_expires",new Date().getTime()+3600000)}this.defaultOptions={source:!1,sourceContext:{},printButtons:!0,orderBy:0,orderSort:"desc",logging:!1,contentType:"application/x-www-form-urlencoded; charset=UTF-8",searchPlaceholders:null,onReady:function(){},onStructureReady:function(){},beforeAjax:function(){},onUpdate:function(){}};var settings=$.extend({},this.defaultOptions,options),lang=window.navigator.userLanguage||window.navigator.language;return this.each(function(i){var _this2=this,that=this;$(this).addClass("ajax-table-processed");var bundle={orderBy:settings.orderBy,orderSort:settings.orderSort,search:[],activeSearch:!1,searchPatterns:[],columns:$("thead th",that).length,page:1,total:1,filteredTotal:1,printButtons:settings.printButtons,data:[],filteredData:[],silentData:{},dataFullyLoaded:!1};bundle.data=$("tbody>tr",this).get(),bundle.filteredData=_toConsumableArray(bundle.data),$("tfoot",this).length||$(this).append("<tfoot><tr></tr></tfoot>"),$("tfoot",this).insertAfter($("thead",this)),$("tfoot tr",this).empty(),$("thead th",this).each(function(_i){$("tfoot tr",that).append("<td><input type=\"text\" placeholder=\""+(settings.searchPlaceholders&&settings.searchPlaceholders[_i]?settings.searchPlaceholders[_i]:lang.toLowerCase().includes("fr")?"Entr\xE9e pour chercher":"Enter to search")+"\"></td>")}),bundle.search=$("tfoot input",that).get().map(function(e){return e.value}),settings.onStructureReady.call(void 0,this,_ajaxTable[i]),settings.logging&&console.log("ajaxTable structure ready..."),10<bundle.data.length&&$("tbody>tr:nth-of-type(n+11)",this).remove();var dataReady=new Promise(function(resolve,reject){if(settings.source){settings.beforeAjax.call(void 0,that,bundle),settings.logging&&console.log("ajaxTable calling source..."),SlickLoader.enable();var data={total:!0,context:settings.sourceContext};$.post({url:settings.source,data:"application/json"==settings.contentType?JSON.stringify(data):data,dataType:"json",contentType:settings.contentType}).done(function(json){$("tbody",_this2).empty();var _step3,_iterator3=_createForOfIteratorHelper(json.data);try{for(_iterator3.s();!(_step3=_iterator3.n()).done;)tr=_step3.value,$("tbody",_this2).append(tr)}catch(err){_iterator3.e(err)}finally{_iterator3.f()}json.data.length||$("tbody",_this2).append("<tr><td class=\"empty\" colspan=\""+bundle.columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>"),bundle.data=json.data.map(function(e){return htmlToElement(e)}),bundle.filteredData=_toConsumableArray(bundle.data),bundle.silentData[1]=_toConsumableArray(bundle.data),bundle.total=json.total,bundle.filteredTotal=json.total,bundle.searchPatterns=$("tbody tr:nth-of-type(1) td",that).get().map(function(e){return e.getAttribute("data-search-template")}),settings.logging&&console.log("ajaxTable recieved "+json.data.length+" items."),SlickLoader.disable(),resolve()}).fail(function(_,textStatus,error){var err="Request Failed: "+textStatus+", "+error;console.log(_),console.log(err),SlickLoader.disable(),reject(err)})}else bundle.total=bundle.data.length,bundle.filteredTotal=bundle.filteredData.length,resolve()});dataReady.then(function(){_ajaxTable.push(bundle),i=_ajaxTable.length-1;var orderedColumn=$("thead th",that).eq(_ajaxTable[i].orderBy);orderedColumn.addClass("sorted"),"asc"==_ajaxTable[i].orderSort&&orderedColumn.addClass("inverted");var pagination=$("<aside class=\"ajax-table-pagination\"><ul><li class=\"pagination-prev disabled\">&laquo;</li><li class=\"pagination-next\">&raquo;</li></ul></aside>"),pageCount=_Mathfloor((_ajaxTable[i].total-1)/10)+1,count=$("<aside class=\"ajax-table-count\"><div>"+(lang.toLowerCase().includes("fr")?"Elements":"Items")+" <span id=\"ajax-table-item-start-id\"></span> "+(lang.toLowerCase().includes("fr")?"\xE0":"to")+" <span id=\"ajax-table-item-end-id\"></span> "+(lang.toLowerCase().includes("fr")?"sur":"of")+" <span id=\"ajax-table-item-filtered-total\"></span> (<span id=\"ajax-table-item-total\"></span> "+(lang.toLowerCase().includes("fr")?"au total":"total")+")</div></aside>"),utilities=$("<div class=\"ajax-table-utilities\"></div>");settings.printButtons&&utilities.append("<aside class=\"ajax-table-buttons-loader\"><div></div></aside>"),settings.printButtons&&utilities.append("<aside class=\"ajax-table-buttons\"><ul><li class=\"export\">Excel</li><li class=\"export\">CSV</li><li class=\"export\">PDF</li></ul></aside>"),utilities.append(count),utilities.append(pagination),$(_this2).after(utilities),updateNav(utilities,1,pageCount,i),pagination.on("click","li.pagination-page:not(.active)",function(){var targetedPage=+$(this).attr("data-page");paginationHandler(that,i,targetedPage,pagination,pageCount)}),pagination.on("click","li.pagination-prev:not(.disabled),li.pagination-next:not(.disabled)",function(){var targetedPage=+$(this).siblings(".active").attr("data-page");$(this).is(".pagination-prev")?targetedPage--:targetedPage++,paginationHandler(that,i,targetedPage,pagination,pageCount)}),settings.printButtons&&utilities.on("click",".ajax-table-buttons li",function(){SlickLoader.enable();var table=document.createElement("table"),tbody=document.createElement("tbody");switch(table.appendChild($("thead",that).clone()[0]),table.appendChild(tbody),_ajaxTable[i].filteredData.forEach(function(line){tbody.appendChild($(line).clone()[0])}),$(this).index()){case 0:$(table).excelExport();break;case 1:$(table).csvExport();break;case 2:var iframe=$("<iframe class=\"excel-export\" style=\"visibility: hidden; position: absolute; top:0; right:0;\"></iframe>").appendTo("body");iframe.contents().find("body").append(table),iframe.contents().find("head").append("<link rel=\"stylesheet\" href=\"https://unpkg.com/ajax-table/ajaxTable.min.css\">"),"undefined"==typeof window.onafterprint?setTimeout(function(){iframe.remove()},500):iframe[0].contentWindow.onafterprint=function(){iframe.remove()},iframe[0].contentWindow.print();break;default:}SlickLoader.disable()}),$("thead th",_this2).on("click",function(){var _this3=this;$(this).is(".sorted")?$(this).toggleClass("inverted"):$(this).addClass("sorted").siblings().removeClass("sorted inverted");var order=$(this).hasClass("inverted")?1:-1;_ajaxTable[i].orderBy=$(this).index(),_ajaxTable[i].orderSort=1==order?"asc":"desc",_ajaxTable[i].page=1;var sortingPromise=new Promise(function(resolve,reject){if(settings.source&&!_ajaxTable[i].dataFullyLoaded){settings.beforeAjax.call(void 0,that,_ajaxTable[i]),settings.logging&&console.log("ajaxTable calling source..."),SlickLoader.enable();var data={page:_ajaxTable[i].page,orderBy:_ajaxTable[i].orderBy,order:_ajaxTable[i].orderSort,search:_ajaxTable[i].search,searchPatterns:_ajaxTable[i].searchPatterns,columns:_ajaxTable[i].columns,context:settings.sourceContext};$.post({url:settings.source,data:"application/json"==settings.contentType?JSON.stringify(data):data,contentType:settings.contentType,dataType:"json"}).done(function(json){$("tbody",that).empty();var _step4,_iterator4=_createForOfIteratorHelper(json.data);try{for(_iterator4.s();!(_step4=_iterator4.n()).done;)tr=_step4.value,$("tbody",that).append(tr)}catch(err){_iterator4.e(err)}finally{_iterator4.f()}json.data.length||$("tbody",that).append("<tr><td class=\"empty\" colspan=\""+_ajaxTable[i].columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>"),settings.logging&&console.log("ajaxTable temporally recieved "+json.data.length+" items."),updateNav(utilities,1,pageCount,i),SlickLoader.disable(),resolve()}).fail(function(_,textStatus,error){var err="Request Failed: "+textStatus+", "+error;console.log(_),console.log(err),SlickLoader.disable(),reject(err)})}else{var index=$(_this3).index();_ajaxTable[i].filteredData=mergeSort(_ajaxTable[i].filteredData,function(a,b){var $a_dataOrder=a.children[index].getAttribute("data-order"),$b_dataOrder=b.children[index].getAttribute("data-order"),$a_text=a.children[index].innerText,$b_text=b.children[index].innerText;return a.children[index].hasAttribute("data-order")?isNaN($a_dataOrder)?$a_dataOrder.localeCompare($b_dataOrder)*order:+$a_dataOrder>+$b_dataOrder?order:+$a_dataOrder==+$b_dataOrder?0:-order:isNaN($a_text)?$a_text.localeCompare($b_text)*order:+$a_text>+$b_text?order:+$a_text==+$b_text?0:-order}),updateTable(that,i),resolve()}});sortingPromise.then(function(){saveState(i),settings.onUpdate.call(void 0,that,_ajaxTable[i])})["catch"](function(error){console.warn(error),alert(error)})}),$("tfoot input",_this2).on("keyup blur",function(e){if((13==e.keyCode||"blur"==e.type)&&this.value!=_ajaxTable[i].search[$(this).parent().index()]){_ajaxTable[i].search[$(this).parent().index()]=this.value,_ajaxTable[i].activeSearch=!!_ajaxTable[i].search.filter(function(e){return e.length}).length,_ajaxTable[i].page=1;var searchPromise=new Promise(function(resolve,reject){if(settings.source&&!_ajaxTable[i].dataFullyLoaded){settings.beforeAjax.call(void 0,that,_ajaxTable[i]),settings.logging&&console.log("ajaxTable calling source..."),SlickLoader.enable();var data={page:_ajaxTable[i].page,orderBy:_ajaxTable[i].orderBy,order:_ajaxTable[i].orderSort,search:_ajaxTable[i].search,searchPatterns:_ajaxTable[i].searchPatterns,columns:_ajaxTable[i].columns,total:!0,context:settings.sourceContext};$.post({url:settings.source,data:"application/json"==settings.contentType?JSON.stringify(data):data,contentType:settings.contentType,dataType:"json"}).done(function(json){$("tbody",that).empty();var _step5,_iterator5=_createForOfIteratorHelper(json.data);try{for(_iterator5.s();!(_step5=_iterator5.n()).done;)tr=_step5.value,$("tbody",that).append(tr)}catch(err){_iterator5.e(err)}finally{_iterator5.f()}json.data.length||$("tbody",that).append("<tr><td class=\"empty\" colspan=\""+_ajaxTable[i].columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>"),settings.logging&&console.log("ajaxTable temporally recieved "+json.data.length+" items."),_ajaxTable[i].filteredTotal=json.total,updateNav(utilities,_ajaxTable[i].page,_Mathfloor((json.total-1)/10)+1,i),SlickLoader.disable(),resolve()}).fail(function(_,textStatus,error){var err="Request Failed: "+textStatus+", "+error;console.log(_),console.log(err),SlickLoader.disable(),reject(err)})}else _ajaxTable[i].filteredData=_ajaxTable[i].data,Array.from(that.querySelectorAll("tfoot input")).filter(function(search){return search.value}).forEach(function(filter){var index=Array.from(filter.parentElement.parentElement.children).indexOf(filter.parentElement);if(filter.value.includes("*")){var regex=new RegExp(filter.value.toLowerCase().split("*").map(function(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}).join(".*").replace(/\s+/g,"\\s+"),"s");_ajaxTable[i].filteredData=_ajaxTable[i].filteredData.filter(function(tr){return tr.children[index].hasAttribute("data-search")?regex.test(tr.children[index].attr("data-search").toLowerCase())||regex.test(tr.children[index].innerText.toLowerCase()):regex.test(tr.children[index].innerText.toLowerCase())})}else _ajaxTable[i].filteredData=_ajaxTable[i].filteredData.filter(function(tr){return tr.children[index].hasAttribute("data-search")?tr.children[index].attr("data-search").toLowerCase().includes(filter.value.toLowerCase())||tr.children[index].innerText.toLowerCase().includes(filter.value.toLowerCase()):tr.children[index].innerText.toLowerCase().includes(filter.value.toLowerCase())})}),_ajaxTable[i].filteredTotal=_ajaxTable[i].filteredData.length,updateTable(that,i),resolve()});searchPromise.then(function(){saveState(i),settings.onUpdate.call(void 0,that,_ajaxTable[i])})["catch"](function(error){console.warn(error),alert(error)})}}),settings.onUpdate.call(void 0,that,_ajaxTable[i]);var storageExpiresAt=localStorage.getItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_expires");if(storageExpiresAt)if(new Date().getTime()<storageExpiresAt){_ajaxTable[i].search=JSON.parse(localStorage.getItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_search")),_ajaxTable[i].orderBy=+JSON.parse(localStorage.getItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_orderBy")),_ajaxTable[i].orderSort=JSON.parse(localStorage.getItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_order")),$("tfoot input",that).each(function(j){this.value=_ajaxTable[i].search[j]?_ajaxTable[i].search[j]:""}),_ajaxTable[i].activeSearch=!!_ajaxTable[i].search.filter(function(e){return e.length}).length,$("thead th",that).removeClass("sorted inverted");var _orderedColumn=$("thead th",that).eq(_ajaxTable[i].orderBy);if(_orderedColumn.addClass("sorted"),"asc"==_ajaxTable[i].orderSort&&_orderedColumn.addClass("inverted"),settings.source&&!_ajaxTable[i].dataFullyLoaded){settings.beforeAjax.call(void 0,that,_ajaxTable[i]),settings.logging&&console.log("ajaxTable calling source..."),SlickLoader.enable();var data={page:_ajaxTable[i].page,orderBy:_ajaxTable[i].orderBy,order:_ajaxTable[i].orderSort,search:_ajaxTable[i].search,searchPatterns:_ajaxTable[i].searchPatterns,columns:_ajaxTable[i].columns,total:!0,context:settings.sourceContext};$.post({url:settings.source,data:"application/json"==settings.contentType?JSON.stringify(data):data,contentType:settings.contentType,dataType:"json"}).done(function(json){$("tbody",that).empty();var _step6,_iterator6=_createForOfIteratorHelper(json.data);try{for(_iterator6.s();!(_step6=_iterator6.n()).done;)tr=_step6.value,$("tbody",that).append(tr)}catch(err){_iterator6.e(err)}finally{_iterator6.f()}json.data.length||$("tbody",that).append("<tr><td class=\"empty\" colspan=\""+_ajaxTable[i].columns+"\">"+(lang.toLowerCase().includes("fr")?"Aucune donn\xE9e disponible dans le tableau":"No data available")+"</td></tr>"),settings.logging&&console.log("ajaxTable temporally recieved "+json.data.length+" items."),_ajaxTable[i].page=1,_ajaxTable[i].filteredTotal=json.total,updateNav(utilities,_ajaxTable[i].page,_Mathfloor((json.total-1)/10)+1,i),SlickLoader.disable(),settings.onUpdate.call(void 0,that,_ajaxTable[i])}).fail(function(_,textStatus,error){console.log(_),console.log("Request Failed: "+textStatus+", "+error),SlickLoader.disable()})}else _ajaxTable[i].filteredData=_ajaxTable[i].data,_ajaxTable[i].page=1,$("tfoot input",that).filter(function(_,e){return e.value}).each(function(){var _this4=this,index=$(this).parent().index();_ajaxTable[i].filteredData=_ajaxTable[i].filteredData.filter(function(tr){return tr.children[index].hasAttribute("data-search")?tr.children[index].attr("data-search").toLowerCase().includes(_this4.value.toLowerCase())||tr.children[index].innerText.toLowerCase().includes(_this4.value):tr.children[index].innerText.toLowerCase().includes(_this4.value)})}),_ajaxTable[i].filteredTotal=_ajaxTable[i].filteredData.length,updateTable(that,i),settings.onUpdate.call(void 0,that,_ajaxTable[i])}else localStorage.removeItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_search"),localStorage.removeItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_orderBy"),localStorage.removeItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_order"),localStorage.removeItem(window.location.hostname+window.location.pathname+"_ajaxTable_"+i+"_expires"),storageExpiresAt=null;1<_Mathfloor((_ajaxTable[i].total-1)/10)+1&&settings.source?silentLoad(2,i,that):(_ajaxTable[i].dataFullyLoaded=!0,settings.printButtons&&(utilities[0].querySelector(".ajax-table-buttons").classList.add("available"),utilities[0].querySelector(".ajax-table-buttons-loader").classList.add("loaded")),settings.logging&&console.log("ajaxTable ready."),settings.onReady.call(void 0,that,_ajaxTable[i]))})["catch"](function(error){console.warn(error),alert(error)})}),this}})})(jQuery);