1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-16 21:36:41 +02:00
TableFilter/dist/tablefilter/tablefilter.js

10 lines
99 KiB
JavaScript
Raw Normal View History

/**
* tablefilter v0.0.4 by Max Guglielmi
* build date: 2015-10-17T08:45:37.398Z
* MIT License
*/
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var s=e();for(var i in s)("object"==typeof exports?exports:t)[i]=s[i]}}(this,function(){return function(t){function e(s){if(i[s])return i[s].exports;var a=i[s]={exports:{},id:s,loaded:!1};return t[s].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var s=window.webpackJsonp;window.webpackJsonp=function(i,l){for(var n,r,o=0,h=[];o<i.length;o++)r=i[o],a[r]&&h.push.apply(h,a[r]),a[r]=0;for(n in l)t[n]=l[n];for(s&&s(i,l);h.length;)h.shift().call(null,e)};var i={},a={0:0};return e.e=function(t,s){if(0===a[t])return s.call(null,e);if(void 0!==a[t])a[t].push(s);else{a[t]=[s];var i=document.getElementsByTagName("head")[0],l=document.createElement("script");l.type="text/javascript",l.charset="utf-8",l.async=!0,l.src=e.p+"tf-"+({}[t]||t)+".js",i.appendChild(l)}},e.m=t,e.c=i,e.p="",e(0)}([function(t,e,s){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var s=0;s<e.length;s++){var i=e[s];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,s,i){return s&&t(e.prototype,s),i&&t(e,i),e}}(),n=s(1),r=i(n),o=s(2),h=i(o),d=s(3),u=i(d),f=s(4),c=i(f),p=s(5),g=i(p),v=s(6),b=i(v),m=s(7),_=i(m),C=s(8),y=i(C),w=s(9),x=s(10),k=s(11),T=s(12),R=s(13),F=s(14),P=s(16),I=s(17),S=s(18),L=s(19),E=s(20),N=s(21),D=s(22),O=window,B=_["default"].isValid,M=_["default"].format,A=O.document,H=function(){function t(e){if(a(this,t),0!==arguments.length){if(this.id=e,this.version="0.0.4",this.year=(new Date).getFullYear(),this.tbl=h["default"].id(e),this.startRow=null,this.refRow=null,this.headersRow=null,this.cfg={},this.nbFilterableRows=null,this.nbRows=null,this.nbCells=null,this._hasGrid=!1,this.enableModules=!1,!this.tbl||"TABLE"!=this.tbl.nodeName||0===this.getRowsNb())throw new Error("Could not instantiate TableFilter: HTML table not found.");if(arguments.length>1)for(var s=0,i=arguments.length;i>s;s++){var l=arguments[s],n=typeof l;switch(u["default"].lower(n)){case"number":this.startRow=l;break;case"object":this.cfg=l}}var o=this.cfg;this.refRow=null===this.startRow?2:this.startRow+1;try{this.nbCells=this.getCellsNb(this.refRow)}catch(d){this.nbCells=this.getCellsNb(0)}this.basePath=o.base_path||"tablefilter/",this.fltTypeInp="input",this.fltTypeSlc="select",this.fltTypeMulti="multiple",this.fltTypeCheckList="checklist",this.fltTypeNone="none",this.fltGrid=o.grid===!1?!1:!0,this.gridLayout=Boolean(o.grid_layout),this.sourceTblHtml=null,this.gridLayout&&(this.sourceTblHtml=this.tbl.outerHTML),this.filtersRowIndex=isNaN(o.filters_row_index)?0:o.filters_row_index,this.headersRow=isNaN(o.headers_row_index)?0===this.filtersRowIndex?1:0:o.headers_row_index,this.gridLayout&&(this.headersRow>1?this.filtersRowIndex=this.headersRow+1:(this.filtersRowIndex=1,this.headersRow=0)),this.fltCellTag="th"!==o.filters_cell_tag||"td"!==o.filters_cell_tag?"td":o.filters_cell_tag,this.fltIds=[],this.fltElms=[],this.searchArgs=null,this.tblData=[],this.validRowsIndex=null,this.fltGridEl=null,this.isFirstLoad=!0,this.infDiv=null,this.lDiv=null,this.rDiv=null,this.mDiv=null,this.infDivCssClass=o.inf_div_css_class||"inf",this.lDivCssClass=o.left_div_css_class||"ldiv",this.rDivCssClass=o.right_div_css_class||"rdiv",this.mDivCssClass=o.middle_div_css_class||"mdiv",this.contDivCssClass=o.content_div_css_class||"cont",this.stylePath=o.style_path||this.basePath+"style/",this.stylesheet=o.stylesheet||this.stylePath+"tablefilter.css",this.stylesheetId=this.id+"_style",this.fltsRowCssClass=o.flts_row_css_class||"fltrow",this.enableIcons=o.enable_icons===!1?!1:!0,this.alternateBgs=Boolean(o.alternate_rows),this.hasColWidths=g["default"].isArray(o.col_widths),this.colWidths=this.hasColWidths?o.col_widths:null,this.fltCssClass=o.flt_css_class||"flt",this.fltMultiCssClass
e=e.substr(0,e.length-3)):e="");return e}}},{key:"getFiltersValue",value:function(){if(this.fltGrid){for(var t=[],e=0,s=this.fltIds.length;s>e;e++)t.push(u["default"].trim(u["default"].matchCase(this.getFilterValue(e),this.caseSensitive)));return t}}},{key:"getFilterId",value:function(t){return this.fltGrid?this.fltIds[t]:void 0}},{key:"getFiltersByType",value:function(t,e){if(this.fltGrid){for(var s=[],i=0,a=this.fltIds.length;a>i;i++){var l=this.getFilterType(i);if(l===u["default"].lower(t)){var n=e?i:this.fltIds[i];s.push(n)}}return s}}},{key:"getFilterElement",value:function(t){var e=this.fltIds[t];return h["default"].id(e)}},{key:"getCellsNb",value:function(){var t=arguments.length<=0||void 0===arguments[0]?0:arguments[0],e=this.tbl.rows[t];return e.cells.length}},{key:"getRowsNb",value:function(t){var e=g["default"].isUndef(this.refRow)?0:this.refRow,s=this.tbl.rows.length;return t&&(e=0),parseInt(s-e,10)}},{key:"getCellData",value:function(t,e){return g["default"].isUndef(t)||!e?"":this.customCellData&&b["default"].has(this.customCellDataCols,t)?this.customCellData.call(null,this,e,t):h["default"].getText(e)}},{key:"getTableData",value:function(){for(var t=this.tbl.rows,e=this.refRow;e<this.nbRows;e++){for(var s=[e,[]],i=t[e].cells,a=0,l=i.length;l>a;a++){var n=this.getCellData(a,i[a]);s[1].push(n)}this.tblData.push(s)}return this.tblData}},{key:"getFilteredData",value:function(t){if(!this.validRowsIndex)return[];var e=this.tbl.rows,s=[];if(t){for(var i=this.gridLayout?this.Mod.gridLayout.headTbl:this.tbl,a=i.rows[this.headersRow],l=[a.rowIndex,[]],n=0;n<this.nbCells;n++){var r=this.getCellData(n,a.cells[n]);l[1].push(r)}s.push(l)}for(var o=this.getValidRows(!0),h=0;h<o.length;h++){for(var d=[this.validRowsIndex[h],[]],u=e[this.validRowsIndex[h]].cells,f=0;f<u.length;f++){var c=this.getCellData(f,u[f]);d[1].push(c)}s.push(d)}return s}},{key:"getFilteredDataCol",value:function(t){if(void 0===t)return[];for(var e=this.getFilteredData(),s=[],i=0,a=e.length;a>i;i++){var l=e[i],n=l[1],r=n[t];s.push(r)}return s}},{key:"getRowDisplay",value:function(t){return this.fltGrid&&g["default"].isObj(t)?t.style.display:void 0}},{key:"validateRow",value:function(t,e){var s=this.tbl.rows[t];if(s&&"boolean"==typeof e){this.hasVisibleRows&&-1!==this.visibleRows.indexOf(t)&&(e=!0);var i=e?"":"none",a=e?"true":"false";s.style.display=i,this.paging&&s.setAttribute("validRow",a)}}},{key:"validateAllRows",value:function(){if(this._hasGrid){this.validRowsIndex=[];for(var t=this.refRow;t<this.nbFilterableRows;t++)this.validateRow(t,!0),this.validRowsIndex.push(t)}}},{key:"setFilterValue",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?"":arguments[1];if((this.fltGrid||this.isFirstLoad)&&this.getFilterElement(t)){var s=this.getFilterElement(t),i=this.getFilterType(t);if(i!==this.fltTypeMulti&&i!=this.fltTypeCheckList)s.value=e;else if(i===this.fltTypeMulti)for(var a=e.split(" "+this.orOperator+" "),l=0,n=s.options.length;n>l;l++){var r=s.options[l];(""===a||""===a[0])&&(r.selected=!1),""===r.value&&(r.selected=!1),""!==r.value&&b["default"].has(a,r.value,!0)&&(r.selected=!0)}else if(i===this.fltTypeCheckList){e=u["default"].matchCase(e,this.caseSensitive);var o=e.split(" "+this.orOperator+" "),d=h["default"].tag(s,"li").length;s.setAttribute("value",""),s.setAttribute("indexes","");for(var f=0;d>f;f++){var c=h["default"].tag(s,"li")[f],p=h["default"].tag(c,"label")[0],g=h["default"].tag(c,"input")[0],v=u["default"].matchCase(h["default"].getText(p),this.caseSensitive);""!==v&&b["default"].has(o,v,!0)?(g.checked=!0,this.Mod.checkList.setCheckListValues(g)):(g.checked=!1,this.Mod.checkList.setCheckListValues(g))}}}}},{key:"setColWidths",value:function(t,e){function s(){for(var t=this.nbCells,s=this.colWidths,i=h["default"].tag(e,"col"),a=i.length>0,l=a?null:A.createDocumentFragment(),n=0;t>n;n++){var r=void 0;a?r=i[n]:(r=h["default"].create("col",["id",this.id+"_col_"+n]),l.appendChild(r)),r.style.width=s[n]}a||e.insertBefore(l,e.firstChild)}if(this.fltGrid&&this.hasColWidths){e=e||this.tbl;var i=void 0;i=void 0===t?"none"!
Object.defineProperty(t,i.key,i)}}return function(e,s,i){return s&&t(e.prototype,s),i&&t(e,i),e}}(),n=s(2),r=i(n),o=s(6),h=i(o),d=s(3),u=i(d),f=s(15),c=i(f),p=function(){function t(e){a(this,t);var s=e.config();this.enableSlcResetFilter=s.enable_slc_reset_filter===!1?!1:!0,this.nonEmptyText=s.non_empty_text||"(Non empty)",this.slcFillingMethod=s.slc_filling_method||"createElement",this.activateSlcTooltip=s.activate_slc_tooltip||"Click to activate",this.multipleSlcTooltip=s.multiple_slc_tooltip||"Use Ctrl key for multiple selections",this.isCustom=null,this.opts=null,this.optsTxt=null,this.slcInnerHtml=null,this.tf=e}return l(t,[{key:"build",value:function(t,e,s,i){var a=this.tf;a.EvtManager(a.Evt.name.dropdown,{slcIndex:t,slcRefreshed:e,slcExternal:s,slcId:i})}},{key:"_build",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],s=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],i=arguments.length<=3||void 0===arguments[3]?null:arguments[3],a=this.tf;t=parseInt(t,10),this.opts=[],this.optsTxt=[],this.slcInnerHtml="";var l=a.fltIds[t];if((r["default"].id(l)||s)&&(r["default"].id(i)||!s)){var n=s?r["default"].id(i):r["default"].id(l),o=a.tbl.rows,d=a.matchCase;this.isCustom=a.isCustomOptions(t);var f;e&&a.activeFilterId&&(f=a.activeFilterId.split("_")[0],f=f.split(a.prfxFlt)[1]);var p=[],g=[];a.rememberGridValues&&(p=a.feature("store").getFilterValues(a.fltsValuesCookie),p&&!u["default"].isEmpty(p.toString())&&(this.isCustom?g.push(p[t]):g=p[t].split(" "+a.orOperator+" ")));var v=null,b=null;e&&a.disableExcludedOptions&&(v=[],b=[]);for(var m=a.refRow;m<a.nbRows;m++)if(!a.hasVisibleRows||-1===a.visibleRows.indexOf(m)){var _=o[m].cells,C=_.length;if(C===a.nbCells&&!this.isCustom)for(var y=0;C>y;y++)if(t===y&&(!e||e&&a.disableExcludedOptions)||t==y&&e&&(""===o[m].style.display&&!a.paging||a.paging&&(!a.validRowsIndex||a.validRowsIndex&&h["default"].has(a.validRowsIndex,m))&&(void 0===f||f==t||f!=t&&h["default"].has(a.validRowsIndex,m)))){var w=a.getCellData(y,_[y]),x=u["default"].matchCase(w,d);if(h["default"].has(this.opts,x,d)||this.opts.push(w),e&&a.disableExcludedOptions){var k=b[y];k||(k=a.getFilteredDataCol(y)),h["default"].has(k,x,d)||h["default"].has(v,x,d)||this.isFirstLoad||v.push(w)}}}if(this.isCustom){var T=a.getCustomOptions(t);this.opts=T[0],this.optsTxt=T[1]}if(a.sortSlc&&!this.isCustom&&(d?(this.opts.sort(),v&&v.sort()):(this.opts.sort(c["default"].ignoreCase),v&&v.sort(c["default"].ignoreCase))),a.sortNumAsc&&h["default"].has(a.sortNumAsc,t))try{this.opts.sort(numSortAsc),v&&v.sort(numSortAsc),this.isCustom&&this.optsTxt.sort(numSortAsc)}catch(R){this.opts.sort(),v&&v.sort(),this.isCustom&&this.optsTxt.sort()}if(a.sortNumDesc&&h["default"].has(a.sortNumDesc,t))try{this.opts.sort(numSortDesc),v&&v.sort(numSortDesc),this.isCustom&&this.optsTxt.sort(numSortDesc)}catch(R){this.opts.sort(),v&&v.sort(),this.isCustom&&this.optsTxt.sort()}this.addOptions(t,n,e,v,p,g)}}},{key:"addOptions",value:function(t,e,s,i,a,l){var n=this.tf,o=u["default"].lower(this.slcFillingMethod),d=e.value;e.innerHTML="",e=this.addFirstOption(e);for(var f=0;f<this.opts.length;f++)if(""!==this.opts[f]){var c=this.opts[f],p=this.isCustom?this.optsTxt[f]:c,g=!1;if(s&&n.disableExcludedOptions&&h["default"].has(i,u["default"].matchCase(c,n.matchCase),n.matchCase)&&(g=!0),"innerhtml"===o){var v="";n.loadFltOnDemand&&d===this.opts[f]&&(v='selected="selected"'),this.slcInnerHtml+='<option value="'+c+'" '+v+(g?'disabled="disabled"':"")+">"+p+"</option>"}else{var b;b=n.loadFltOnDemand&&d===this.opts[f]&&n.getFilterType(t)===n.fltTypeSlc?r["default"].createOpt(p,c,!0):n.getFilterType(t)!==n.fltTypeMulti?r["default"].createOpt(p,c," "!==a[t]&&c===a[t]?!0:!1):r["default"].createOpt(p,c,h["default"].has(l,u["default"].matchCase(this.opts[f],n.matchCase),n.matchCase)||-1!==l.toString().indexOf(c)?!0:!1),g&&(b.disabled=!0),e.appendChild(b)}}"innerhtml"===o&&(e.innerHTML+=this.slcInnerHtml),e.setAttribute("filled","1")}},{key:"addFirstOption",value:function(t){var e=this.tf,s=u["default"].lower(this.slcFillingMethod);i
this.btnResetHtml){s.innerHTML=this.btnResetHtml;var a=s.firstChild;h["default"].add(a,"click",function(){t.onClick()})}else{var l=r["default"].create("a",["href","javascript:void(0);"]);l.className=e.btnResetCssClass,l.appendChild(r["default"].text(this.btnResetText)),s.appendChild(l),h["default"].add(l,"click",function(){t.onClick()})}this.btnResetEl=s.firstChild}}},{key:"destroy",value:function(){var t=this.tf;if(t.hasGrid()&&this.btnResetEl){var e=r["default"].id(t.prfxResetSpan+t.id);e&&e.parentNode.removeChild(e),this.btnResetEl=null}}}]),t}();e.ClearButton=d},function(t,e,s){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var s=0;s<e.length;s++){var i=e[s];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,s,i){return s&&t(e.prototype,s),i&&t(e,i),e}}(),n=s(2),r=i(n),o=s(1),h=i(o),d="https://github.com/koalyptus/TableFilter/wiki/4.-Filter-operators",u="http://koalyptus.github.io/TableFilter/",f=function(){function t(e){a(this,t);var s=e.config();this.tgtId=s.help_instructions_target_id||null,this.contTgtId=s.help_instructions_container_target_id||null,this.instrText=s.help_instructions_text?s.help_instructions_text:'Use the filters above each column to filter and limit table data. Advanced searches can be performed by using the following operators: <br /><b>&lt;</b>, <b>&lt;=</b>, <b>&gt;</b>, <b>&gt;=</b>, <b>=</b>, <b>*</b>, <b>!</b>, <b>{</b>, <b>}</b>, <b>||</b>,<b>&amp;&amp;</b>, <b>[empty]</b>, <b>[nonempty]</b>, <b>rgx:</b><br/><a href="'+d+'" target="_blank">Learn more</a><hr/>',this.instrHtml=s.help_instructions_html||null,this.btnText=s.help_instructions_btn_text||"?",this.btnHtml=s.help_instructions_btn_html||null,this.btnCssClass=s.help_instructions_btn_css_class||"helpBtn",this.contCssClass=s.help_instructions_container_css_class||"helpCont",this.btn=null,this.cont=null,this.defaultHtml='<div class="helpFooter"><h4>TableFilter v'+e.version+'</h4><a href="'+u+'" target="_blank">'+u+"</a><br/><span>&copy;2015-"+e.year+' Max Guglielmi</span><div align="center" style="margin-top:8px;"><a href="javascript:void(0);" class="close">Close</a></div></div>',this.prfxHelpSpan="helpSpan_",this.prfxHelpDiv="helpDiv_",this.tf=e}return l(t,[{key:"init",value:function(){var t=this;if(!this.btn){var e=this.tf,s=r["default"].create("span",["id",this.prfxHelpSpan+e.id]),i=r["default"].create("div",["id",this.prfxHelpDiv+e.id]);this.tgtId||e.setToolbar();var a=this.tgtId?r["default"].id(this.tgtId):e.rDiv;a.appendChild(s);var l=this.contTgtId?r["default"].id(this.contTgtId):s;if(this.btnHtml){s.innerHTML=this.btnHtml;var n=s.firstChild;h["default"].add(n,"click",function(){t.toggle()}),l.appendChild(i)}else{l.appendChild(i);var o=r["default"].create("a",["href","javascript:void(0);"]);o.className=this.btnCssClass,o.appendChild(r["default"].text(this.btnText)),s.appendChild(o),h["default"].add(o,"click",function(){t.toggle()})}this.instrHtml?(this.contTgtId&&l.appendChild(i),i.innerHTML=this.instrHtml,this.contTgtId||(i.className=this.contCssClass,h["default"].add(i,"dblclick",function(){t.toggle()}))):(i.innerHTML=this.instrText,i.className=this.contCssClass,h["default"].add(i,"dblclick",function(){t.toggle()})),i.innerHTML+=this.defaultHtml,h["default"].add(i,"click",function(){t.toggle()}),this.cont=i,this.btn=s}}},{key:"toggle",value:function(){if(this.cont){var t=this.cont.style.display;""===t||"none"===t?this.cont.style.display="inline":this.cont.style.display="none"}}},{key:"destroy",value:function(){this.btn&&(this.btn.parentNode.removeChild(this.btn),this.btn=null,this.cont&&(this.cont.parentNode.removeChild(this.cont),this.cont=null))}}]),t}();e.Help=f},function(t,e,s){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.definePr