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

10 lines
114 KiB
JavaScript
Raw Normal View History

/**
2016-02-01 08:11:45 +01:00
* tablefilter v0.1.10 by Max Guglielmi
* build date: 2016-02-01T07:07:05.275Z
* MIT License
*/
2016-02-01 08:11:45 +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 r,a,o=0,u=[];o<s.length;o++)a=s[o],n[a]&&u.push.apply(u,n[a]),n[a]=0;for(r in l)t[r]=l[r];for(i&&i(s,l);u.length;)u.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 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 a=i(1),o=s(a),u=i(2),h=s(u),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),_=i(8),C=i(10),w=i(12),x=i(13),k=i(14),T=i(15),P=i(18),R=i(19),F=i(20),I=i(21),O=i(22),S=i(23),E=i(24),N=i(25),L=window,D=L.document;e.TableFilter=function(){function t(){var e=this;l(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.10",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=h["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 a=this.cfg;this.emitter=new y.Emitter,this.refRow=null===this.startRow?2:this.startRow+1;try{this.nbCells=this.getCellsNb(this.refRow)}catch(u){this.nbCells=this.getCellsNb(0)}this.basePath=a.base_path||"tablefilter/",this.fltTypeInp="input",this.fltTypeSlc="select",this.fltTypeMulti="multiple",this.fltTypeCheckList="checklist",this.fltTypeNone="none",this.fltGrid=a.grid===!1?!1:!0,this.gridLayout=Boolean(a.grid_layout),this.filtersRowIndex=isNaN(a.filters_row_index)?0:a.filters_row_index,this.headersRow=isNaN(a.headers_row_index)?0===this.filtersRowIndex?1:0:a.headers_row_index,this.fltCellTag="th"!==a.filters_cell_tag||"td"!==a.filters_cell_tag?"td":a.filters_cell_tag,this.fltIds=[],this.fltElms=[],this.validRowsIndex=[],this.fltGridEl=null,this.infDiv=null,this.lDiv=null,this.rDiv=null,this.mDiv=null,this.infDivCssClass=a.inf_div_css_class||"inf",this.lDivCssClass=a.left_div_css_class||"ldiv",this.rDivCssClass=a.right_div_css_class||"rdiv",this.mDivCssClass=a.middle_div_css_class||"mdiv",this.contDivCssClass=a.content_div_css_class||"cont",this.stylePath=a.style_path||this.basePath+"style/",this.stylesheet=a.stylesheet||this.stylePath+"tablefilter.css",this.stylesheetId=this.id+"_style",this.fltsRowCssClass=a.flts_row_css_class||"fltrow",this.enableIcons=a.enable_icons===!1?!1:!0,this.alternateRows=Boolean(a.alternate_rows),this.hasColWidths=p["default"].isArray(a.col_widths),this.colWidths=this.hasColWidths?a.col_widths:null,this.fltCssClass=a.flt_css_class||"flt",this.fltMultiCssClass=a.flt_multi_css_class||"flt_multi",this.fltSma
s=s.concat(i);var n=this.activeFilterId.split("_")[0];n=n.split(this.prfxFlt)[1];for(var l=void 0,r=0,a=s.length;a>r;r++){var o=h["default"].id(this.fltIds[s[r]]);if(l=this.getFilterValue(s[r]),n!==s[r]||this.paging&&-1!=t.indexOf(s[r])&&n===s[r]||!this.paging&&(-1!=i.indexOf(s[r])||-1!=e.indexOf(s[r]))||l===this.displayAllText){if(-1!=i.indexOf(s[r])?this.Mod.checkList.checkListDiv[s[r]].innerHTML="":o.innerHTML="",this.loadFltOnDemand){var u=h["default"].createOpt(this.displayAllText,"");o&&o.appendChild(u)}-1!=i.indexOf(s[r])?this.emitter.emit("build-checklist-filter",this,s[r],this.isExternalFlt):this.emitter.emit("build-select-filter",this,s[r],!0,this.isExternalFlt),this.setFilterValue(s[r],l)}}}}},{key:"isExactMatch",value:function(t){var e=this.getFilterType(t);return this.exactMatchByCol[t]||this.exactMatch||e!==this.fltTypeInp}},{key:"isImported",value:function(t,e){for(var i=!1,s=e?e:"script",n="script"==s?"src":"href",l=h["default"].tag(D,s),r=0,a=l.length;a>r;r++)if(void 0!==l[r][n]&&l[r][n].match(t)){i=!0;break}return i}},{key:"import",value:function(t,e,i,s){var n=s?s:"script",l=this.isImported(e,n);if(!l){var r=this,a=!1,o=void 0,u=h["default"].tag(D,"head")[0];o="link"===d["default"].lower(n)?h["default"].create("link",["id",t],["type","text/css"],["rel","stylesheet"],["href",e]):h["default"].create("script",["id",t],["type","text/javascript"],["src",e]),o.onload=o.onreadystatechange=function(){a||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState||(a=!0,"function"==typeof i&&i.call(null,r))},o.onerror=function(){throw new Error("TF script could not load: "+e)},u.appendChild(o)}}},{key:"hasGrid",value:function(){return this._hasGrid}},{key:"getFiltersId",value:function(){return this.fltIds||[]}},{key:"getValidRows",value:function(t){if(!t)return this.validRowsIndex;this.validRowsIndex=[];for(var e=this.refRow;e<this.getRowsNb(!0);e++){var i=this.tbl.rows[e];this.paging?("true"===i.getAttribute("validRow")||null===i.getAttribute("validRow"))&&this.validRowsIndex.push(i.rowIndex):"none"!==this.getRowDisplay(i)&&this.validRowsIndex.push(i.rowIndex)}return this.validRowsIndex}},{key:"getFiltersRowIndex",value:function(){return this.filtersRowIndex}},{key:"getHeadersRowIndex",value:function(){return this.headersRow}},{key:"getStartRowIndex",value:function(){return this.refRow}},{key:"getLastRowIndex",value:function(){return this.nbRows-1}},{key:"getHeaderElement",value:function(t){for(var e=this.gridLayout?this.Mod.gridLayout.headTbl:this.tbl,i=h["default"].tag(e,"thead"),s=this.headersRow,n=void 0,l=0;l<this.nbCells;l++)if(l===t){0===i.length&&(n=e.rows[s].cells[l]),1===i.length&&(n=i[0].rows[s].cells[l]);break}return n}},{key:"getHeadersText",value:function(){for(var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0],e=[],i=0;i<this.nbCells;i++)if(!(t&&this.hasExtension("colsVisibility")&&this.extension("colsVisibility").isColHidden(i))){var s=this.getHeaderElement(i),n=h["default"].getFirstTextNode(s);e.push(n)}return e}},{key:"getFilterType",value:function(t){var e=this.cfg["col_"+t];return e?d["default"].lower(e):this.fltTypeInp}},{key:"getFilterableRowsNb",value:function(){return this.getRowsNb(!1)}},{key:"config",value:function(){return this.cfg}}]),t}()},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]={add:function(t,e,i,s){t.addEventListener?t.addEventListener(e,i,s):t.attachEvent?t.attachEvent("on"+e,i):t["on"+e]=i},remove:function(t,e,i,s){t.detachEvent?t.detachEvent("on"+e,i):t.removeEventListener?t.removeEventListener(e,i,s):t["on"+e]=null},stop:function(t){t||(t=window.event),t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},cancel:function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},target:function(t){return t&&t.target||window.event&&window.event.srcElement},keyCode:function(t){return t.charCode?t.charCode:t.keyCode?t.keyCode:t.which?t.which:0}}},function(t,e){"use strict";function i(t){return t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t}function s(){ret
i&&(d["default"].remove(i),this.popUpFltElmCache[e]=i),i=null,s&&d["default"].remove(s),s=null,n&&d["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 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 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.Dropdown=void 0;var o=i(11),u=i(2),h=s(u),f=i(16),d=s(f),c=i(3),p=s(c),g=i(17),v=s(g),b=i(1),m=s(b);e.Dropdown=function(t){function e(t){n(this,e);var i=l(this,Object.getPrototypeOf(e).call(this,t,"dropdown")),s=t.config();return i.enableSlcResetFilter=s.enable_slc_reset_filter===!1?!1:!0,i.nonEmptyText=s.non_empty_text||"(Non empty)",i.slcFillingMethod=s.slc_filling_method||"createElement",i.activateSlcTooltip=s.activate_slc_tooltip||"Click to activate",i.multipleSlcTooltip=s.multiple_slc_tooltip||"Use Ctrl key for multiple selections",i.isCustom=null,i.opts=null,i.optsTxt=null,i.slcInnerHtml=null,i}return r(e,t),a(e,[{key:"onSlcFocus",value:function(t){var e=m["default"].target(t),i=this.tf;if(i.activeFilterId=e.getAttribute("id"),i.activeFlt=h["default"].id(i.activeFilterId),i.loadFltOnDemand&&"0"===e.getAttribute("filled")){var s=e.getAttribute("ct");this.build(s)}this.emitter.emit("filter-focus",i,this)}},{key:"onSlcChange",value:function(){this.tf.onSlcChange&&this.tf.filter()}},{key:"init",value:function(t,e,i){var s=this,n=this.tf,l=n.getFilterType(t),r=e?n.externalFltTgtIds[t]:null,a=h["default"].create(n.fltTypeSlc,["id",n.prfxFlt+t+"_"+n.id],["ct",t],["filled","0"]);if(l===n.fltTypeMulti&&(a.multiple=n.fltTypeMulti,a.title=this.multipleSlcTooltip),a.className=p["default"].lower(l)===n.fltTypeSlc?n.fltCssClass:n.fltMultiCssClass,r?(h["default"].id(r).appendChild(a),n.externalFltEls.push(a)):i.appendChild(a),n.fltIds.push(a.id),n.loadFltOnDemand){var o=h["default"].createOpt(n.displayAllText,"");a.appendChild(o)}else this.build(t);m["default"].add(a,"change",function(){return s.onSlcChange()}),m["default"].add(a,"focus",function(t){return s.onSlcFocus(t)}),this.emitter.on(["build-select-filter"],function(t,e,i,n){return s.build(e,i,n)}),this.emitter.on(["select-options"],function(t,e,i){return s.selectOptions(e,i)}),this.initialized=!0}},{key:"build",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],s=arguments.length<=3||void 0===arguments[3]?null:arguments[3],n=this.tf;t=parseInt(t,10),this.emitter.emit("before-populating-filter",n,t),this.opts=[],this.optsTxt=[],this.slcInnerHtml="";var l=n.fltIds[t];if((h["default"].id(l)||i)&&(h["default"].id(s)||!i)){var r=i?h["default"].id(s):h["default"].id(l),a=n.tbl.rows,o=n.matchCase;this.isCustom=n.isCustomOptions(t);var u=void 0;e&&n.activeFilterId&&(u=n.activeFilterId.split("_")[0],u=u.split(n.prfxFlt)[1]);
b["default"].add(l,"click",s.prev);else{var u=f["default"].create(i.fltTypeInp,["id",this.prfxBtnPrev+i.id],["type","button"],["value",this.btnPrevPageText],["title","Previous"]);u.className=this.btnPageCssClass,b["default"].add(u,"click",s.prev),l.appendChild(u)}if(this.btnLastPageHtml)r.innerHTML=this.btnLastPageHtml,b["default"].add(r,"click",s.last);else{var h=f["default"].create(i.fltTypeInp,["id",this.prfxBtnLast+i.id],["type","button"],["value",this.btnLastPageText],["title","Last"]);h.className=this.btnPageCssClass,b["default"].add(h,"click",s.last),r.appendChild(h)}if(this.btnFirstPageHtml)a.innerHTML=this.btnFirstPageHtml,b["default"].add(a,"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),a.appendChild(d)}}this.pagingTgtId||i.setToolbar();var c=this.pagingTgtId?f["default"].id(this.pagingTgtId):i.mDiv;c.appendChild(a),c.appendChild(l);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;this.isEnabled()||(this.enable(),this.init(),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 l=f["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,r=e.validRowsIndex.length;r>l;l++){var a=e.validRowsIndex[l],o=i[a],u=o.getAttribute("validRow"),h=!1;l>=s&&n>l?(c["default"].isNull(u)||Boolean("true"===u))&&(o.style.display="",h=!0):o.style.display="none",this.emitter.emit("row-paged",e,a,l,h)}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":n(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(!this.resultsPerPageSlc&&this.resultsPerPage){i.slcResultsChange=function(e){t.changeResultsPerPage(),e.target.blur()};var s=f["default"].create(e.fltTypeSlc,["id",this.prfxSlcResults+e.id]);s.className=this.resultsS