1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-06-20 06:35:24 +02:00
TableFilter/dist/tablefilter.js

10 lines
106 KiB
JavaScript
Raw Normal View History

/*------------------------------------------------------------------------
- TableFilter v3.0.0 by Max Guglielmi
2015-02-01 09:26:48 +01:00
- build date: Sun Feb 01 2015 19:22:54
- http://tablefilter.free.fr
- Copyright (c) 2014, Licensed under the MIT License
------------------------------------------------------------------------*/
2015-02-01 09:26:48 +01:00
!function(a,b){"function"==typeof define&&define.amd?define(b):"object"==typeof exports?module.exports=b:a.TableFilter=b()}(this,function(){var requirejs,require,define;return function(a){function b(a,b){return r.call(a,b)}function c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=p.map,q=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split("/"),g=a.length-1,p.nodeIdCompat&&t.test(a[g])&&(a[g]=a[g].replace(t,"")),a=n.concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||q)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function d(b,c){return function(){var d=s.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),k.apply(a,d.concat([b,c]))}}function e(a){return function(b){return c(b,a)}}function f(a){return function(b){n[a]=b}}function g(c){if(b(o,c)){var d=o[c];delete o[c],q[c]=!0,j.apply(a,d)}if(!b(n,c)&&!b(q,c))throw new Error("No "+c);return n[c]}function h(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function i(a){return function(){return p&&p.config&&p.config[a]||{}}}var j,k,l,m,n={},o={},p={},q={},r=Object.prototype.hasOwnProperty,s=[].slice,t=/\.js$/;l=function(a,b){var d,f=h(a),i=f[0];return a=f[1],i&&(i=c(i,b),d=g(i)),i?a=d&&d.normalize?d.normalize(a,e(b)):c(a,b):(a=c(a,b),f=h(a),i=f[0],a=f[1],i&&(d=g(i))),{f:i?i+"!"+a:a,n:a,pr:i,p:d}},m={require:function(a){return d(a)},exports:function(a){var b=n[a];return"undefined"!=typeof b?b:n[a]={}},module:function(a){return{id:a,uri:"",exports:n[a],config:i(a)}}},j=function(c,e,h,i){var j,k,p,r,s,t,u=[],v=typeof h;if(i=i||c,"undefined"===v||"function"===v){for(e=!e.length&&h.length?["require","exports","module"]:e,s=0;s<e.length;s+=1)if(r=l(e[s],i),k=r.f,"require"===k)u[s]=m.require(c);else if("exports"===k)u[s]=m.exports(c),t=!0;else if("module"===k)j=u[s]=m.module(c);else if(b(n,k)||b(o,k)||b(q,k))u[s]=g(k);else{if(!r.p)throw new Error(c+" missing "+k);r.p.load(r.n,d(i,!0),f(k),{}),u[s]=n[k]}p=h?h.apply(n[c],u):void 0,c&&(j&&j.exports!==a&&j.exports!==n[c]?n[c]=j.exports:p===a&&t||(n[c]=p))}else c&&(n[c]=h)},requirejs=require=k=function(b,c,d,e,f){if("string"==typeof b)return m[b]?m[b](c):g(l(b,c).f);if(!b.splice){if(p=b,p.deps&&k(p.deps,p.callback),!c)return;c.splice?(b=c,c=d,d=null):b=a}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?j(a,b,c,d):setTimeout(function(){j(a,b,c,d)},4),k},k.config=function(a){return k(a)},requirejs._defined=n,define=function(a,c,d){c.splice||(d=c,c=[]),!b(n,a)&&!b(o,a)&&(o[a]=[a,c,d])},define.amd={jQuery:!0}}(),define("../libs/almond/almond",function(){}),define("event",["exports"],function(a){var b={add:function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c},remove:function(a,b,c,d){a.detachEvent?a.detachEvent("on"+b,c):a.removeEventListener?a.removeEventListener(b,c,d):a["on"+b]=null},stop:function(a){a||(a=window.event),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},cancel:function(a){a||(a=window.event),a.preventDefault?a.preventDefault():a.returnValue=!1}};a.Event=b}),define("dom",["exports"],function(a){function b(){return document.documentElement.classList}var c={};c.getText=function(a){var b=a.textContent||a.innerText||a.innerHTML.replace(/<[^<>]+>/g,"");return b=b.replace(/^\s+/,"").replace(/\s+$/,"")},c.create=function(a){if(a&&""!==a){var b=document.createElement(a),c=arguments;if(c.length>1)for(var d=0;d<c.length;d++){var e=typeof c[d];"object"===e.toLowerCase()&&2===c[d].length&&b.setAttribute(c[d][0],c[d][1])}return b}},c.text=function(a){return document.createTextNode(a)},c.position=function(a){var b=0,c=0;if(a&&a.offsetParent)do b+=a.offsetLeft,c+=a.offsetTop;while(a==a.
if(this.hasPagingBtns){if(this.btnNextPageHtml)e.innerHTML=this.btnNextPageHtml,k.add(e,"click",d.next);else{var j=h.create(c.fltTypeInp,["id",c.prfxBtnNext+c.id],["type","button"],["value",this.btnNextPageText],["title","Next"]);j.className=this.btnPageCssClass,k.add(j,"click",d.next),e.appendChild(j)}if(this.btnPrevPageHtml)f.innerHTML=this.btnPrevPageHtml,k.add(f,"click",d.prev);else{var l=h.create(c.fltTypeInp,["id",c.prfxBtnPrev+c.id],["type","button"],["value",this.btnPrevPageText],["title","Previous"]);l.className=this.btnPageCssClass,k.add(l,"click",d.prev),f.appendChild(l)}if(this.btnLastPageHtml)g.innerHTML=this.btnLastPageHtml,k.add(g,"click",d.last);else{var m=h.create(c.fltTypeInp,["id",c.prfxBtnLast+c.id],["type","button"],["value",this.btnLastPageText],["title","Last"]);m.className=this.btnPageCssClass,k.add(m,"click",d.last),g.appendChild(m)}if(this.btnFirstPageHtml)i.innerHTML=this.btnFirstPageHtml,k.add(i,"click",d.first);else{var n=h.create(c.fltTypeInp,["id",c.prfxBtnFirst+c.id],["type","button"],["value",this.btnFirstPageText],["title","First"]);n.className=this.btnPageCssClass,k.add(n,"click",d.first),i.appendChild(n)}}this.pagingTgtId||c.SetTopDiv();var o=this.pagingTgtId?h.id(this.pagingTgtId):c.mDiv;o.appendChild(i),o.appendChild(f);var p=h.create("span",["id",c.prfxPgBeforeSpan+c.id]);p.appendChild(h.text(this.pageText)),p.className=this.nbPgSpanCssClass,o.appendChild(p),o.appendChild(a);var q=h.create("span",["id",c.prfxPgAfterSpan+c.id]);q.appendChild(h.text(this.ofText)),q.className=this.nbPgSpanCssClass,o.appendChild(q);var r=h.create("span",["id",c.prfxPgSpan+c.id]);r.className=this.nbPgSpanCssClass,r.appendChild(h.text(" "+this.nbPages+" ")),o.appendChild(r),o.appendChild(e),o.appendChild(g),this.pagingSlc=h.id(c.prfxSlcPages+c.id),(!c.rememberGridValues||this.isPagingRemoved)&&this.setPagingInfo(),c.fltGrid||(c.ValidateAllRows(),this.setPagingInfo(c.validRowsIndex)),this.isPagingRemoved=!1}},addPaging:{writable:!0,value:function(a){void 0===a&&(a=!1);var b=this.tf;b.hasGrid&&!b.paging&&(b.paging=!0,this.isPagingRemoved=!0,this.init(),b.ResetValues(),a&&b.Filter())}},setPagingInfo:{writable:!0,value:function(a){var b=this.tf,c=b.tbl.rows,d=this.pagingTgtId?h.id(this.pagingTgtId):b.mDiv,e=h.id(b.prfxPgSpan+b.id);if(a&&a.length>0)b.validRowsIndex=a;else{b.validRowsIndex=[];for(var f=b.refRow;f<b.nbRows;f++){var g=c[f];if(g){var i=g.getAttribute("validRow");("true"===i||!i)&&b.validRowsIndex.push(f)}}}if(this.nbPages=Math.ceil(b.validRowsIndex.length/this.pagingLength),e.innerHTML=this.nbPages,this.pageSelectorType===b.fltTypeSlc&&(this.pagingSlc.innerHTML=""),this.nbPages>0)if(d.style.visibility="visible",this.pageSelectorType===b.fltTypeSlc)for(var j=0;j<this.nbPages;j++){var k=new Option(j+1,j*this.pagingLength,!1,!1);this.pagingSlc.options[j]=k}else this.pagingSlc.value=this.currentPageNb;else d.style.visibility="hidden";this.groupByPage(b.validRowsIndex)}},groupByPage:{writable:!0,value:function(a){var b=this.tf,c=b.tbl.rows,d=parseInt(this.startPagingRow,10)+parseInt(this.pagingLength,10);a&&(b.validRowsIndex=a);for(var e=0;e<b.validRowsIndex.length;e++){var f=c[b.validRowsIndex[e]];e>=this.startPagingRow&&d>e?("true"!==f.getAttribute("validRow")&&f.getAttribute("validRow")||(f.style.display=""),b.alternateBgs&&b.Cpt.alternateRows&&b.Cpt.alternateRows.setRowBg(b.validRowsIndex[e],e)):(f.style.display="none",b.alternateBgs&&b.Cpt.alternateRows&&b.Cpt.alternateRows.removeRowBg(b.validRowsIndex[e]))}b.nbVisibleRows=b.validRowsIndex.length,b.isStartBgAlternate=!1,b.ApplyGridProps()}},setPage:{writable:!0,value:function(a){var b=this.tf;if(b.hasGrid&&this.paging){var c=this.evt,d=typeof a;if("string"===d)switch(j.lower(a)){case"next":c.next();break;case"previous":c.prev();break;case"last":c.last();break;case"first":c.first();break;default:c.next()}else"number"===d&&this.changePage(a-1)}}},setResultsPerPage:{writable:!0,value:function(){var a=this,b=this.tf,c=this.evt;if((b.hasGrid||b.isFirstLoad)&&!this.resultsPerPageSlc&&this.resultsPerPage){c.slcResultsChange=function(b){a.changeResultsPe
if(this.singleSearchFlt&&(o.colSpan=this.nbCells),this.gridLayout||i.appendChild(o),b=n==d-1&&this.displayBtn?this.fltSmallCssClass:this.fltCssClass,this.popUpFilters&&this.SetPopupFilter(n),void 0===p&&(p=void 0===c["col_"+n]?this.fltTypeInp:m.lower(c["col_"+n])),this.singleSearchFlt&&(p=this.fltTypeInp,b=this.singleFltCssClass),p===this.fltTypeSlc||p===this.fltTypeMulti){var r=l.create(this.fltTypeSlc,["id",this.prfxFlt+n+"_"+this.id],["ct",n],["filled","0"]);if(p===this.fltTypeMulti&&(r.multiple=this.fltTypeMulti,r.title=this.multipleSlcTooltip),r.className=m.lower(p)===this.fltTypeSlc?b:this.fltMultiCssClass,q?(l.id(q).appendChild(r),this.externalFltEls.push(r)):o.appendChild(r),this.fltIds.push(this.prfxFlt+n+"_"+this.id),this.fillSlcOnDemand||this._PopulateSelect(n),r.onkeypress=this.Evt._DetectKey,r.onchange=this.Evt._OnSlcChange,r.onfocus=this.Evt._OnSlcFocus,r.onblur=this.Evt._OnSlcBlur,this.fillSlcOnDemand){var s=l.createOpt(this.displayAllText,"");r.appendChild(s)}}else if(p===this.fltTypeCheckList){var t=a("modules/checkList").CheckList;this.Cpt.checkList=new t(this);var u=l.create("div",["id",this.prfxCheckListDiv+n+"_"+this.id],["ct",n],["filled","0"]);u.className=this.Cpt.checkList.checkListDivCssClass,q?(l.id(q).appendChild(u),this.externalFltEls.push(u)):o.appendChild(u),this.Cpt.checkList.checkListDiv[n]=u,this.fltIds.push(this.prfxFlt+n+"_"+this.id),this.fillSlcOnDemand||this.Cpt.checkList._build(n),this.fillSlcOnDemand&&(k.add(u,"click",this.Evt._OnCheckListClick),u.appendChild(l.text(this.Cpt.checkList.activateCheckListTxt))),k.add(u,"click",this.Evt._OnCheckListFocus)}else{var v=p===this.fltTypeInp?"text":"hidden",w=l.create(this.fltTypeInp,["id",this.prfxFlt+n+"_"+this.id],["type",v],["ct",n]);if("hidden"!=v&&(w.value=this.isInpWatermarkArray?this.inpWatermark[n]:this.inpWatermark),w.className=b,""!==this.inpWatermark&&l.addClass(w,this.inpWatermarkCssClass),w.onfocus=this.Evt._OnInpFocus,q?(l.id(q).appendChild(w),this.externalFltEls.push(w)):o.appendChild(w),this.fltIds.push(this.prfxFlt+n+"_"+this.id),w.onkeypress=this.Evt._DetectKey,w.onkeydown=this.Evt._OnKeyDown,w.onkeyup=this.Evt._OnKeyUp,w.onblur=this.Evt._OnInpBlur,this.rememberGridValues){var x=this.Cpt.store.getFilterValues(this.fltsValuesCookie);" "!=x[n]&&this.SetFilterValue(n,x[n],!1)}}if(n==d-1&&this.displayBtn){var y=l.create(this.fltTypeInp,["id",this.prfxValButton+n+"_"+this.id],["type","button"],["value",this.btnText]);y.className=this.btnCssClass,q?l.id(q).appendChild(y):o.appendChild(y),y.onclick=this.Evt._OnBtnClick}}}else this.__resetGrid();else this.refRow=this.refRow-1,this.gridLayout&&(this.refRow=0),this.nbFilterableRows=this.GetRowsNb(),this.nbVisibleRows=this.nbFilterableRows,this.nbRows=this.nbFilterableRows+this.refRow;if(this.rowsCounter){var z=a("modules/rowsCounter").RowsCounter;this.Cpt.rowsCounter=new z(this),this.Cpt.rowsCounter.init()}if(this.statusBar&&this.SetStatusBar(),this.paging){var A=a("modules/paging").Paging;this.Cpt.paging=new A(this),this.Cpt.paging.init()}if(this.btnReset&&this.SetResetBtn(),this.helpInstructions&&this.SetHelpInstructions(),this.hasColWidth&&!this.gridLayout&&this.SetColWidths(),this.alternateBgs){var B=a("modules/alternateRows").AlternateRows;this.Cpt.alternateRows=new B(this),this.Cpt.alternateRows.init()}if(this.hasColOperation){var C=a("modules/colOps").ColOps;this.Cpt.colOps=new C(this),this.Cpt.colOps.calc()}(this.sort||this.gridLayout)&&this.SetSort(),(this.selectable||this.editable)&&this.SetEditable(),this.isFirstLoad=!1,this.hasGrid=!0,(this.rememberGridValues||this.rememberPageLen||this.rememberPageNb)&&this.ResetValues(),this.gridLayout||l.addClass(this.tbl,this.prfxTf),this.loader&&this.Cpt.loader.show("none"),this.hasExtensions&&this.LoadExtensions(),this.onFiltersLoaded&&this.onFiltersLoaded.call(null,this)}},EvtManager:function(a,b){function c(){if(a){switch(a){case d.Evt.name.filter:d.isModFilterFn?d.modFilterFn.call(null,d):d._Filter();break;case d.Evt.name.populateselect:d.refreshFilters?d._PopulateSelect(e,!0):d._PopulateSelect(e,!1,f,g);break;case d.Evt.name.ch
for(var h,i,j=new RegExp(this.leOperator),k=new RegExp(this.geOperator),n=new RegExp(this.lwOperator),o=new RegExp(this.grOperator),q=new RegExp(this.dfOperator),r=new RegExp(m.rgxEsc(this.lkOperator)),u=new RegExp(this.eqOperator),v=new RegExp(this.stOperator),w=new RegExp(this.enOperator),x=new RegExp(this.anOperator),y=(new RegExp(this.curExp),this.emOperator),z=this.nmOperator,A=new RegExp(m.rgxEsc(this.rgxOperator)),B=this.refRow;B<this.nbRows;B++){"none"===c[B].style.display&&(c[B].style.display="");var C=c[B].cells,D=C.length;if(D===this.nbCells){for(var E=[],F="include"===this.searchType?!0:!1,G=!1,H=0;D>H;H++){var I=this.searchArgs[this.singleSearchFlt?0:H],J=this.hasColDateType?this.colDateType[H]:this.defaultDateType;if(""!==I){var K=m.matchCase(this.GetCellData(H,C[H]),this.matchCase),L=I.split(this.orOperator),M=L.length>1?!0:!1,N=I.split(this.anOperator),O=N.length>1?!0:!1;if(M||O){for(var P,Q=!1,R=M?L:N,S=0;S<R.length&&(P=m.trim(R[S]),Q=b(P,K,H),a(P,Q,C[H]),!M||!Q)&&(!O||Q);S++);E[H]=Q}else E[H]=b(m.trim(I),K,H),a(I,E[H],C[H]);E[H]||(F="include"===this.searchType?!1:!0),this.singleSearchFlt&&E[H]&&(G=!0),this.popUpFilters&&this.SetPopupFilterIcon(H,!0),this.markActiveColumns&&B===this.refRow&&(this.onBeforeActiveColumn&&this.onBeforeActiveColumn.call(null,this,H),l.addClass(this.GetHeaderElement(H),this.activeColumnsCssClass),this.onAfterActiveColumn&&this.onAfterActiveColumn.call(null,this,H))}}this.singleSearchFlt&&G&&(F=!0),F?(this.SetRowValidation(B,!0),this.validRowsIndex.push(B),this.alternateBgs&&this.Cpt.alternateRows.setRowBg(B,this.validRowsIndex.length),this.onRowValidated&&this.onRowValidated.call(null,this,B)):(this.SetRowValidation(B,!1),this.hasVisibleRows&&p.has(this.visibleRows,B)&&!this.paging?this.validRowsIndex.push(B):f++)}}this.nbVisibleRows=this.validRowsIndex.length,this.nbHiddenRows=f,this.isStartBgAlternate=!1,this.rememberGridValues&&this.Cpt.store.saveFilterValues(this.fltsValuesCookie),this.paging?(this.startPagingRow=0,this.currentPageNb=1,this.Cpt.paging.setPagingInfo(this.validRowsIndex)):this.ApplyGridProps(),this.onAfterFilter&&this.onAfterFilter.call(null,this)}},ApplyGridProps:function(){this.activeFlt&&m.lower(this.activeFlt.nodeName)===this.fltTypeSlc&&!this.popUpFilters&&(this.activeFlt.blur(),this.activeFlt.parentNode&&this.activeFlt.parentNode.focus()),this.visibleRows&&this.SetVisibleRows(),this.hasColOperation&&this.Cpt.colOps.calc(),this.refreshFilters&&this.RefreshFiltersGrid();var a=!this.paging&&this.hasVisibleRows?this.nbVisibleRows-this.visibleRows.length:this.nbVisibleRows;this.rowsCounter&&this.Cpt.rowsCounter.refresh(a),""!==this.inpWatermark&&this.SetWatermark(!0),this.popUpFilters&&this.CloseAllPopupFilters()},GetColValues:function(a,b,c){if(this.fltGrid){for(var d=this.tbl.rows,f=[],g=this.refRow;g<this.nbRows;g++){var h=!1;c&&o.isArray(c)&&(h=p.has(c,g));var i=d[g].cells,j=i.length;if(j==this.nbCells&&!h)for(var k=0;j>k;k++)if(k===a&&""===d[g].style.display){var l=m.lower(this.GetCellData(k,i[k])),n=this.colNbFormat?this.colNbFormat[a]:null,q=b?e(l,n):l;f.push(q)}}return f}},GetFilterValue:function(a){if(this.fltGrid){var b,c=this.GetFilterElement(a);if(!c)return"";var d=this.fltCol[a];if(d!==this.fltTypeMulti&&d!==this.fltTypeCheckList)b=c.value;else if(d===this.fltTypeMulti){b="";for(var e=0;e<c.options.length;e++)c.options[e].selected&&(b=b.concat(c.options[e].value+" "+this.orOperator+" "));b=b.substr(0,b.length-4)}else d===this.fltTypeCheckList&&(null!==c.getAttribute("value")?(b=c.getAttribute("value"),b=b.substr(0,b.length-3)):b="");return b}},GetFiltersValue:function(){if(this.fltGrid){for(var a=[],b=0;b<this.fltIds.length;b++)a.push(m.trim(m.matchCase(this.GetFilterValue(b),this.matchCase)));return a}},GetFilterId:function(){return this.fltGrid?this.fltIds[i]:void 0},GetFiltersByType:function(a,b){if(this.fltGrid){for(var c=[],d=0;d<this.fltIds.length;d++){var e=this["col"+d];if(e===m.lower(a)){var f=b?d:this.fltIds[d];c.push(f)}}return c}},GetFilterElement:function(a){return this.fltGrid?l.id(this.fltIds[a]):null},GetCellsNb:function(a){var