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

10 lines
117 KiB
JavaScript
Raw Normal View History

/**
* tablefilter v0.2.0 by Max Guglielmi
* build date: 2016-03-16T07:04:47.758Z
* 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 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,r){for(var a,l,o=0,u=[];o<s.length;o++)l=s[o],n[l]&&u.push.apply(u,n[l]),n[l]=0;for(a in r)t[a]=r[a];for(i&&i(s,r);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],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.src=e.p+"tf-"+({}[t]||t)+".js",s.appendChild(r)}},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,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0}),e.TableFilter=void 0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},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}}(),l=i(1),o=s(l),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),F=i(19),R=i(20),O=i(21),S=i(22),I=i(23),E=i(24),N=i(25),L=i(26),B=window,D=B.document;e.TableFilter=function(){function t(){var e=this;n(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.2.0",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":r(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 l=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=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.fltCellTag="th"!==l.filters_cell_tag||"td"!==l.filters_cell_tag?"td":l.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=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=p["default"].isArray(l.col_widths),this.colWidths=this.hasColWidths?l.col_widths:null,this.fltCssClass
n=n.split(this.prfxFlt)[1];for(var r=void 0,a=0,l=s.length;l>a;a++){var o=h["default"].id(this.fltIds[s[a]]);if(r=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]))||r===this.displayAllText){if(this.loadFltOnDemand){var u=h["default"].createOpt(this.displayAllText,"");o.innerHTML="",o.appendChild(u)}-1!=i.indexOf(s[a])?this.emitter.emit("build-checklist-filter",this,s[a]):this.emitter.emit("build-select-filter",this,s[a],!0),this.setFilterValue(s[a],r)}}}}},{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",r=h["default"].tag(D,s),a=0,l=r.length;l>a;a++)if(void 0!==r[a][n]&&r[a][n].match(t)){i=!0;break}return i}},{key:"import",value:function(t,e,i,s){var n=s?s:"script",r=this.isImported(e,n);if(!r){var a=this,l=!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(){l||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState||(l=!0,"function"==typeof i&&i.call(null,a))},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,r=0;r<this.nbCells;r++)if(r===t){0===i.length&&(n=e.rows[s].cells[r]),1===i.length&&(n=i[0].rows[s].cells[r]);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(){return document.documentElement.classList}Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"sym
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&&(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 r(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 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)}Object.defineProperty(e,"__esModule",{value:!0}),e.Dropdown=void 0;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}}(),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),y="Filter options for column {0} cannot be sorted in {1} manner.";e.Dropdown=function(t){function e(t){n(this,e);var i=r(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.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 a(e,t),l(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,r=n.getFilterType(t),a=e?n.externalFltTgtIds[t]:null,l=h["default"].create(n.fltTypeSlc,["id",n.prfxFlt+t+"_"+n.id],["ct",t],["filled","0"]);if(r===n.fltTypeMulti&&(l.multiple=n.fltTypeMulti,l.title=this.multipleSlcTooltip),l.className=p["default"].lower(r)===n.fltTypeSlc?n.fltCssClass:n.fltMultiCssClass,a?(h["default"].id(a).appendChild(l),n.externalFltEls.push(l)):i.appendChild(l),n.fltIds.push(l.id),n.loadFltOnDemand){var o=h["default"].createOpt(n.displayAllText,"");l.appendChild(o)}else this.build(t);m["default"].add(l,"change",function(){return s.onSlcChange()}),m["default"].add(l,"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=this.tf;t=parseInt(t,10),this.emitter.emit("befo
u.className=this.btnPageCssClass,b["default"].add(u,"click",s.prev),r.appendChild(u)}if(this.btnLastPageHtml)a.innerHTML=this.btnLastPageHtml,b["default"].add(a,"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),a.appendChild(h)}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(r);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(a),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 r=f["default"].createOpt(n+1,n*this.pagingLength,!1);this.pagingSlc.options[n]=r}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 r=0,a=e.validRowsIndex.length;a>r;r++){var l=e.validRowsIndex[r],o=i[l],u=o.getAttribute("validRow"),h=!1;r>=s&&n>r?(c["default"].isNull(u)||Boolean("true"===u))&&(o.style.display="",h=!0):o.style.display="none",this.emitter.emit("row-paged",e,l,r,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":l(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.resultsSlcCssClass;var n=this.resultsPerPage[0],r=this.resultsPerPage[1],a=f["default"].create("span",["id",this.prfxSlcResultsTxt+e.id]);a.className=this.resultsSpanCssClass,this.results