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

10 lines
108 KiB
JavaScript
Raw Normal View History

/*------------------------------------------------------------------------
- TableFilter v3.0.0 by Max Guglielmi
2015-02-17 12:17:17 +01:00
- build date: Tue Feb 17 2015 22:16:28
- http://tablefilter.free.fr
- Copyright (c) 2014, Licensed under the MIT License
------------------------------------------------------------------------*/
2015-02-17 12:17:17 +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(f.className=this.checkListItemCssClass,b.appendChild(f),l.add(f.check,"click",function(a){c.optionClick(a)}),this.enableCheckListResetFilter||(f.style.display="none"),d.enableEmptyOption){var g=h.createCheckItem(d.fltIds[a]+"_1",d.emOperator,d.emptyText);g.className=this.checkListItemCssClass,b.appendChild(g),l.add(g.check,"click",function(a){c.optionClick(a)}),e++}if(d.enableNonEmptyOption){var i=h.createCheckItem(d.fltIds[a]+"_2",d.nmOperator,d.nonEmptyText);i.className=this.checkListItemCssClass,b.appendChild(i),l.add(i.check,"click",function(a){c.optionClick(a)}),e++}return e}},setCheckListValues:{writable:!0,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;j.lower(g.nodeName)!==e;)g=g.parentNode;var i=g.childNodes[d],k=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=h.id(b.fltIds[k]+"_"+n[o]);p&&(p.checked=!1,h.removeClass(g.childNodes[n[o]],this.checkListSlcItemCssClass))}g.setAttribute("value",""),g.setAttribute("indexes","")}else l=l?l:"",c=j.trim(l+" "+c+" "+b.orOperator),d=m+d+b.separator,g.setAttribute("value",c),g.setAttribute("indexes",d),h.id(b.fltIds[k]+"_0")&&(h.id(b.fltIds[k]+"_0").checked=!1);j.lower(i.nodeName)===f&&(h.removeClass(g.childNodes[0],this.checkListSlcItemCssClass),h.addClass(i,this.checkListSlcItemCssClass))}else{if(""!==c){var q=new RegExp(j.rgxEsc(c+" "+b.orOperator));l=l.replace(q,""),g.setAttribute("value",j.trim(l));var r=new RegExp(j.rgxEsc(d+b.separator));m=m.replace(r,""),g.setAttribute("indexes",m)}j.lower(i.nodeName)===f&&h.removeClass(i,this.checkListSlcItemCssClass)}}}}}),a}();a.CheckList=m}),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.prototype,c)},f=b.Dom,g=c.Types,h=d.Helpers,i=function(){var a=function(a){var b=a.fObj;this.rowsCounterTgtId=b.rows_counter_target_id||null,this.rowsCounterDiv=null,this.rowsCounterSpan=null,this.rowsCounterText=b.rows_counter_text||"Rows: ",this.fromToTextSeparator=b.from_to_text_separator||"-",this.overText=b.over_text||" / ",this.totRowsCssClass=b.tot_rows_css_class||"tot",this.onBeforeRefreshCounter=g.isFn(b.on_before_refresh_counter)?b.on_before_refresh_counter:null,this.onAfterRefreshCounter=g.isFn(b.on_after_refresh_counter)?b.on_after_refresh_counter:null,this.tf=a};return e(a,null,{init:{writable:!0,value:function(){var a=this.tf;if((a.hasGrid||a.isFirstLoad)&&!this.rowsCounterSpan){var b=f.create("div",["id",a.prfxCounter+a.id]);b.className=this.totRowsCssClass;var c=f.create("span",["id",a.prfxTotRows+a.id]),d=f.create("span",["id",a.prfxTotRowsTxt+a.id]);d.appendChild(f.text(this.rowsCounterText)),this.rowsCounterTgtId||a.SetTopDiv();var e=this.rowsCounterTgtId?f.id(this.rowsCounterTgtId):a.lDiv;this.rowsCounterDiv&&h.isIE()&&(this.rowsCounterDiv.outerHTML=""),this.rowsCounterTgtId?(e.appendChild(d),e.appendChild(c)):(b.appendChild(d),b.appendChild(c),e.appendChild(b)),this.rowsCounterDiv=b,this.rowsCounterSpan=c,this.refresh()}}},refresh:{writable:!0,value:function(a){if(this.rowsCounterSpan){var b=this.tf;this.onBeforeRefreshCounter&&this.onBeforeRefreshCounter.call(null,b,this.rowsCounterSpan);var c;if(b.paging){var d=b.Cpt.paging;if(d){var e=parseInt(d.startPagingRow,10)+(b.nbVisibleRows>0?1:0),f=e+d.pagingLength-1<=b.nbVisibleRows?e+d.pagingLength-1:b.nbVisibleRows;c=e+this.fromToTextSeparator+f+this.overText+b.nbVisibleRows}}else c=a&&""!==a?a:b.nbFilterableRows-b.nbHiddenRows-(b.hasVisibleRows?b.visibleRows.length:0);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="",t
var p=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(p.enterKey){var b=a||f.event;if(b){var c=p.Evt.getKeyCode(b);13===c?(p._Filter(),g.cancel(b),g.stop(b)):(p.isUserTyping=!0,f.clearInterval(p.onKeyUpTimer),p.onKeyUpTimer=void 0)}}},_OnKeyUp:function(a){function b(){f.clearInterval(p.onKeyUpTimer),p.onKeyUpTimer=void 0,p.isUserTyping||(p.Filter(),p.isUserTyping=null)}if(p.onKeyUp){var c=a||f.event,d=p.Evt.getKeyCode(c);p.isUserTyping=!1,13!==d&&9!==d&&27!==d&&38!==d&&40!==d?void 0===p.onKeyUpTimer&&(p.onKeyUpTimer=f.setInterval(b,p.onKeyUpDelay)):(f.clearInterval(p.onKeyUpTimer),p.onKeyUpTimer=void 0)}},_OnKeyDown:function(){p.onKeyUp&&(p.isUserTyping=!0)},_OnInpBlur:function(){p.onKeyUp&&(p.isUserTyping=!1,f.clearInterval(p.onKeyUpTimer)),""===this.value&&""!==p.inpWatermark&&(this.value=p.isInpWatermarkArray?p.inpWatermark[this.getAttribute("ct")]:p.inpWatermark,h.addClass(this,p.inpWatermarkCssClass)),p.ezEditTable&&(p.editable&&p.ezEditTable.Editable.Set(),p.selectable&&p.ezEditTable.Selection.Set())},_OnInpFocus:function(a){var b=a||f.event;if(p.activeFilterId=this.getAttribute("id"),p.activeFlt=h.id(p.activeFilterId),p.isInpWatermarkArray){var c=p.inpWatermark[this.getAttribute("ct")];this.value===c&&""!==c&&(this.value="",h.removeClass(this,p.inpWatermarkCssClass))}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
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.Cpt.popupFilter.buildIcon(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.Cpt.popupFilter.closeAll()},GetColValues:function(a,b,d){if(this.fltGrid){for(var e=this.tbl.rows,f=[],g=this.refRow;g<this.nbRows;g++){var h=!1;d&&m.isArray(d)&&(h=n.has(d,g));var i=e[g].cells,j=i.length;if(j==this.nbCells&&!h)for(var l=0;j>l;l++)if(l===a&&""===e[g].style.display){var o=k.lower(this.GetCellData(l,i[l])),p=this.colNbFormat?this.colNbFormat[a]:null,q=b?c(o,p):o;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(k.trim(k.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===k.lower(a)){var f=b?d:this.fltIds[d];c.push(f)}}return c}},GetFilterElement:function(a){return this.fltGrid?h.id(this.fltIds[a]):null},GetCellsNb:function(a){var b=a?this.tbl.rows[a]:this.tbl.rows[0];return b.cells.length},GetRowsNb:function(a){var b=this.refRow?this.refRow:0,c=this.tbl.rows.length;return a&&(b=0),parseInt(c-b,10)},GetCellData:function(a,b){return void 0!==a&&b?this.customCellData&&n.has(this.customCellDataCols,a)?this.customCellData.call(null,this,b,a):h.getText(b):""},GetTableData:function(){for(var a=this.tbl.rows,b=this.refRow;b<this.nbRows;b++){for(var c=[b,[]],d=a[b].cells,e=0;e<d.length;e++){var f=this.GetCellData(e,d[e]);c[1].pu