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

10 lines
115 KiB
JavaScript
Raw Normal View History

/**
* tablefilter v0.1.5 by Max Guglielmi
2016-01-16 02:29:24 +01:00
* build date: 2016-01-16T01:24:44.067Z
* MIT License
*/
2016-01-16 02:29:24 +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,l){for(var a,r,o=0,h=[];o<s.length;o++)r=s[o],n[r]&&h.push.apply(h,n[r]),n[r]=0;for(a in l)t[a]=l[a];for(i&&i(s,l);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],l=document.createElement("script");l.type="text/javascript",l.charset="utf-8",l.async=!0,l.src=e.p+"tf-"+({}[t]||t)+".js",s.appendChild(l)}},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 l(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=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 r=i(1),o=s(r),h=i(2),u=s(h),d=i(3),f=s(d),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),P=i(13),R=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),B=i(24),M=i(25),A=window,H=A.document;e.TableFilter=function(){function t(){var e=this;l(this,t);for(var i=arguments.length,s=Array(i),a=0;i>a;a++)s[a]=arguments[a];if(0!==s.length){if(this.id=null,this.version="0.1.5",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 r=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=r.base_path||"tablefilter/",this.fltTypeInp="input",this.fltTypeSlc="select",this.fltTypeMulti="multiple",this.fltTypeCheckList="checklist",this.fltTypeNone="none",this.fltGrid=r.grid===!1?!1:!0,this.gridLayout=Boolean(r.grid_layout),this.filtersRowIndex=isNaN(r.filters_row_index)?0:r.filters_row_index,this.headersRow=isNaN(r.headers_row_index)?0===this.filtersRowIndex?1:0:r.headers_row_index,this.fltCellTag="th"!==r.filters_cell_tag||"td"!==r.filters_cell_tag?"td":r.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=r.inf_div_css_class||"inf",this.lDivCssClass=r.left_div_css_class||"ldiv",this.rDivCssClass=r.right_div_css_class||"rdiv",this.mDivCssClass=r.middle_div_css_class||"mdiv",this.contDivCssClass=r.content_div_css_class||"cont",this.stylePath=r.style_path||this.basePath+"style/",this.stylesheet=r.stylesheet||this.stylePath+"tablefilter.css",this.stylesheetId=this.id+"_style",this.fltsRowCssClass=r.flts_row_css_class||"fltrow",this.enableIcons=r.enable_icons===!1?!1:!0,this.alternateRows=Boolean(r.alternate_rows),this.hasColWidths=v["default"].isArray(r.col_widths),this.colWidths=this.hasColWidths?r.col_widths:null,this.fltCssClass=r.flt_css_class||"flt"
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+" "),l=0,a=i.options.length;a>l;l++){var r=i.options[l];(""===n||""===n[0])&&(r.selected=!1),""===r.value&&(r.selected=!1),""!==r.value&&m["default"].has(n,r.value,!0)&&(r.selected=!0)}else if(s===this.fltTypeCheckList){e=f["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 d=0;h>d;d++){var c=u["default"].tag(i,"li")[d],p=u["default"].tag(c,"label")[0],g=u["default"].tag(c,"input")[0],v=f["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,l=n?null:H.createDocumentFragment(),a=0;t>a;a++){var r=void 0;n?r=s[a]:(r=u["default"].create("col",["id",this.id+"_col_"+a]),l.appendChild(r)),r.style.width=i[a]}n||e.insertBefore(l,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 l=void 0,a=0,r=s.length;r>a;a++){var o=u["default"].id(this.fltIds[s[a]]);if(l=this.getFilterValue(s[a]),n!==s[a]||this.paging&&-1!=t.indexOf(s[a])&&n===s[a]||!this.paging&&(-1!=i.indexOf(s[a])||-1!=e.indexOf(s[a]))||l===this.displayAllText){if(-1!=i.indexOf(s[a])?this.Mod.checkList.checkListDiv[s[a]].innerHTML="":o.innerHTML="",this.loadFltOnDemand){var h=u["default"].createOpt(this.displayAllText,"");o&&o.appendChild(h)}-1!=i.indexOf(s[a])?this.Mod.checkList.build(s[a]):this.Mod.dropdown.build(s[a],!0),this.setFilterValue(s[a],l)}}}}},{key:"_resetGrid",value:function(){if(!this.isFirstLoad){var t=this.Mod,e=this.tbl,i=e.rows,s=this.filtersRowIndex,n=i[s];if(!this.gridLayout){if(e.tHead){var l=e.tHead.insertRow(this.filtersRowIndex);e.tHead.replaceChild(this.fltGridEl,l)}else n.parentNode.insertBefore(this.fltGridEl,n);u["default"].addClass(e,this.prfxTf)}if(this.isExternalFlt)for(var a=this.externalFltTgtIds,r=0,o=a.length;o>r;r++){var h=u["default"].id(a[r]);if(h){var d=this.externalFltEls[r];h.appendChild(d);var f=this.getFilterType(r);this.gridLayout&&""===d.innerHTML&&f!==this.fltTypeInp&&((f===this.fltTypeSlc||f===this.fltTypeMulti)&&t.dropdown.build(r),f===this.fltTypeCheckList&&t.checkList.bui
e.popUpFltSpans=[],e.popUpFltImgs=[],e.popUpFltElms=e.popUpFltElmCache||[],e.popUpFltAdjustToContainer=!0,e.prfxPopUpSpan="popUpSpan_",e.prfxPopUpDiv="popUpDiv_",e}return a(i,e),r(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 l=this.popUpFltElms[n],a=this.tf.getHeaderElement(n),r=.95*a.clientWidth;l.style.width=parseInt(r,10)+"px"}p["default"].cancel(i),p["default"].stop(i)}},{key:"init",value:function(){var t=this;if(!this.initialized){var e=this.tf;e.headersRow<=1&&(e.headersRow=0);for(var i=0;i<e.nbCells;i++)if(e.getFilterType(i)!==e.fltTypeNone){var s=f["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.emitter.on(["filters-row-inserted"],function(){return t.tf.headersRow++}),this.emitter.on(["before-filter-init"],function(e,i){return t.build(i)}),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:f["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.onAfterPopUpClose&&this.onAfterPopUpClose.call(null,this,this.popUpFltElms[t],t)}},{key:"closeAll",value:function(t){for(var e=0;e<this.popUpFltElms.length;e++)if(e!==t){var i=this.popUpFltElms[e];i&&(i.style.display="none")}}},{key:"buildIcons",value:function(){for(var t=0;t<this.popUpFltImgs.length;t++)this.buildIcon(t,!1)}},{key:"buildIcon",value:function(t,e){this.popUpFltImgs[t]&&(this.popUpFltImgs[t].src=e?this.popUpImgFltActive:this.popUpImgFlt)}},{key:"destroy",value:function(){var t=this;if(this.initialized){this.popUpFltElmCache=[];for(var e=0;e<this.popUpFltElms.length;e++){var i=this.popUpFltElms[e],s=this.popUpFltSpans[e],n=this.popUpFltImgs[e];i&&(f["default"].remove(i),this.popUpFltElmCache[e]=i),i=null,s&&f["default"].remove(s),s=null,n&&f["default"].remove(n),n=null}this.popUpFltElms=[],this.popUpFltSpans=[],this.popUpFltImgs=[],this.emitter.off(["before-filtering"],function(){return t.buildIcons()}),this.emitter.off(["after-filtering"],function(){return t.closeAll()}),this.emitter.off(["cell-processed"],function(e,i){return t.buildIcon(i,!0)}),this.emitter.off(["filters-row-inserted"],function(){return t.tf.headersRow++}),this.emitter.off(["before-filter-init"],function(e,i){return t.build(i)}),this.initialized=!1}}}]),i}(o.Feature)}).call(e,function(){return this}())},function(t,e,i){"use strict";function s(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 l(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 a(t,e){if("function"!=typeof e&&null!==e)throw ne
t.className=this.pgInpCssClass,b["default"].add(t,"keypress",s._detectKey));var n=d["default"].create("span",["id",this.prfxBtnNextSpan+i.id]),l=d["default"].create("span",["id",this.prfxBtnPrevSpan+i.id]),a=d["default"].create("span",["id",this.prfxBtnLastSpan+i.id]),r=d["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=d["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)l.innerHTML=this.btnPrevPageHtml,b["default"].add(l,"click",s.prev);else{var h=d["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),l.appendChild(h)}if(this.btnLastPageHtml)a.innerHTML=this.btnLastPageHtml,b["default"].add(a,"click",s.last);else{var u=d["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),a.appendChild(u)}if(this.btnFirstPageHtml)r.innerHTML=this.btnFirstPageHtml,b["default"].add(r,"click",s.first);else{var f=d["default"].create(i.fltTypeInp,["id",this.prfxBtnFirst+i.id],["type","button"],["value",this.btnFirstPageText],["title","First"]);f.className=this.btnPageCssClass,b["default"].add(f,"click",s.first),r.appendChild(f)}}this.pagingTgtId||i.setToolbar();var c=this.pagingTgtId?d["default"].id(this.pagingTgtId):i.mDiv;c.appendChild(r),c.appendChild(l);var p=d["default"].create("span",["id",this.prfxPgBeforeSpan+i.id]);p.appendChild(d["default"].text(this.pageText)),p.className=this.nbPgSpanCssClass,c.appendChild(p),c.appendChild(t);var g=d["default"].create("span",["id",this.prfxPgAfterSpan+i.id]);g.appendChild(d["default"].text(this.ofText)),g.className=this.nbPgSpanCssClass,c.appendChild(g);var v=d["default"].create("span",["id",this.prfxPgSpan+i.id]);v.className=this.nbPgSpanCssClass,v.appendChild(d["default"].text(" "+this.nbPages+" ")),c.appendChild(v),c.appendChild(n),c.appendChild(a),this.pagingSlc=d["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?d["default"].id(this.pagingTgtId):e.mDiv,s=d["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 l=d["default"].createOpt(n+1,n*this.pagingLength,!1);this.pagingSlc.options[n]=l}else this.pagingSlc.value=this.currentPageNb;else i.style.visibility="hidden";this.groupByPage(e.validRowsIndex)}},{key:"groupByPage",value:function(t){var e=this.tf,i=e.tbl.rows,s=parseInt(this.startPagingRow,10),n=s+parseInt(this.pagingLength,10);t&&(e.validRowsIndex=t);for(var l=0,a=e.validRowsIndex.length;a>l;l++){var r=e.validRowsIndex[l],o=i[r],h=o.getAttribute("validRow"),u=!1;l>=s&&n>l?(c["default"].isNull(h)||Boolean("true"===h))&&(o.style.display="",u=!0):o.style.display="none",this.emitter.emit("row-paged",e,r,l,u)}e.nbVisibleRows=e.validRowsInde