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

10 lines
112 KiB
JavaScript
Raw Normal View History

/**
* tablefilter v0.1.1 by Max Guglielmi
* build date: 2015-12-30T05:48:52.421Z
* 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 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 a=s[i]={exports:{},id:i,loaded:!1};return t[i].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var i=window.webpackJsonp;window.webpackJsonp=function(s,l){for(var n,r,o=0,h=[];o<s.length;o++)r=s[o],a[r]&&h.push.apply(h,a[r]),a[r]=0;for(n in l)t[n]=l[n];for(i&&i(s,l);h.length;)h.shift().call(null,e)};var s={},a={0:0};return e.e=function(t,i){if(0===a[t])return i.call(null,e);if(void 0!==a[t])a[t].push(i);else{a[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 a(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 n=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),_=i(7),y=s(_),C=i(8),w=s(C),x=i(9),k=i(10),T=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),M=i(22),N=i(23),D=i(24),B=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),n=0;i>n;n++)s[n]=arguments[n];if(0!==s.length){if(this.id=null,this.version="0.1.1",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":a(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.gridLayout&&(this.headersRow>1?this.filtersRowIndex=this.headersRow+1:(this.filtersRowIndex=1,this.headersRow=0)),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=null,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["d
for(var n=this.refRow;n<this.nbRows;n++){var r=!1;s.length>0&&(r=-1!=s.indexOf(n));var o=a[n].cells,h=o.length;if(h===this.nbCells&&!r)for(var u=0;h>u;u++)if(u==t&&""===a[n].style.display){var d=this.getCellData(o[u]),f=this.colNbFormat?this.colNbFormat[t]:null,c=i?w["default"].removeNbFormat(d,f):d;l.push(c)}}return l}}},{key:"getFilterValue",value:function(t){if(this.fltGrid){var e=void 0,i=this.getFilterElement(t);if(!i)return"";var s=this.getFilterType(t);if(s!==this.fltTypeMulti&&s!==this.fltTypeCheckList)e=i.value;else if(s===this.fltTypeMulti){e="";for(var a=0,l=i.options.length;l>a;a++)i.options[a].selected&&(e=e.concat(i.options[a].value+" "+this.orOperator+" "));e=e.substr(0,e.length-4)}else s===this.fltTypeCheckList&&(null!==i.getAttribute("value")?(e=i.getAttribute("value"),e=e.substr(0,e.length-3)):e="");return e}}},{key:"getFiltersValue",value:function(){if(this.fltGrid){for(var t=[],e=0,i=this.fltIds.length;i>e;e++)t.push(f["default"].trim(f["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 i=[],s=0,a=this.fltIds.length;a>s;s++){var l=this.getFilterType(s);if(l===f["default"].lower(t)){var n=e?s:this.fltIds[s];i.push(n)}}return i}}},{key:"getFilterElement",value:function(t){var e=this.fltIds[t];return u["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=v["default"].isUndef(this.refRow)?0:this.refRow,i=this.tbl.rows.length;return t&&(e=0),parseInt(i-e,10)}},{key:"getCellData",value:function(t){var e=t.cellIndex;return this.customCellData&&-1!=this.customCellDataCols.indexOf(e)?this.customCellData.call(null,this,t,e):u["default"].getText(t)}},{key:"getTableData",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0],e=this.tbl.rows,i=[];t&&i.push([this.getHeadersRowIndex(),this.getHeadersText()]);for(var s=this.refRow;s<this.nbRows;s++){for(var a=[s,[]],l=e[s].cells,n=0,r=l.length;r>n;n++){var o=this.getCellData(l[n]);a[1].push(o)}i.push(a)}return i}},{key:"getFilteredData",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];if(!this.validRowsIndex)return[];var e=this.tbl.rows,i=[];t&&i.push([this.getHeadersRowIndex(),this.getHeadersText()]);for(var s=this.getValidRows(!0),a=0;a<s.length;a++){for(var l=[this.validRowsIndex[a],[]],n=e[this.validRowsIndex[a]].cells,r=0;r<n.length;r++){var o=this.getCellData(n[r]);l[1].push(o)}i.push(l)}return i}},{key:"getFilteredDataCol",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 a=0,l=i.length;l>a;a++){var n=i[a],r=n[1],o=r[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",a=e?"true":"false";i.style.display=s,this.paging&&i.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 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 a=e.split(" "+this.orOperator+" "),l=0,n=i.options.length;n>l;l++){var r=i.options[l];(""===a||""===a[0])&&(r.selected=!1),""===r.value&&(r.selected=!1),""!==r.value&&m["default"].has(a,r.value,!0)&&(r.selected=!0)}else if(s===this.fltTypeCheckList){e=f["default"].mat
"default":t}}function a(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 n(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 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.PopupFilter=void 0;var o=i(12),h=i(5),u=s(h),d=i(2),f=s(d),c=i(1),p=s(c);e.PopupFilter=function(e){function i(t){a(this,i);var e=l(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 n(i,e),r(i,[{key:"onClick",value:function(e){var i=e||t.event,s=i.target.parentNode,a=parseInt(s.getAttribute("ci"),10);if(this.closeAll(a),this.toggle(a),this.popUpFltAdjustToContainer){var l=this.popUpFltElms[a],n=this.tf.getHeaderElement(a),r=.95*n.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){for(var e=this.tf,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 a=e.getHeaderElement(i);a.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.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 a=i.getHeaderElement(t);a.insertBefore(s,a.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
value:function(){var t=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],e=this.tf,i=e.tbl.rows,s=this.pagingTgtId?d["default"].id(this.pagingTgtId):e.mDiv,a=d["default"].id(this.prfxPgSpan+e.id);if(e.validRowsIndex=t,0===t.length)for(var l=e.refRow;l<e.nbRows;l++){var n=i[l];if(n){var r=n.getAttribute("validRow");(c["default"].isNull(r)||Boolean("true"===r))&&e.validRowsIndex.push(l)}}if(this.nbPages=Math.ceil(e.validRowsIndex.length/this.pagingLength),a.innerHTML=this.nbPages,this.pageSelectorType===e.fltTypeSlc&&(this.pagingSlc.innerHTML=""),this.nbPages>0)if(s.style.visibility="visible",this.pageSelectorType===e.fltTypeSlc)for(var o=0;o<this.nbPages;o++){var h=d["default"].createOpt(o+1,o*this.pagingLength,!1);this.pagingSlc.options[o]=h}else this.pagingSlc.value=this.currentPageNb;else s.style.visibility="hidden";this.groupByPage(e.validRowsIndex)}},{key:"groupByPage",value:function(t){var e=this.tf,i=e.feature("alternateRows"),s=e.tbl.rows,a=parseInt(this.startPagingRow,10),l=a+parseInt(this.pagingLength,10);t&&(e.validRowsIndex=t);for(var n=0,r=e.validRowsIndex.length;r>n;n++){var o=e.validRowsIndex[n],h=s[o],u=h.getAttribute("validRow");n>=a&&l>n?((c["default"].isNull(u)||Boolean("true"===u))&&(h.style.display=""),e.alternateRows&&i&&i.setRowBg(o,n)):(h.style.display="none",e.alternateRows&&i&&i.removeRowBg(o))}e.nbVisibleRows=e.validRowsIndex.length,this.emitter.emit("grouped-by-page",e,this)}},{key:"getPage",value:function(){return this.currentPageNb}},{key:"setPage",value:function(t){var e=this.tf;if(e.hasGrid()&&this.isEnabled()){var i=this.evt,s="undefined"==typeof t?"undefined":a(t);if("string"===s)switch(g["default"].lower(t)){case"next":i.next();break;case"previous":i.prev();break;case"last":i.last();break;case"first":i.first();break;default:i.next()}else"number"===s&&this.changePage(t-1)}}},{key:"setResultsPerPage",value:function(){var t=this,e=this.tf,i=this.evt;if((e.hasGrid()||e.isFirstLoad)&&!this.resultsPerPageSlc&&this.resultsPerPage){i.slcResultsChange=function(e){t.changeResultsPerPage(),e.target.blur()};var s=d["default"].create(e.fltTypeSlc,["id",this.prfxSlcResults+e.id]);s.className=this.resultsSlcCssClass;var a=this.resultsPerPage[0],l=this.resultsPerPage[1],n=d["default"].create("span",["id",this.prfxSlcResultsTxt+e.id]);n.className=this.resultsSpanCssClass,this.resultsPerPageTgtId||e.setToolbar();var r=this.resultsPerPageTgtId?d["default"].id(this.resultsPerPageTgtId):e.rDiv;n.appendChild(d["default"].text(a));var o=e.feature("help");o&&o.btn?(o.btn.parentNode.insertBefore(n,o.btn),o.btn.parentNode.insertBefore(s,o.btn)):(r.appendChild(n),r.appendChild(s));for(var h=0;h<l.length;h++){var u=new Option(l[h],l[h],!1,!1);s.options[h]=u}b["default"].add(s,"change",i.slcResultsChange),this.resultsPerPageSlc=s}}},{key:"removeResultsPerPage",value:function(){var t=this.tf;if(t.hasGrid()&&this.resultsPerPageSlc&&this.resultsPerPage){var e=this.resultsPerPageSlc,i=d["default"].id(this.prfxSlcResultsTxt+t.id);e&&d["default"].remove(e),i&&d["default"].remove(i),this.resultsPerPageSlc=null}}},{key:"changePage",value:function(t){var e=this.tf,i=e.Evt;e.EvtManager(i.name.changepage,{pgIndex:t})}},{key:"changeResultsPerPage",value:function(){var t=this.tf,e=t.Evt;t.EvtManager(e.name.changeresultsperpage)}},{key:"resetPage",value:function(){var t=this.tf,e=t.Evt;t.EvtManager(e.name.resetpage)}},{key:"resetPageLength",value:function(){var t=this.tf,e=t.Evt;t.EvtManager(e.name.resetpagelength)}},{key:"_changePage",value:function(t){var e=this.tf;this.isEnabled()&&(null===t&&(t=this.pageSelectorType===e.fltTypeSlc?this.pagingSlc.options.selectedIndex:this.pagingSlc.value-1),t>=0&&t<=this.nbPages-1&&(this.onBeforeChangePage&&this.onBeforeChangePage.call(null,this,t),this.currentPageNb=parseInt(t,10)+1,this.pageSelectorType===e.fltTypeSlc?this.pagingSlc.options[t].selected=!0:this.pagingSlc.value=this.currentPageNb,e.rememberPageNb&&e.feature("store").savePageNb(e.pgNbCookie),this.startPagingRow=this.pageSelectorType===e.fltTypeSlc?this.pagingSlc.value:t*this.pagingLength,this.groupByPage(),this.onAft