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

10 lines
107 KiB
JavaScript
Raw Normal View History

/*------------------------------------------------------------------------
- TableFilter v3.0.0 by Max Guglielmi
2015-02-15 05:04:57 +01:00
- build date: Sun Feb 15 2015 15:02:21
- http://tablefilter.free.fr
- Copyright (c) 2014, Licensed under the MIT License
------------------------------------------------------------------------*/
2015-02-15 05:04:57 +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.
this.rowsCounterSpan.innerHTML=c,this.onAfterRefreshCounter&&this.onAfterRefreshCounter.call(null,b,this.rowsCounterSpan,c)}}},destroy:{writable:!0,value:function(){var a=this.tf;a.hasGrid&&this.rowsCounterSpan&&(!this.rowsCounterTgtId&&this.rowsCounterDiv?h.isIE()?this.rowsCounterDiv.outerHTML="":this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv):f.id(this.rowsCounterTgtId).innerHTML="",this.rowsCounterSpan=null,this.rowsCounterDiv=null)}}}),a}();a.RowsCounter=i}),define("modules/paging",["exports","../dom","../types","../string","../helpers","../event"],function(a,b,c,d,e,f){var g=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},h=b.Dom,i=c.Types,j=d.Str,k=(e.Helpers,f.Event),l=function(){var a=function(a){var b=a.fObj;this.btnPageCssClass=b.paging_btn_css_class||"pgInp",this.pagingSlc=null,this.resultsPerPageSlc=null,this.pagingTgtId=b.paging_target_id||null,this.pagingLength=isNaN(b.paging_length)?10:b.paging_length,this.resultsPerPageTgtId=b.results_per_page_target_id||null,this.pgSlcCssClass=b.paging_slc_css_class||"pgSlc",this.pgInpCssClass=b.paging_inp_css_class||"pgNbInp",this.resultsPerPage=b.results_per_page||null,this.hasResultsPerPage=i.isArray(this.resultsPerPage),this.resultsSlcCssClass=b.results_slc_css_class||"rspg",this.resultsSpanCssClass=b.results_span_css_class||"rspgSpan",this.startPagingRow=0,this.nbPages=0,this.currentPageNb=1,this.btnNextPageText=b.btn_next_page_text||">",this.btnPrevPageText=b.btn_prev_page_text||"<",this.btnLastPageText=b.btn_last_page_text||">|",this.btnFirstPageText=b.btn_first_page_text||"|<",this.btnNextPageHtml=b.btn_next_page_html||(a.enableIcons?'<input type="button" value="" class="'+this.btnPageCssClass+' nextPage" title="Next page" />':null),this.btnPrevPageHtml=b.btn_prev_page_html||(a.enableIcons?'<input type="button" value="" class="'+this.btnPageCssClass+' previousPage" title="Previous page" />':null),this.btnFirstPageHtml=b.btn_first_page_html||(a.enableIcons?'<input type="button" value="" class="'+this.btnPageCssClass+' firstPage" title="First page" />':null),this.btnLastPageHtml=b.btn_last_page_html||(a.enableIcons?'<input type="button" value="" class="'+this.btnPageCssClass+' lastPage" title="Last page" />':null),this.pageText=b.page_text||" Page ",this.ofText=b.of_text||" of ",this.nbPgSpanCssClass=b.nb_pages_css_class||"nbpg",this.hasPagingBtns=b.paging_btns===!1?!1:!0,this.pageSelectorType=b.page_selector_type||a.fltTypeSlc,this.onBeforeChangePage=i.isFn(b.on_before_change_page)?b.on_before_change_page:null,this.onAfterChangePage=i.isFn(b.on_after_change_page)?b.on_after_change_page:null;var c=this.refRow,d=this.nbRows;this.nbPages=Math.ceil((d-c)/this.pagingLength);var e=this;this.evt={slcIndex:function(){return e.pageSelectorType===a.fltTypeSlc?e.pagingSlc.options.selectedIndex:parseInt(e.pagingSlc.value,10)-1},nbOpts:function(){return e.pageSelectorType===a.fltTypeSlc?parseInt(e.pagingSlc.options.length,10)-1:e.nbPages-1},next:function(){var a=e.evt.slcIndex()<e.evt.nbOpts()?e.evt.slcIndex()+1:0;e.changePage(a)},prev:function(){var a=e.evt.slcIndex()>0?e.evt.slcIndex()-1:e.evt.nbOpts();e.changePage(a)},last:function(){e.changePage(e.evt.nbOpts())},first:function(){e.changePage(0)},_detectKey:function(b){var c=a.Evt.getKeyCode(b);13===c&&(a.sorted?(a.Filter(),e.changePage(e.evt.slcIndex())):e.changePage(),this.blur())},slcPagesChange:null,nextEvt:null,prevEvt:null,lastEvt:null,firstEvt:null},this.tf=a};return g(a,null,{init:{writable:!0,value:function(){var a,b=this,c=this.tf,d=this.evt;this.hasResultsPerPage&&(this.resultsPerPage.length<2?this.hasResultsPerPage=!1:(this.pagingLength=this.resultsPerPage[1][0],this.setResultsPerPage())),d.slcPagesChange=function(a){b.changePage(),a.target.blur()},this.pageSelectorType===c.fltTypeSlc&&(a=h.create(c.fltTypeSlc,["id",c.prfxSlcPages+c.id]),a.className=this.pgSlcCssClass,k.add(a,"change",d.slcPagesChange)),this.pageSelectorType===c.fltTypeInp&&(a=h.create(c.fltTypeInp,["id",c.prfxSlcPages+c.id],["value",this.currentPageNb]),a.className=this.pgInpCssClass,k
}else this.value===p.inpWatermark&&""!==p.inpWatermark&&(this.value="",h.removeClass(this,p.inpWatermarkCssClass));p.popUpFilters&&(g.cancel(b),g.stop(b)),p.ezEditTable&&(p.editable&&p.ezEditTable.Editable.Remove(),p.selectable&&p.ezEditTable.Selection.Remove())},_OnSlcFocus:function(a){var b=a||f.event;if(p.activeFilterId=this.getAttribute("id"),p.activeFlt=h.id(p.activeFilterId),p.fillSlcOnDemand&&"0"===this.getAttribute("filled")){var c=this.getAttribute("ct");p.Cpt.dropdown._build(c)}p.popUpFilters&&(g.cancel(b),g.stop(b))},_OnSlcChange:function(a){if(p.activeFlt){var b=(p.activeFlt.getAttribute("colIndex"),a||f.event);p.popUpFilters&&g.stop(b),p.onSlcChange&&p.Filter()}},_OnSlcBlur:function(){},_OnCheckListClick:function(){if(p.fillSlcOnDemand&&"0"===this.getAttribute("filled")){var a=this.getAttribute("ct");p.Cpt.checkList._build(a),p.Cpt.checkList.checkListDiv[a].onclick=null,p.Cpt.checkList.checkListDiv[a].title=""}},_OnCheckListFocus:function(){p.activeFilterId=this.firstChild.getAttribute("id"),p.activeFlt=h.id(p.activeFilterId)},_OnCheckListBlur:function(){},_OnBtnClick:function(){p.Filter()},_OnSlcPagesChangeEvt:null,_EnableSlc:function(){this.firstChild.disabled=!1,this.firstChild.focus(),this.onclick=null},_Clear:function(){p.ClearFilters()},_OnHelpBtnClick:function(){p._ToggleHelp()},_Paging:{nextEvt:null,prevEvt:null,lastEvt:null,firstEvt:null}}}}function c(a,b){if(a){b||(b="us");var c=a;return c="us"===k.lower(b)?+c.replace(/[^\d\.-]/g,""):+c.replace(/[^\d\,-]/g,"").replace(",",".")}}function d(a,b){for(var c=!1,d=b?b:"script",e="script"==d?"src":"href",f=h.tag(s,d),g=0;g<f.length;g++)if(void 0!==f[g][e]&&f[g][e].match(a)){c=!0;break}return c}function e(){if(s.body.__defineGetter__&&HTMLElement){var a=HTMLElement.prototype;a.__defineGetter__&&a.__defineGetter__("outerHTML",function(){var a=this.parentNode,b=h.create(a.tagName);b.appendChild(this);var c=b.innerHTML;return a.appendChild(this),c}),a.__defineSetter__&&HTMLElement.prototype.__defineSetter__("outerHTML",function(a){var b=this.ownerDocument.createRange();b.setStartBefore(this);var c=b.createContextualFragment(a);return this.parentNode.replaceChild(c,this),a})}}var f=this,g=a("event").Event,h=a("dom").Dom,k=a("string").Str,l=a("cookie").Cookie,m=a("types").Types,n=a("array").Arr,o=a("helpers").Helpers,p=a("date").DateHelper,q=p.isValid,r=p.format,s=(a("sort").Sort,f.document);return b.prototype={init:function(){if(!this.hasGrid){this.gridLayout&&(this.refRow=null===this.startRow?0:this.startRow),this.popUpFilters&&(0===this.filtersRowIndex&&1===this.headersRow||this.gridLayout)&&(this.headersRow=0);var b,c=this.fObj||{},d=this.singleSearchFlt?1:this.nbCells;if(void 0===window["tf_"+this.id]&&(window["tf_"+this.id]=this),this.IncludeFile(this.stylesheetId,this.stylesheet,null,"link"),this.hasThemes&&this._LoadThemes(),this.rememberGridValues||this.rememberPageNb||this.rememberPageLen){var e=a("modules/store").Store;this.Cpt.store=new e(this)}if(this.gridLayout){var f=a("modules/gridLayout").GridLayout;this.Cpt.gridLayout=new f(this),this.Cpt.gridLayout.init()}if(this.loader){var i=a("modules/loader").Loader;this.Cpt.loader=new i(this)}if(this.highlightKeywords){var j=a("modules/highlightKeywords").HighlightKeyword;this.Cpt.highlightKeyword=new j(this)}if(this.popUpFilters&&(!this.isFirstLoad&&!this.gridLayout&&this.headersRow--,this.SetPopupFilterIcons()),this.fltGrid)if(this.isFirstLoad){var l;if(!this.gridLayout){var m=h.tag(this.tbl,"thead");l=m.length>0?m[0].insertRow(this.filtersRowIndex):this.tbl.insertRow(this.filtersRowIndex),this.headersRow>1&&this.filtersRowIndex<=this.headersRow&&!this.popUpFilters&&this.headersRow++,this.popUpFilters&&this.headersRow++,l.className=this.fltsRowCssClass,this.isExternalFlt&&(!this.gridLayout||this.popUpFilters)&&(l.style.display="none")}this.nbFilterableRows=this.GetRowsNb(),this.nbVisibleRows=this.nbFilterableRows,this.nbRows=this.tbl.rows.length;for(var n=0;d>n;n++){var o=h.create(this.fltCellTag),p=this["col"+n],q=this.isExternalFlt&&this.externalFltTgtIds?this.externalFltTgtIds[n]:null;if(this.singl
else if(g.hasColNbFormat&&g.colNbFormat[d]?(i=c(b,g.colNbFormat[d]),j=g.colNbFormat[d]):","===g.thousandsSeparator&&"."===g.decimalSeparator?(i=c(b,"us"),j="us"):(i=c(b,"eu"),j="eu"),C)f=i<=c(a.replace(l,""),j);else if(E)f=i>=c(a.replace(m,""),j);else if(B)f=i<c(a.replace(o,""),j);else if(D)f=i>c(a.replace(p,""),j);else if(F)f=g.__containsStr(a.replace(s,""),b)?!1:!0;else if(H)f=g.__containsStr(a.replace(t,""),b,null,!1);else if(G)f=g.__containsStr(a.replace(u,""),b,null,!0);else if(I)f=0===b.indexOf(a.replace(v,""))?!0:!1;else if(K){var U=a.replace(w,"");f=b.lastIndexOf(U,b.length-1)===b.length-1-(U.length-1)&&b.lastIndexOf(U,b.length-1)>-1?!0:!1}else if(L)f=k.isEmpty(b);else if(M)f=!k.isEmpty(b);else if(N)try{var V=a.replace(A,""),W=new RegExp(V);f=W.test(b)}catch(X){f=!1}else{var Y=e["col_"+d];f=g.__containsStr(a,b,Y?Y:this.fltTypeInp)}return f}if(this.fltGrid&&(this.hasGrid||this.isFirstLoad)){this.onBeforeFilter&&this.onBeforeFilter.call(null,this),""!==this.inpWatermark&&this.SetWatermark(!1);var d=this.tbl.rows,e=this.fObj||{},f=0;this.validRowsIndex=[];var g=this;this.highlightKeywords&&this.Cpt.highlightKeyword.unhighlightAll(),this.popUpFilters&&this.SetAllPopupFiltersIcon(),this.markActiveColumns&&this.ClearActiveColumns(),this.searchArgs=this.GetFiltersValue();for(var i,j,l=new RegExp(this.leOperator),m=new RegExp(this.geOperator),o=new RegExp(this.lwOperator),p=new RegExp(this.grOperator),s=new RegExp(this.dfOperator),t=new RegExp(k.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(k.rgxEsc(this.rgxOperator)),B=this.refRow;B<this.nbRows;B++){"none"===d[B].style.display&&(d[B].style.display="");var C=d[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=k.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=k.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(k.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),h.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&&n.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&&k.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,d){if(this.fltGrid){for(var e=this.tbl.rows,f=[],