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

10 lines
107 KiB
JavaScript
Raw Normal View History

/*------------------------------------------------------------------------
- TableFilter v3.0.0 by Max Guglielmi
2015-03-06 09:49:30 +01:00
- build date: Fri Mar 06 2015 19:46:54
- http://tablefilter.free.fr
- Copyright (c) 2014, Licensed under the MIT License
------------------------------------------------------------------------*/
2015-03-06 09:49:30 +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("cookie",["exports"],function(a){var b={};b.write=function(a,b,c){var d="";c&&(d=new Date((new Date).getTime()+36e5*c),d="; expires="+d.toGMTString()),document.cookie=a+"="+escape(b)+d},b.read=function(a){var b="",c=a+"=";if(document.cookie.length>0){var d=document.cookie,e=d.indexOf(c);if(-1!==e){e+=c.length;var f=d.indexOf(";",e);-1===f&&(f=d.length),b=unescape(d.substring(e,f))}}return b},b.remove=function(a){this.write(a,"",-1)},b.valueToArray=function(a,b){b||(b=",");var c=this.read(a),d=c.split(b);return d},b.getValueByIndex=function(a,b,c){c||(c=",");var d=this.valueToArray(a,c);return d[b]},a.Cookie=b}),define("sort",["exports","string"],function(a,b){var c=b.Str,d={ignoreCase:function(a,b){var d=c.lower(a),e=c.lower(b);return e>d?-1:d>e?1:0}};a.Sort=d}),define("modules/store",["exports","../cookie"],function(a,b){{var c=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},d=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},e=b.Cookie;a.Store=function(){function a(b){d(this,a);var c=b.config();this.duration=
},writable:!0,configurable:!0}}),a}()}Object.defineProperty(a,"__esModule",{value:!0})}),define("modules/statusBar",["exports","../dom","../event","../types","../helpers"],function(a,b,c,d,e){{var f=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},g=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},h=b.Dom,i=(c.Event,d.Types),j=e.Helpers,k=window;a.StatusBar=function(){function a(b){g(this,a);var c=b.config();this.statusBarTgtId=c.status_bar_target_id||null,this.statusBarDiv=null,this.statusBarSpan=null,this.statusBarSpanText=null,this.statusBarText=c.status_bar_text||"",this.statusBarCssClass=c.status_bar_css_class||"status",this.statusBarCloseDelay=250,this.onBeforeShowMsg=i.isFn(c.on_before_show_msg)?c.on_before_show_msg:null,this.onAfterShowMsg=i.isFn(c.on_after_show_msg)?c.on_after_show_msg:null,this.tf=b}return f(a,null,{init:{value:function(){var a=this.tf;if(a.hasGrid()||a.isFirstLoad){var b=h.create("div",["id",a.prfxStatus+a.id]);b.className=this.statusBarCssClass;var c=h.create("span",["id",a.prfxStatusSpan+a.id]),d=h.create("span",["id",a.prfxStatusTxt+a.id]);d.appendChild(h.text(this.statusBarText)),this.statusBarTgtId||a.setToolbar();var e=this.statusBarTgtId?h.id(this.statusBarTgtId):a.lDiv;this.statusBarDiv&&j.isIE()&&(this.statusBarDiv.outerHTML=""),this.statusBarTgtId?(e.appendChild(d),e.appendChild(c)):(b.appendChild(d),b.appendChild(c),e.appendChild(b)),this.statusBarDiv=b,this.statusBarSpan=c,this.statusBarSpanText=d}},writable:!0,configurable:!0},message:{value:function(){var a=this,b=void 0===arguments[0]?"":arguments[0],c=this.tf;if(c.statusBar&&this.statusBarSpan){this.onBeforeShowMsg&&this.onBeforeShowMsg.call(null,this.tf,b);var d=""===b?this.statusBarCloseDelay:1;k.setTimeout(function(){a.statusBarSpan.innerHTML=b,a.onAfterShowMsg&&a.onAfterShowMsg.call(null,a.tf,b)},d)}},writable:!0,configurable:!0},destroy:{value:function(){var a=this.tf;a.hasGrid()&&this.statusBarDiv&&(this.statusBarDiv.innerHTML="",this.statusBarDiv.parentNode.removeChild(this.statusBarDiv),this.statusBarSpan=null,this.statusBarSpanText=null,this.statusBarDiv=null)},writable:!0,configurable:!0}}),a}()}Object.defineProperty(a,"__esModule",{value:!0})}),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=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},i=b.Dom,j=c.Types,k=d.Str,l=(e.Helpers,f.Event);a.Paging=function(){function a(b){h(this,a);var c=b.config();this.btnPageCssClass=c.paging_btn_css_class||"pgInp",this.pagingSlc=null,this.resultsPerPageSlc=null,this.pagingTgtId=c.paging_target_id||null,this.pagingLength=isNaN(c.paging_length)?10:c.paging_length,this.resultsPerPageTgtId=c.results_per_page_target_id||null,this.pgSlcCssClass=c.paging_slc_css_class||"pgSlc",this.pgInpCssClass=c.paging_inp_css_class||"pgNbInp",this.resultsPerPage=c.results_per_page||null,this.hasResultsPerPage=j.isArray(this.resultsPerPage),this.resultsSlcCssClass=c.results_slc_css_class||"rspg",this.resultsSpanCssClass=c.results_span_css_class||"rspgSpan",this.startPagingRow=0,this.nbPages=0,this.currentPageNb=1,this.btnNextPageText=c.btn_next_page_text||">",this.btnPrevPageText=c.btn_prev_page_text||"<",this.btnLastPageText=c.btn_last_page_text||">|",this.btnFirstPageText=c.btn_first_page_text||"|<",this.btnNextPageHtml=c.btn_next_page_html||(b.enableIcons?'<input type="button" value="" class="'+this.btnPageCssClass+' nextPage" title="Next page" />':null),this.btnPrevPageHtml=c.btn_prev_page_html||(b.enableIcons?'<input type="button" value="" class="'+this.btnPageCssClass+' previousPage" title="Previous page" />':null),this.btnFirstPageHtml=c.btn_first_page_html||(b.enableIcons?'<input type="button" value="" class="'+this.btnPageCssClass+' firstPage" title="First page" />':null),this.btnLastPageHtml=c.btn_last_page_html||(b.enableIcons?'<input type="button" val
var k=this;this.Evt={name:{filter:"Filter",dropdown:"dropdown",checklist:"checkList",changepage:"changePage",clear:"Clear",changeresultsperpage:"changeResults",resetvalues:"ResetValues",resetpage:"resetPage",resetpagelength:"resetPageLength",sort:"Sort",loadextensions:"LoadExtensions",loadthemes:"LoadThemes"},getKeyCode:function(a){return a.charCode?a.charCode:a.keyCode?a.keyCode:a.which?a.which:0},_DetectKey:function(a){if(k.enterKey){var b=a||$.event;if(b){var c=k.Evt.getKeyCode(b);13===c?(k._filter(),F.cancel(b),F.stop(b)):(k.isUserTyping=!0,$.clearInterval(k.onKeyUpTimer),k.onKeyUpTimer=void 0)}}},_OnKeyUp:function(a){function b(){$.clearInterval(k.onKeyUpTimer),k.onKeyUpTimer=void 0,k.isUserTyping||(k.filter(),k.isUserTyping=null)}if(k.onKeyUp){var c=a||$.event,d=k.Evt.getKeyCode(c);k.isUserTyping=!1,13!==d&&9!==d&&27!==d&&38!==d&&40!==d?void 0===k.onKeyUpTimer&&(k.onKeyUpTimer=$.setInterval(b,k.onKeyUpDelay)):($.clearInterval(k.onKeyUpTimer),k.onKeyUpTimer=void 0)}},_OnKeyDown:function(){k.onKeyUp&&(k.isUserTyping=!0)},_OnInpBlur:function(){k.onKeyUp&&(k.isUserTyping=!1,$.clearInterval(k.onKeyUpTimer)),k.ezEditTable&&(k.editable&&k.ezEditTable.Editable.Set(),k.selectable&&k.ezEditTable.Selection.Set())},_OnInpFocus:function(a){var b=a||$.event;k.activeFilterId=this.getAttribute("id"),k.activeFlt=G.id(k.activeFilterId),k.popUpFilters&&(F.cancel(b),F.stop(b)),k.ezEditTable&&(k.editable&&k.ezEditTable.Editable.Remove(),k.selectable&&k.ezEditTable.Selection.Remove())},_OnSlcFocus:function(a){var b=a||$.event;if(k.activeFilterId=this.getAttribute("id"),k.activeFlt=G.id(k.activeFilterId),k.fillSlcOnDemand&&"0"===this.getAttribute("filled")){var c=this.getAttribute("ct");k.Cpt.dropdown._build(c)}k.popUpFilters&&(F.cancel(b),F.stop(b))},_OnSlcChange:function(a){if(k.activeFlt){var b=(k.activeFlt.getAttribute("colIndex"),a||$.event);k.popUpFilters&&F.stop(b),k.onSlcChange&&k.filter()}},_OnSlcBlur:function(){},_OnCheckListClick:function(){if(k.fillSlcOnDemand&&"0"===this.getAttribute("filled")){var a=this.getAttribute("ct");k.Cpt.checkList._build(a),k.Cpt.checkList.checkListDiv[a].onclick=null,k.Cpt.checkList.checkListDiv[a].title=""}},_OnCheckListFocus:function(){k.activeFilterId=this.firstChild.getAttribute("id"),k.activeFlt=G.id(k.activeFilterId)},_OnCheckListBlur:function(){},_OnBtnClick:function(){k.filter()},_OnSlcPagesChangeEvt:null,_EnableSlc:function(){this.firstChild.disabled=!1,this.firstChild.focus(),this.onclick=null},_Paging:{nextEvt:null,prevEvt:null,lastEvt:null,firstEvt:null}}}}return D(a,null,{init:{value:function(){if(!this._hasGrid){this.tbl||(this.tbl=G.id(this.id)),this.gridLayout&&(this.refRow=null===this.startRow?0:this.startRow),this.popUpFilters&&(0===this.filtersRowIndex&&1===this.headersRow||this.gridLayout)&&(this.headersRow=0);var a,b=this.cfg,c=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)&&(this.Cpt.store=new M(this)),this.gridLayout&&(this.Cpt.gridLayout=new N(this),this.Cpt.gridLayout.init()),this.loader&&(this.Cpt.loader||(this.Cpt.loader=new O(this))),this.highlightKeywords&&(this.Cpt.highlightKeyword=new P(this)),this.popUpFilters&&(this.Cpt.popupFilter||(this.Cpt.popupFilter=new Q(this)),this.Cpt.popupFilter.init()),this.fltGrid)if(this.isFirstLoad){var d;if(!this.gridLayout){var e=G.tag(this.tbl,"thead");d=e.length>0?e[0].insertRow(this.filtersRowIndex):this.tbl.insertRow(this.filtersRowIndex),this.headersRow>1&&this.filtersRowIndex<=this.headersRow&&!this.popUpFilters&&this.headersRow++,this.popUpFilters&&this.headersRow++,d.className=this.fltsRowCssClass,this.isExternalFlt&&(!this.gridLayout||this.popUpFilters)&&(d.style.display="none")}this.nbFilterableRows=this.getRowsNb(),this.nbVisibleRows=this.nbFilterableRows,this.nbRows=this.tbl.rows.length;for(var f=0;c>f;f++){this.popUpFilters&&this.Cpt.popupFilter.build(f);var g=G.create(this.fltCellTag),h=this["col"+f],i=
}},writable:!0,configurable:!0},clearActiveColumns:{value:function(){for(var a=0;a<this.fltIds.length;a++)G.removeClass(this.getHeaderElement(a),this.activeColumnsCssClass)},writable:!0,configurable:!0},refresh:{value:function(b){var c=b?b:this.cfg,d=this.sort;d&&(this.sort=!1),this.nbRows=this.getRowsNb(),this.remove(),window["tf_"+this.id]=new a(this.id,this.startRow,c),this.isFirstLoad=!0,this.fltIds=[],this.init(),d&&(this.st.setTBody(this.tbl.tBodies[0]),this.sort=!0)},writable:!0,configurable:!0},linkFilters:{value:function(){var a=this.getFiltersByType(this.fltTypeSlc,!0),b=this.getFiltersByType(this.fltTypeMulti,!0),c=this.getFiltersByType(this.fltTypeCheckList,!0),d=a.concat(b);if(d=d.concat(c),this.activeFilterId){var e=this.activeFilterId.split("_")[0];e=e.split(this.prfxFlt)[1];for(var f,g=0;g<d.length;g++){var h=G.id(this.fltIds[d[g]]);if(f=this.getFilterValue(d[g]),e!==d[g]||this.paging&&K.has(a,d[g])&&e===d[g]||!this.paging&&(K.has(c,d[g])||K.has(b,d[g]))||f===this.displayAllText){if(K.has(c,d[g])?this.Cpt.checkList.checkListDiv[d[g]].innerHTML="":h.innerHTML="",this.fillSlcOnDemand){var i=G.createOpt(this.displayAllText,"");h&&h.appendChild(i)}K.has(c,d[g])?this.Cpt.checkList._build(d[g]):this.Cpt.dropdown._build(d[g],!0),this.setFilterValue(d[g],f)}}}},writable:!0,configurable:!0},_resetGrid:{value:function(){function a(a){a.tbl.deleteRow(a.filtersRowIndex),a.remove(),a.fltIds=[],a.isFirstLoad=!0,a.popUpFilters&&a.Cpt.popupFilter.destroy(),a._AddGrid()}if(!this.isFirstLoad){if(this.gridLayout||this.tbl.rows[this.filtersRowIndex].parentNode.insertBefore(this.fltGridEl,this.tbl.rows[this.filtersRowIndex]),this.isExternalFlt)for(var b=0;b<this.externalFltTgtIds.length;b++){var c=G.id(this.externalFltTgtIds[b]);if(c){c.appendChild(this.externalFltEls[b]);var d=this["col"+b];this.gridLayout&&""===this.externalFltEls[b].innerHTML&&d!==this.fltTypeInp&&((d===this.fltTypeSlc||d===this.fltTypeMulti)&&this.Cpt.dropdown.build(b),d===this.fltTypeCheckList&&this.Cpt.checkList.build(b))}}this.nbFilterableRows=this.getRowsNb(),this.nbVisibleRows=this.nbFilterableRows,this.nbRows=this.tbl.rows.length,this.isSortEnabled&&(this.sort=!0),""===this.tbl.rows[this.filtersRowIndex].innerHTML?a(this):this.popUpFilters&&(this.headersRow++,this.Cpt.popupFilter.buildAll()),this.gridLayout||G.addClass(this.tbl,this.prfxTf),this._hasGrid=!0}},writable:!0,configurable:!0},_containsStr:{value:function(a,b,c,d){var e,f=this.matchCase?"g":"gi",g=d?d:this.exactMatch;return e=g||c!==this.fltTypeInp&&c?new RegExp("(^\\s*)"+H.rgxEsc(a)+"(\\s*$)",f):new RegExp(H.rgxEsc(a),f),e.test(b)},writable:!0,configurable:!0},isImported:{value:function(a,b){for(var c=!1,d=b?b:"script",e="script"==d?"src":"href",f=G.tag(bb,d),g=0;g<f.length;g++)if(void 0!==f[g][e]&&f[g][e].match(a)){c=!0;break}return c},writable:!0,configurable:!0},includeFile:{value:function(a,b,c,d){var e=d?d:"script",f=this.isImported(b,e);if(!f){var g,h=this,i=!1,j=G.tag(bb,"head")[0];g="link"===H.lower(e)?G.create("link",["id",a],["type","text/css"],["rel","stylesheet"],["href",b]):G.create("script",["id",a],["type","text/javascript"],["src",b]),g.onload=g.onreadystatechange=function(){!i&&(!this.readyState||"loaded"===this.readyState||"complete"===this.readyState)&&(i=!0,"function"==typeof c&&c.call(null,h))},g.onerror=function(){throw new Error("TF script could not load:\n"+this.src)},j.appendChild(g)}},writable:!0,configurable:!0},hasGrid:{value:function(){return this._hasGrid},writable:!0,configurable:!0},getFiltersId:{value:function(){return this._hasGrid?this.fltIds:void 0},writable:!0,configurable:!0},getValidRowsIndex:{value:function(a){if(this._hasGrid){if(!a)return this.validRowsIndex;this.validRowsIndex=[];for(var b=this.refRow;b<this.getRowsNb(!0);b++){var c=this.tbl.rows[b];this.paging?("true"===c.getAttribute("validRow")||null===c.getAttribute("validRow"))&&this.validRowsIndex.push(c.rowIndex):"none"!==this.getRowDisplay(c)&&this.validRowsIndex.push(c.rowIndex)}return this.validRowsIndex}},writable:!0,configurable:!0},getFiltersRowIndex:{value:function(){return this._