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

10 lines
125 KiB
JavaScript
Raw Normal View History

2015-04-06 10:45:46 +02:00
/*------------------------------------------------------------------------
- TableFilter v3.0.0 by Max Guglielmi
- build date: Sat Apr 04 2015 19:15:47
- http://tablefilter.free.fr
- Copyright (c) 2014, Licensed under the MIT License
------------------------------------------------------------------------*/
!function(a,b){"function"==typeof define&&define.amd?define(b):"object"==typeof exports?module.exports=b:a.TableFilter=b()}(this,function(){function SortableTable(a,b){this.sortTypes=b||[],this.sortColumn=null,this.descending=null;var c=this;this._headerOnclick=function(a){c.headerOnclick(a)},a?(this.setTable(a),this.document=a.ownerDocument||a.document):this.document=document;var d=this.document.defaultView||this.document.parentWindow;this._onunload=function(){c.destroy()},d&&"undefined"!=typeof d.attachEvent&&d.attachEvent("onunload",this._onunload)}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.repla
j.has(this.opts,w,e.matchCase)||this.opts.push(v);var x=q[u];e.refreshFilters&&e.disableExcludedOptions&&(x||(q[u]=e.GetFilteredDataCol(u)),j.has(x,w,e.matchCase)||j.has(p,w,e.matchCase)||e.isFirstLoad||p.push(v))}}if(this.isCustom){var y=e.__getCustomValues(a);this.opts=y[0],this.optsTxt=y[1]}if(e.sortSlc&&!this.isCustom&&(e.matchCase?(this.opts.sort(),p&&p.sort()):(this.opts.sort(l.ignoreCase),p&&p.sort(l.ignoreCase))),e.sortNumAsc&&j.has(e.sortNumAsc,a))try{this.opts.sort(numSortAsc),p&&p.sort(numSortAsc),this.isCustom&&this.optsTxt.sort(numSortAsc)}catch(z){this.opts.sort(),p&&p.sort(),this.isCustom&&this.optsTxt.sort()}if(e.sortNumDesc&&j.has(e.sortNumDesc,a))try{this.opts.sort(numSortDesc),p&&p.sort(numSortDesc),this.isCustom&&this.optsTxt.sort(numSortDesc)}catch(z){this.opts.sort(),p&&p.sort(),this.isCustom&&this.optsTxt.sort()}this.addChecks(a,h,e.separator),e.fillSlcOnDemand&&(g.innerHTML=""),g.appendChild(h),g.setAttribute("filled","1")}},writable:!0,configurable:!0},addChecks:{value:function(a,b){var c=this,d=this.tf,e=this.addTChecks(a,b),f=[],g=d.Cpt.store,h=g?g.getFilterValues(d.fltsValuesCookie)[a]:null;h&&k.trim(h).length>0&&(d.hasCustomSlcOptions&&j.has(d.customSlcOptions.cols,a)?f.push(h):f=h.split(" "+d.orOperator+" "));for(var l=0;l<this.opts.length;l++){var n=this.opts[l],o=this.isCustom?this.optsTxt[l]:n,p=i.createCheckItem(d.fltIds[a]+"_"+(l+e),n,o);p.className=this.checkListItemCssClass,d.refreshFilters&&d.disableExcludedOptions&&j.has(excludedOpts,k.matchCase(n,d.matchCase),d.matchCase)?(i.addClass(p,this.checkListItemDisabledCssClass),p.check.disabled=!0,p.disabled=!0):m.add(p.check,"click",function(a){c.optionClick(a)}),b.appendChild(p),""===n&&(p.style.display="none"),d.rememberGridValues&&(d.hasCustomSlcOptions&&j.has(d.customSlcOptions.cols,a)&&-1!=f.toString().indexOf(n)||j.has(f,k.matchCase(n,d.matchCase),d.matchCase))&&(p.check.checked=!0,this.setCheckListValues(p.check))}},writable:!0,configurable:!0},addTChecks:{value:function(a,b){var c=this,d=this.tf,e=1,f=i.createCheckItem(d.fltIds[a]+"_0","",d.displayAllText);if(f.className=this.checkListItemCssClass,b.appendChild(f),m.add(f.check,"click",function(a){c.optionClick(a)}),this.enableCheckListResetFilter||(f.style.display="none"),d.enableEmptyOption){var g=i.createCheckItem(d.fltIds[a]+"_1",d.emOperator,d.emptyText);g.className=this.checkListItemCssClass,b.appendChild(g),m.add(g.check,"click",function(a){c.optionClick(a)}),e++}if(d.enableNonEmptyOption){var h=i.createCheckItem(d.fltIds[a]+"_2",d.nmOperator,d.nonEmptyText);h.className=this.checkListItemCssClass,b.appendChild(h),m.add(h.check,"click",function(a){c.optionClick(a)}),e++}return e},writable:!0,configurable:!0},setCheckListValues:{value:function(a){if(a){for(var b=this.tf,c=a.value,d=parseInt(a.id.split("_")[2],10),e="ul",f="li",g=a;k.lower(g.nodeName)!==e;)g=g.parentNode;var h=g.childNodes[d],j=g.getAttribute("colIndex"),l=g.getAttribute("value"),m=g.getAttribute("indexes");if(a.checked){if(""===c){if(m&&""!==m)for(var n=m.split(b.separator),o=0;o<n.length;o++){var p=i.id(b.fltIds[j]+"_"+n[o]);p&&(p.checked=!1,i.removeClass(g.childNodes[n[o]],this.checkListSlcItemCssClass))}g.setAttribute("value",""),g.setAttribute("indexes","")}else l=l?l:"",c=k.trim(l+" "+c+" "+b.orOperator),d=m+d+b.separator,g.setAttribute("value",c),g.setAttribute("indexes",d),i.id(b.fltIds[j]+"_0")&&(i.id(b.fltIds[j]+"_0").checked=!1);k.lower(h.nodeName)===f&&(i.removeClass(g.childNodes[0],this.checkListSlcItemCssClass),i.addClass(h,this.checkListSlcItemCssClass))}else{if(""!==c){var q=new RegExp(k.rgxEsc(c+" "+b.orOperator));l=l.replace(q,""),g.setAttribute("value",k.trim(l));var r=new RegExp(k.rgxEsc(d+b.separator));m=m.replace(r,""),g.setAttribute("indexes",m)}k.lower(h.nodeName)===f&&i.removeClass(h,this.checkListSlcItemCssClass)}}},writable:!0,configurable:!0}}),a}()}Object.defineProperty(a,"__esModule",{value:!0})}),define("modules/rowsCounter",["exports","../dom","../types","../helpers"],function(a,b,c,d){{var e=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototyp
break;case"setvalue":Dom.id(labThisCol[i]).value=result;break;case"createtextnode":var oldnode=Dom.id(labThisCol[i]).firstChild,txtnode=Dom.text(result);Dom.id(labThisCol[i]).replaceChild(txtnode,oldnode)}}else try{Dom.id(labThisCol[i]).innerHTML=isNaN(result)||!isFinite(result)||0===nbvalues?".":result.toFixed(precision)}catch(e){}}var totRow=totRowIndex&&totRowIndex[ucol]?row[totRowIndex[ucol]]:null;totRow&&(totRow.style.display="")}this.onAfterOperation&&this.onAfterOperation.call(null,this.tf)}},writable:!0,configurable:!0}}),ColOps}();Object.defineProperty(exports,"__esModule",{value:!0})}),SortableTable.gecko="Gecko"==navigator.product,SortableTable.msie=/msie/i.test(navigator.userAgent),SortableTable.removeBeforeSort=SortableTable.gecko,SortableTable.prototype.onsort=function(){},SortableTable.prototype.defaultDescending=!1,SortableTable.prototype._sortTypeInfo={},SortableTable.prototype.setTable=function(a){this.tHead&&this.uninitHeader(),this.element=a,this.setTHead(a.tHead),this.setTBody(a.tBodies[0])},SortableTable.prototype.setTHead=function(a){this.tHead&&this.tHead!=a&&this.uninitHeader(),this.tHead=a,this.initHeader(this.sortTypes)},SortableTable.prototype.setTBody=function(a){this.tBody=a},SortableTable.prototype.setSortTypes=function(a){this.tHead&&this.uninitHeader(),this.sortTypes=a||[],this.tHead&&this.initHeader(this.sortTypes)},SortableTable.prototype.initHeader=function(a){if(this.tHead){var b=this.tHead.rows[0].cells,c=this.tHead.ownerDocument||this.tHead.document;this.sortTypes=a||[];for(var d,e,f=b.length,g=0;f>g;g++)e=b[g],null!=this.sortTypes[g]&&"None"!=this.sortTypes[g]?(d=c.createElement("IMG"),d.src="images/blank.png",e.appendChild(d),null!=this.sortTypes[g]&&(e._sortType=this.sortTypes[g]),"undefined"!=typeof e.addEventListener?e.addEventListener("click",this._headerOnclick,!1):"undefined"!=typeof e.attachEvent?e.attachEvent("onclick",this._headerOnclick):e.onclick=this._headerOnclick):(e.setAttribute("_sortType",a[g]),e._sortType="None");this.updateHeaderArrows()}},SortableTable.prototype.uninitHeader=function(){if(this.tHead)for(var a,b=this.tHead.rows[0].cells,c=b.length,d=0;c>d;d++)a=b[d],null!=a._sortType&&"None"!=a._sortType&&(a.removeChild(a.lastChild),"undefined"!=typeof a.removeEventListener?a.removeEventListener("click",this._headerOnclick,!1):"undefined"!=typeof a.detachEvent&&a.detachEvent("onclick",this._headerOnclick),a._sortType=null,a.removeAttribute("_sortType"))},SortableTable.prototype.updateHeaderArrows=function(){if(this.tHead)for(var a,b=this.tHead.rows[0].cells,c=b.length,d=0;c>d;d++)null!=b[d]._sortType&&"None"!=b[d]._sortType&&(a=b[d].lastChild,a.className=d==this.sortColumn?"sort-arrow "+(this.descending?"descending":"ascending"):"sort-arrow")},SortableTable.prototype.headerOnclick=function(a){for(var b=a.target||a.srcElement;"TD"!=b.tagName;)b=b.parentNode;this.sort(SortableTable.msie?SortableTable.getCellIndex(b):b.cellIndex)},SortableTable.getCellIndex=function(a){var b,c=a.parentNode.childNodes,d=c.length;for(b=0;c[b]!=a&&d>b;b++);return b},SortableTable.prototype.getSortType=function(a){return this.sortTypes[a]||"String"},SortableTable.prototype.sort=function(a,b,c){if(this.tBody&&(null==c&&(c=this.getSortType(a)),"None"!=c)){this.descending=null==b?this.sortColumn!=a?this.defaultDescending:!this.descending:b,this.sortColumn=a,"function"==typeof this.onbeforesort&&this.onbeforesort();var d=this.getSortFunction(c,a),e=this.getCache(c,a),f=this.tBody;if(e.sort(d),this.descending&&e.reverse(),SortableTable.removeBeforeSort){var g=f.nextSibling,h=f.parentNode;h.removeChild(f)}for(var i=e.length,j=0;i>j;j++)f.appendChild(e[j].element);SortableTable.removeBeforeSort&&h.insertBefore(f,g),this.updateHeaderArrows(),this.destroyCache(e),"function"==typeof this.onsort&&this.onsort()}},SortableTable.prototype.asyncSort=function(a,b,c){var d=this;this._asyncsort=function(){d.sort(a,b,c)},window.setTimeout(this._asyncsort,1)},SortableTable.prototype.getCache=function(a,b){if(!this.tBody)return[];for(var c,d=this.tBody.rows,e=d.length,f=new Array(e),g=0;e>g;g++)c=d[g],f[g
}else{var n=h===this.fltTypeInp?"text":"hidden",o=I.create(this.fltTypeInp,["id",this.prfxFlt+f+"_"+this.id],["type",n],["ct",f]);if("hidden"!==n&&this.watermark&&o.setAttribute("placeholder",this.isWatermarkArray?this.watermark[f]:this.watermark),o.className=a,o.onfocus=this.Evt._OnInpFocus,i?(I.id(i).appendChild(o),this.externalFltEls.push(o)):g.appendChild(o),this.fltIds.push(this.prfxFlt+f+"_"+this.id),o.onkeypress=this.Evt._DetectKey,o.onkeydown=this.Evt._OnKeyDown,o.onkeyup=this.Evt._OnKeyUp,o.onblur=this.Evt._OnInpBlur,this.rememberGridValues){var p=this.Cpt.store.getFilterValues(this.fltsValuesCookie);" "!=p[f]&&this.setFilterValue(f,p[f],!1)}}if(f==c-1&&this.displayBtn){var q=I.create(this.fltTypeInp,["id",this.prfxValButton+f+"_"+this.id],["type","button"],["value",this.btnText]);q.className=this.btnCssClass,i?I.id(i).appendChild(q):g.appendChild(q),q.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;this.rowsCounter&&(this.Cpt.rowsCounter=new V(this),this.Cpt.rowsCounter.init()),this.statusBar&&(this.Cpt.statusBar=new W(this),this.Cpt.statusBar.init()),(this.paging||this.Cpt.paging&&this.Cpt.paging.isPagingRemoved)&&(this.Cpt.paging=new X(this),this.Cpt.paging.init()),this.btnReset&&(this.Cpt.clearButton=new Y(this),this.Cpt.clearButton.init()),this.helpInstructions&&(this.Cpt.help=new Z(this),this.Cpt.help.init()),this.hasColWidth&&!this.gridLayout&&this.setColWidths(),this.alternateBgs&&(this.Cpt.alternateRows=new $(this),this.Cpt.alternateRows.init()),this.hasColOperation&&(this.Cpt.colOps=new _(this),this.Cpt.colOps.calc()),this.sort&&this.setSort(),(this.selectable||this.editable)&&this.SetEditable(),this.isFirstLoad=!1,this._hasGrid=!0,(this.rememberGridValues||this.rememberPageLen||this.rememberPageNb)&&this.resetValues(),this.gridLayout||I.addClass(this.tbl,this.prfxTf),this.loader&&this.Cpt.loader.show("none"),this.hasExtensions&&this.LoadExtensions(),this.onFiltersLoaded&&this.onFiltersLoaded.call(null,this)}},writable:!0,configurable:!0},EvtManager:{value: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.dropdown:d.linkedFilters?d.Cpt.dropdown._build(e,!0):d.Cpt.dropdown._build(e,!1,f,g);break;case d.Evt.name.checklist:d.Cpt.checkList._build(e,f,g);break;case d.Evt.name.changepage:d.Cpt.paging._changePage(h);break;case d.Evt.name.clear:d._clearFilters(),d._filter();break;case d.Evt.name.changeresultsperpage:d.Cpt.paging._changeResultsPerPage();break;case d.Evt.name.resetvalues:d._resetValues(),d._filter();break;case d.Evt.name.resetpage:d.Cpt.paging._resetPage(d.pgNbCookie);break;case d.Evt.name.resetpagelength:d.Cpt.paging._resetPageLength(d.pgLenCookie);break;case d.Evt.name.sort:break;case d.Evt.name.loadextensions:d._LoadExtensions();break;case d.Evt.name.loadthemes:d._LoadThemes();break;default:d["_"+a].call(null,d,b)}d.statusBar&&d.Cpt.statusBar.message(""),d.loader&&d.Cpt.loader.show("none")}}var d=this,e=b&&void 0!==b.slcIndex?b.slcIndex:null,f=b&&void 0!==b.slcExternal?b.slcExternal:!1,g=b&&void 0!==b.slcId?b.slcId:null,h=b&&void 0!==b.pgIndex?b.pgIndex:null;if(this.loader||this.statusBar){try{this.Cpt.loader.show(""),this.Cpt.statusBar.message(this["msg"+a])}catch(i){}bb.setTimeout(c,this.execDelay)}else c()},writable:!0,configurable:!0},ImportModule:{value:function(a){a.path&&a.name&&this.includeFile(a.name,a.path,a.init)},writable:!0,configurable:!0},LoadExtensions:{value:function(){if(!this.Ext){var a=this;this.Ext={list:{},add:function(b,c,d,e){var f=d.split("/")[d.split("/").length-1],g=new RegExp(f),h=d.replace(g,"");a.Ext.list[b]={name:b,description:c,file:f,path:h,callback:e}}}}this.EvtManager(this.Evt.name.loadextensions)},writable:!0,configurable:!0},_LoadExtensions:{value:function(){if(this.hasExtensions&&L.isArray(this.extensions.name)&&L.isArray(this.extensions.src))for(var a=this.extensions,b=