1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-06-10 09:52:33 +02:00
TableFilter/dist/tablefilter/tablefilter.js

10 lines
115 KiB
JavaScript
Raw Normal View History

2015-12-31 02:56:50 +01:00
/**
2016-01-02 15:33:31 +01:00
* tablefilter v0.1.4 by Max Guglielmi
* build date: 2016-01-02T14:26:21.070Z
2015-12-31 02:56:50 +01:00
* MIT License
*/
2016-01-02 15:33:31 +01:00
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var s in i)("object"==typeof exports?exports:t)[s]=i[s]}}(this,function(){return function(t){function e(i){if(s[i])return s[i].exports;var n=s[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i=window.webpackJsonp;window.webpackJsonp=function(s,a){for(var r,l,o=0,h=[];o<s.length;o++)l=s[o],n[l]&&h.push.apply(h,n[l]),n[l]=0;for(r in a)t[r]=a[r];for(i&&i(s,a);h.length;)h.shift().call(null,e)};var s={},n={0:0};return e.e=function(t,i){if(0===n[t])return i.call(null,e);if(void 0!==n[t])n[t].push(i);else{n[t]=[i];var s=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.src=e.p+"tf-"+({}[t]||t)+".js",s.appendChild(a)}},e.m=t,e.c=s,e.p="",e(0)}([function(t,e,i){"use strict";function s(t){return t&&t.__esModule?t:{"default":t}}function n(t){return t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}return function(e,i,s){return i&&t(e.prototype,i),s&&t(e,s),e}}();Object.defineProperty(e,"__esModule",{value:!0}),e.TableFilter=void 0;var l=i(1),o=s(l),h=i(2),u=s(h),f=i(3),d=s(f),c=i(4),p=s(c),g=i(5),v=s(g),b=i(6),m=s(b),y=i(7),_=s(y),C=i(8),w=s(C),x=i(9),T=i(10),k=i(11),R=i(13),P=i(14),F=i(15),I=i(16),S=i(18),O=i(19),E=i(20),L=i(21),N=i(22),D=i(23),M=i(24),B=i(25),A=window,H=A.document;e.TableFilter=function(){function t(){var e=this;a(this,t);for(var i=arguments.length,s=Array(i),r=0;i>r;r++)s[r]=arguments[r];if(0!==s.length){if(this.id=null,this.version="0.1.4",this.year=(new Date).getFullYear(),this.tbl=null,this.startRow=null,this.refRow=null,this.headersRow=null,this.cfg={},this.nbFilterableRows=null,this.nbRows=null,this.nbCells=null,this._hasGrid=!1,s.forEach(function(t){var i="undefined"==typeof t?"undefined":n(t);"object"===i&&t&&"TABLE"===t.nodeName?(e.tbl=t,e.id=t.id||"tf_"+(new Date).getTime()+"_"):"string"===i?(e.id=t,e.tbl=u["default"].id(t)):"number"===i?e.startRow=t:"object"===i&&(e.cfg=t)}),!this.tbl||"TABLE"!=this.tbl.nodeName||0===this.getRowsNb())throw new Error("Could not instantiate TableFilter: HTML table not found.");var l=this.cfg;this.emitter=new x.Emitter,this.refRow=null===this.startRow?2:this.startRow+1;try{this.nbCells=this.getCellsNb(this.refRow)}catch(h){this.nbCells=this.getCellsNb(0)}this.basePath=l.base_path||"tablefilter/",this.fltTypeInp="input",this.fltTypeSlc="select",this.fltTypeMulti="multiple",this.fltTypeCheckList="checklist",this.fltTypeNone="none",this.fltGrid=l.grid===!1?!1:!0,this.gridLayout=Boolean(l.grid_layout),this.filtersRowIndex=isNaN(l.filters_row_index)?0:l.filters_row_index,this.headersRow=isNaN(l.headers_row_index)?0===this.filtersRowIndex?1:0:l.headers_row_index,this.gridLayout&&(this.headersRow>1?this.filtersRowIndex=this.headersRow+1:(this.filtersRowIndex=1,this.headersRow=0)),this.fltCellTag="th"!==l.filters_cell_tag||"td"!==l.filters_cell_tag?"td":l.filters_cell_tag,this.fltIds=[],this.fltElms=[],this.searchArgs=null,this.validRowsIndex=[],this.fltGridEl=null,this.isFirstLoad=!0,this.infDiv=null,this.lDiv=null,this.rDiv=null,this.mDiv=null,this.infDivCssClass=l.inf_div_css_class||"inf",this.lDivCssClass=l.left_div_css_class||"ldiv",this.rDivCssClass=l.right_div_css_class||"rdiv",this.mDivCssClass=l.middle_div_css_class||"mdiv",this.contDivCssClass=l.content_div_css_class||"cont",this.stylePath=l.style_path||this.basePath+"style/",this.stylesheet=l.stylesheet||this.stylePath+"tablefilter.css",this.stylesheetId=this.id+"_style",this.fltsRowCssClass=l.flts_row_css_class||"fltrow",this.enableIcons=l.enable_icons===!1?!1:!0,this.alternateRows=Boolean(l.alternate_rows),this.hasColWidths=v["def
value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];if(v["default"].isUndef(t))return[];var i=this.getFilteredData(),s=[];e&&s.push(this.getHeadersText()[t]);for(var n=0,a=i.length;a>n;n++){var r=i[n],l=r[1],o=l[t];s.push(o)}return s}},{key:"getRowDisplay",value:function(t){return v["default"].isObj(t)?t.style.display:null}},{key:"validateRow",value:function(t,e){var i=this.tbl.rows[t];if(i&&"boolean"==typeof e){this.hasVisibleRows&&-1!==this.visibleRows.indexOf(t)&&(e=!0);var s=e?"":"none",n=e?"true":"false";i.style.display=s,this.paging&&i.setAttribute("validRow",n),e&&(-1===this.validRowsIndex.indexOf(t)&&this.validRowsIndex.push(t),this.onRowValidated&&this.onRowValidated.call(null,this,t),this.emitter.emit("row-validated",this,t))}}},{key:"validateAllRows",value:function(){if(this._hasGrid){this.validRowsIndex=[];for(var t=this.refRow;t<this.nbFilterableRows;t++)this.validateRow(t,!0)}}},{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 i=this.getFilterElement(t),s=this.getFilterType(t);if(s!==this.fltTypeMulti&&s!=this.fltTypeCheckList)i.value=e;else if(s===this.fltTypeMulti)for(var n=e.split(" "+this.orOperator+" "),a=0,r=i.options.length;r>a;a++){var l=i.options[a];(""===n||""===n[0])&&(l.selected=!1),""===l.value&&(l.selected=!1),""!==l.value&&m["default"].has(n,l.value,!0)&&(l.selected=!0)}else if(s===this.fltTypeCheckList){e=d["default"].matchCase(e,this.caseSensitive);var o=e.split(" "+this.orOperator+" "),h=u["default"].tag(i,"li").length;i.setAttribute("value",""),i.setAttribute("indexes","");for(var f=0;h>f;f++){var c=u["default"].tag(i,"li")[f],p=u["default"].tag(c,"label")[0],g=u["default"].tag(c,"input")[0],v=d["default"].matchCase(u["default"].getText(p),this.caseSensitive);""!==v&&m["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 i(){for(var t=this.nbCells,i=this.colWidths,s=u["default"].tag(e,"col"),n=s.length>0,a=n?null:H.createDocumentFragment(),r=0;t>r;r++){var l=void 0;n?l=s[r]:(l=u["default"].create("col",["id",this.id+"_col_"+r]),a.appendChild(l)),l.style.width=i[r]}n||e.insertBefore(a,e.firstChild)}if(this.fltGrid&&this.hasColWidths){e=e||this.tbl;var s=void 0;s=void 0===t?"none"!=e.rows[0].style.display?0:1:t,i.call(this)}}},{key:"enforceVisibility",value:function(){if(this.hasVisibleRows)for(var t=0,e=this.visibleRows.length;e>t;t++){var i=this.visibleRows[t];i<=this.nbRows&&this.validateRow(i,!0)}}},{key:"clearFilters",value:function(){if(this.fltGrid){this.emitter.emit("before-clearing-filters",this),this.onBeforeReset&&this.onBeforeReset.call(null,this,this.getFiltersValue());for(var t=0,e=this.fltIds.length;e>t;t++)this.setFilterValue(t,"");this.rememberPageLen&&p["default"].remove(this.pgLenCookie),this.rememberPageNb&&p["default"].remove(this.pgNbCookie),this.onAfterReset&&this.onAfterReset.call(null,this),this.filter(),this.emitter.emit("after-clearing-filters",this)}}},{key:"clearActiveColumns",value:function(){for(var t=0,e=this.getCellsNb(this.headersRow);e>t;t++)u["default"].removeClass(this.getHeaderElement(t),this.activeColumnsCssClass)}},{key:"markActiveColumn",value:function(t){var e=this.getHeaderElement(t);u["default"].hasClass(e,this.activeColumnsCssClass)||(this.onBeforeActiveColumn&&this.onBeforeActiveColumn.call(null,this,t),u["default"].addClass(e,this.activeColumnsCssClass),this.onAfterActiveColumn&&this.onAfterActiveColumn.call(null,this,t))}},{key:"linkFilters",value:function(){if(this.linkedFilters&&this.activeFilterId){var t=this.getFiltersByType(this.fltTypeSlc,!0),e=this.getFiltersByType(this.fltTypeMulti,!0),i=this.getFiltersByType(this.fltTypeCheckList,!0),s=t.concat(e);s=s.concat(i);var n=this.activeFilterId.split("_")[0];n=n.split(this.prfxFlt)[1];for(var a=void 0,r=0,l=s.length;l>r;r++){var o=u["default"].id(this.fltIds[s[r]]);if(a=this.getFilterValue(s[r]),n!==s[r]||t
return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var l=function(){function t(t,e){for(var i=0;i<e.length;i++){var s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}return function(e,i,s){return i&&t(e.prototype,i),s&&t(e,s),e}}();Object.defineProperty(e,"__esModule",{value:!0}),e.PopupFilter=void 0;var o=i(12),h=i(5),u=s(h),f=i(2),d=s(f),c=i(1),p=s(c);e.PopupFilter=function(e){function i(t){n(this,i);var e=a(this,Object.getPrototypeOf(i).call(this,t,"popupFilters")),s=e.config;return t.isExternalFlt=!0,t.externalFltTgtIds=[],e.popUpImgFlt=s.popup_filters_image||t.themesPath+"icn_filter.gif",e.popUpImgFltActive=s.popup_filters_image_active||t.themesPath+"icn_filterActive.gif",e.popUpImgFltHtml=s.popup_filters_image_html||'<img src="'+e.popUpImgFlt+'" alt="Column filter" />',e.popUpDivCssClass=s.popup_div_css_class||"popUpFilter",e.onBeforePopUpOpen=u["default"].isFn(s.on_before_popup_filter_open)?s.on_before_popup_filter_open:null,e.onAfterPopUpOpen=u["default"].isFn(s.on_after_popup_filter_open)?s.on_after_popup_filter_open:null,e.onBeforePopUpClose=u["default"].isFn(s.on_before_popup_filter_close)?s.on_before_popup_filter_close:null,e.onAfterPopUpClose=u["default"].isFn(s.on_after_popup_filter_close)?s.on_after_popup_filter_close:null,e.popUpFltSpans=[],e.popUpFltImgs=[],e.popUpFltElms=e.popUpFltElmCache||[],e.popUpFltAdjustToContainer=!0,e.prfxPopUpSpan="popUpSpan_",e.prfxPopUpDiv="popUpDiv_",e}return r(i,e),l(i,[{key:"onClick",value:function(e){var i=e||t.event,s=i.target.parentNode,n=parseInt(s.getAttribute("ci"),10);if(this.closeAll(n),this.toggle(n),this.popUpFltAdjustToContainer){var a=this.popUpFltElms[n],r=this.tf.getHeaderElement(n),l=.95*r.clientWidth;a.style.width=parseInt(l,10)+"px"}p["default"].cancel(i),p["default"].stop(i)}},{key:"init",value:function(){var t=this;if(!this.initialized){for(var e=this.tf,i=0;i<e.nbCells;i++)if(e.getFilterType(i)!==e.fltTypeNone){var s=d["default"].create("span",["id",this.prfxPopUpSpan+e.id+"_"+i],["ci",i]);s.innerHTML=this.popUpImgFltHtml;var n=e.getHeaderElement(i);n.appendChild(s),p["default"].add(s,"click",function(e){t.onClick(e)}),this.popUpFltSpans[i]=s,this.popUpFltImgs[i]=s.firstChild}this.emitter.on("before-filtering",function(){return t.buildIcons()}),this.emitter.on("after-filtering",function(){return t.closeAll()}),this.emitter.on("cell-processed",function(e,i){return t.buildIcon(i,!0)}),this.initialized=!0}}},{key:"reset",value:function(){this.enable(),this.init(),this.buildAll()}},{key:"buildAll",value:function(){for(var t=0;t<this.popUpFltElmCache.length;t++)this.build(t,this.popUpFltElmCache[t])}},{key:"build",value:function(t,e){var i=this.tf,s=e?e:d["default"].create("div",["id",this.prfxPopUpDiv+i.id+"_"+t]);s.className=this.popUpDivCssClass,i.externalFltTgtIds.push(s.id);var n=i.getHeaderElement(t);n.insertBefore(s,n.firstChild),p["default"].add(s,"click",function(t){p["default"].stop(t)}),this.popUpFltElms[t]=s}},{key:"toggle",value:function(t){var e=this.tf,i=this.popUpFltElms[t];if("none"===i.style.display||""===i.style.display){if(this.onBeforePopUpOpen&&this.onBeforePopUpOpen.call(null,this,this.popUpFltElms[t],t),i.style.display="block",e.getFilterType(t)===e.fltTypeInp){var s=e.getFilterElement(t);s&&s.focus()}this.onAfterPopUpOpen&&this.onAfterPopUpOpen.call(null,this,this.popUpFltElms[t],t)}else this.onBeforePopUpClose&&this.onBeforePopUpClose.call(null,this,this.popUpFltElms[t],t),i.style.display="none",this.onAfterPopUpClo
this.setResultsPerPage())),s.slcPagesChange=function(t){var i=t.target;e.changePage(i.selectedIndex)},this.pageSelectorType===i.fltTypeSlc&&(t=f["default"].create(i.fltTypeSlc,["id",this.prfxSlcPages+i.id]),t.className=this.pgSlcCssClass,b["default"].add(t,"change",s.slcPagesChange)),this.pageSelectorType===i.fltTypeInp&&(t=f["default"].create(i.fltTypeInp,["id",this.prfxSlcPages+i.id],["value",this.currentPageNb]),t.className=this.pgInpCssClass,b["default"].add(t,"keypress",s._detectKey));var n=f["default"].create("span",["id",this.prfxBtnNextSpan+i.id]),a=f["default"].create("span",["id",this.prfxBtnPrevSpan+i.id]),r=f["default"].create("span",["id",this.prfxBtnLastSpan+i.id]),l=f["default"].create("span",["id",this.prfxBtnFirstSpan+i.id]);if(this.hasPagingBtns){if(this.btnNextPageHtml)n.innerHTML=this.btnNextPageHtml,b["default"].add(n,"click",s.next);else{var o=f["default"].create(i.fltTypeInp,["id",this.prfxBtnNext+i.id],["type","button"],["value",this.btnNextPageText],["title","Next"]);o.className=this.btnPageCssClass,b["default"].add(o,"click",s.next),n.appendChild(o)}if(this.btnPrevPageHtml)a.innerHTML=this.btnPrevPageHtml,b["default"].add(a,"click",s.prev);else{var h=f["default"].create(i.fltTypeInp,["id",this.prfxBtnPrev+i.id],["type","button"],["value",this.btnPrevPageText],["title","Previous"]);h.className=this.btnPageCssClass,b["default"].add(h,"click",s.prev),a.appendChild(h)}if(this.btnLastPageHtml)r.innerHTML=this.btnLastPageHtml,b["default"].add(r,"click",s.last);else{var u=f["default"].create(i.fltTypeInp,["id",this.prfxBtnLast+i.id],["type","button"],["value",this.btnLastPageText],["title","Last"]);u.className=this.btnPageCssClass,b["default"].add(u,"click",s.last),r.appendChild(u)}if(this.btnFirstPageHtml)l.innerHTML=this.btnFirstPageHtml,b["default"].add(l,"click",s.first);else{var d=f["default"].create(i.fltTypeInp,["id",this.prfxBtnFirst+i.id],["type","button"],["value",this.btnFirstPageText],["title","First"]);d.className=this.btnPageCssClass,b["default"].add(d,"click",s.first),l.appendChild(d)}}this.pagingTgtId||i.setToolbar();var c=this.pagingTgtId?f["default"].id(this.pagingTgtId):i.mDiv;c.appendChild(l),c.appendChild(a);var p=f["default"].create("span",["id",this.prfxPgBeforeSpan+i.id]);p.appendChild(f["default"].text(this.pageText)),p.className=this.nbPgSpanCssClass,c.appendChild(p),c.appendChild(t);var g=f["default"].create("span",["id",this.prfxPgAfterSpan+i.id]);g.appendChild(f["default"].text(this.ofText)),g.className=this.nbPgSpanCssClass,c.appendChild(g);var v=f["default"].create("span",["id",this.prfxPgSpan+i.id]);v.className=this.nbPgSpanCssClass,v.appendChild(f["default"].text(" "+this.nbPages+" ")),c.appendChild(v),c.appendChild(n),c.appendChild(r),this.pagingSlc=f["default"].id(this.prfxSlcPages+i.id),i.rememberGridValues||this.setPagingInfo(),i.fltGrid||(i.validateAllRows(),this.setPagingInfo(i.validRowsIndex)),this.emitter.on("after-filtering",function(){return e.resetPagingInfo()}),this.emitter.on("initialized",function(){return e.resetValues()}),this.initialized=!0}}},{key:"reset",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0],e=this.tf;e.hasGrid()&&!this.isEnabled()&&(this.enable(),this.init(),e.resetValues(),t&&e.filter())}},{key:"resetPagingInfo",value:function(){this.startPagingRow=0,this.currentPageNb=1,this.setPagingInfo(this.tf.validRowsIndex)}},{key:"setPagingInfo",value:function(t){var e=this.tf,i=this.pagingTgtId?f["default"].id(this.pagingTgtId):e.mDiv,s=f["default"].id(this.prfxPgSpan+e.id);if(e.validRowsIndex=t||e.getValidRows(!0),this.nbPages=Math.ceil(e.validRowsIndex.length/this.pagingLength),s.innerHTML=this.nbPages,this.pageSelectorType===e.fltTypeSlc&&(this.pagingSlc.innerHTML=""),this.nbPages>0)if(i.style.visibility="visible",this.pageSelectorType===e.fltTypeSlc)for(var n=0;n<this.nbPages;n++){var a=f["default"].createOpt(n+1,n*this.pagingLength,!1);this.pagingSlc.options[n]=a}else this.pagingSlc.value=this.currentPageNb;else i.style.visibility="hidden";this.groupByPage(e.validRowsIndex)}},{key:"groupByPage",value:function