From 198d36fdfcbe59083c77906502f2e48308d0a025 Mon Sep 17 00:00:00 2001 From: Travis Clarke Date: Wed, 7 Jun 2017 19:19:54 -0700 Subject: [PATCH] v5.0.0-rc.7 - "emptyCSS" with rows (); "ignoreCSS" and "emptyCSS" as selector|selector[]; general cleanup --- bower.json | 2 +- dist/css/tableexport.css | 2 +- dist/css/tableexport.min.css | 2 +- dist/js/tableexport.js | 4 ++-- dist/js/tableexport.min.js | 4 ++-- dist/tableexport.d.ts | 4 ++-- package.json | 2 +- src/stable/css/tableexport.css | 2 +- src/stable/css/tableexport.min.css | 2 +- src/stable/js/tableexport.js | 4 ++-- src/stable/js/tableexport.min.js | 4 ++-- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bower.json b/bower.json index 1470426..311c2a5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "tableexport.js", - "version": "5.0.0-rc.6", + "version": "5.0.0-rc.7", "authors": [ "clarketm " ], diff --git a/dist/css/tableexport.css b/dist/css/tableexport.css index 3fdbaa8..4f35449 100644 --- a/dist/css/tableexport.css +++ b/dist/css/tableexport.css @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * diff --git a/dist/css/tableexport.min.css b/dist/css/tableexport.min.css index b953e7b..31be147 100644 --- a/dist/css/tableexport.min.css +++ b/dist/css/tableexport.min.css @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * diff --git a/dist/js/tableexport.js b/dist/js/tableexport.js index 6ad43dd..b7a7ab6 100644 --- a/dist/js/tableexport.js +++ b/dist/js/tableexport.js @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * @@ -147,7 +147,7 @@ * Version. * @memberof TableExport.prototype */ - version: '5.0.0-rc.6', + version: '5.0.0-rc.7', /** * Default library options. * @memberof TableExport.prototype diff --git a/dist/js/tableexport.min.js b/dist/js/tableexport.min.js index 7d1fbc1..0b3872a 100644 --- a/dist/js/tableexport.min.js +++ b/dist/js/tableexport.min.js @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * @@ -16,4 +16,4 @@ * limitations under the License. * */ -!function(t,e){if("function"==typeof define&&define.amd)define(function(t){var r;try{r=t("jquery")}catch(o){}return e(r,t("blobjs"),t("file-saverjs"),t("xlsx"))});else if("object"==typeof exports&&"string"!=typeof exports.nodeName){var r;try{r=require("jquery")}catch(o){}module.exports=e(r,require("blobjs"),require("file-saverjs"),require("xlsx"))}else t.TableExport=e(t.jQuery,t.Blob,t.saveAs,t.XLSX)}(this,function(t,e,r,o){"use strict";function n(){for(var t=arguments,e=1;e0}function s(t){return"undefined"!=typeof t}function l(t){return~v.indexOf(t)}function u(t){var e;switch(t){case b.TXT:case b.CSV:case b.XLS:e=!0;break;default:e=g(t)}return e}function c(t){return console.error(t),new Error(t)}function p(t,e,r){var o={};return t?(o.bootstrapClass=e[0]+" ",o.bootstrapTheme=e[1]+" ",o.bootstrapSpacing=e[2]+" "):(o.bootstrapClass=r+" ",o.bootstrapTheme="",o.bootstrapSpacing=""),o}var f=function(t,e){var r=this;if(!t)return c('"selectors" is required. \nUsage: TableExport(selectors, options)');if(!r)return new f(t,e);r.settings=n({},r.defaults,e),r.selectors=a(t);var o=r.settings;o.ignoreRows=o.ignoreRows instanceof Array?o.ignoreRows:[o.ignoreRows],o.ignoreCols=o.ignoreCols instanceof Array?o.ignoreCols:[o.ignoreCols],o.ignoreCSS=r.ignoreCSS instanceof Array?r.ignoreCSS:[r.ignoreCSS],o.emptyCSS=r.emptyCSS instanceof Array?r.emptyCSS:[r.emptyCSS],o.formatValue=r.formatValue.bind(this,o.trimWhitespace),o.bootstrapSettings=p(o.bootstrap,r.bootstrapConfig,r.defaultButton);var i={};r.getExportData=function(){return i},r.selectors.forEach(function(t){var e={};e.rows=a(t.querySelectorAll("tbody > tr")),e.rows=o.headers?a(t.querySelectorAll("thead > tr")).concat(e.rows):e.rows,e.rows=o.footers?e.rows.concat(a(t.querySelectorAll("tfoot > tr"))):e.rows,e.thAdj=o.headers?t.querySelectorAll("thead > tr").length:0,e.filename="id"===o.filename?t.getAttribute("id")?t.getAttribute("id"):r.defaultFilename:o.filename?o.filename:r.defaultFilename,e.uuid=C(t),e.checkCaption=function(e){var n=t.querySelectorAll("caption."+r.defaultCaptionClass);n.length?n[0].appendChild(e):(n=document.createElement("caption"),n.className=o.bootstrapSettings.bootstrapSpacing+o.position+" "+r.defaultCaptionClass,n.appendChild(e),t.insertBefore(n,t.firstChild))},e.setExportData=function(){return function(t){var r=d.getInstance().getItem(t),o=t.substring(t.indexOf("-")+1);i[e.uuid]=i[e.uuid]||{},i[e.uuid][o]=JSON.parse(r)}}(),e.rcMap=(new h).build(e,o);var n=v.reduce(function(t,e){return t[e]=0,t},{});o.formats.forEach(function(t){return l(t)?u(t)?void(n[t]||(e.setExportData(r.exporters.build.call(r,e,t)),n[t]++)):c('"'+t+'" requires "js-xlsx".'):c('"'+t+'" is not a valid format. \nFormats: '+v.join(", "))})});var s=document.querySelectorAll("button["+r.localStorageKey+"]");return x(s,"click",r.downloadHandler,r),r};f.prototype={version:"5.0.0-rc.6",defaults:{headers:!0,footers:!0,formats:["xlsx","csv","txt"],filename:"id",bootstrap:!1,exportButtons:!0,position:"bottom",ignoreRows:null,ignoreCols:null,trimWhitespace:!0},CONSTANTS:{FORMAT:{XLSX:"xlsx",XLSM:"xlsm",XLSB:"xlsb",BIFF2:"biff2",XLS:"xls",CSV:"csv",TXT:"txt"},TYPE:{STRING:"s",NUMBER:"n",BOOLEAN:"b",DATE:"d"}},charset:"charset=utf-8",defaultFilename:"myDownload",defaultButton:"button-default",defaultCaptionClass:"tableexport-caption",defaultNamespace:"tableexport-",localStorageKey:"tableexport-id",ignoreCSS:".tableexport-ignore",emptyCSS:".tableexport-empty",bootstrapConfig:["btn","btn-default","btn-toolbar"],rowDel:"\r\n",entityMap:{"&":"&","<":"<",">":">","'":"'","/":"/"},formatConfig:{xlsx:{defaultClass:"xlsx",buttonContent:"Export to xlsx",mimeType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",fileExtension:".xlsx"},xlsm:{defaultClass:"xlsm",buttonContent:"Export to xlsm",mimeType:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",fileExtension:".xlsm"},xlsb:{defaultClass:"xlsb",buttonContent:"Export to xlsb",mimeType:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",fileExtension:".xlsb"},xls:{defaultClass:"xls",buttonContent:"Export to xls",separator:"\t",mimeType:"application/vnd.ms-excel",fileExtension:".xls",enforceStrictRFC4180:!1},csv:{defaultClass:"csv",buttonContent:"Export to csv",separator:",",mimeType:"text/csv",fileExtension:".csv",enforceStrictRFC4180:!0},txt:{defaultClass:"txt",buttonContent:"Export to txt",separator:" ",mimeType:"text/plain",fileExtension:".txt",enforceStrictRFC4180:!0}},typeConfig:{string:{defaultClass:"tableexport-string"},number:{defaultClass:"tableexport-number",assert:function(t){return!isNaN(t)}},"boolean":{defaultClass:"tableexport-boolean",assert:function(t){return"true"===t.toLowerCase()||"false"===t.toLowerCase()}},date:{defaultClass:"tableexport-date",assert:function(t){return!/.*%/.test(t)&&!isNaN(Date.parse(t))}}},exporters:{build:function(t,e){var r=this,o=r.settings,n=r.formatConfig[e],i=n.separator,s=t.rcMap,l=function(t){if(g(e))return{v:o.formatValue(t.textContent),t:r.getType(t.className)};switch(e){case b.CSV:return'"'+o.formatValue(t.textContent.replace(/"/g,'""'))+'"';default:return o.formatValue(t.textContent)}},u=a(t.rows).map(function(t,r){if(s.isIgnore(r))return s.handleRowColMapProp(s.TYPE.IGNORE);if(s.isEmpty(r))return s.handleRowColMapProp(s.TYPE.EMPTY);var o=t.querySelectorAll("th, td");return a(o).map(function(t,o){var n=l(t);return s.isIgnore(r,o)?s.handleRowColMapProp(s.TYPE.IGNORE):s.isEmpty(r,o)?s.handleRowColMapProp(s.TYPE.EMPTY):s.handleRowColMapProp(s.TYPE.DEFAULT,r,o,e,n,i)}).processCols(e,i)}).processRows(e,r.rowDel),c=JSON.stringify({data:u,filename:t.filename,mimeType:n.mimeType,fileExtension:n.fileExtension}),p=w({uuid:t.uuid,type:e});return o.exportButtons&&t.checkCaption(r.createObjButton(p,c,n.buttonContent,n.defaultClass,o.bootstrapSettings)),d.getInstance().setItem(p,c,!0)}},createObjButton:function(t,e,r,o,n){var a=document.createElement("button");return a.setAttribute(this.localStorageKey,t),a.className=n.bootstrapClass+n.bootstrapTheme+o,a.textContent=r,a},escapeHtml:function(t){var e=this;return String(t).replace(/[&<>'\/]/g,function(t){return e.entityMap[t]})},unescapeHtml:function(t){var e=String(t);for(var r in this.entityMap)e=e.replace(RegExp(this.entityMap[r],"g"),r);return e},formatValue:function(t,e){return t?e.trim():e},getType:function(t){if(!t)return"";var e=this.typeConfig;return~t.indexOf(e.string.defaultClass)?y.STRING:~t.indexOf(e.number.defaultClass)?y.NUMBER:~t.indexOf(e["boolean"].defaultClass)?y.BOOLEAN:~t.indexOf(e.date.defaultClass)?y.DATE:""},dateNum:function(t,e){e&&(t+=1462);var r=Date.parse(t),o=(r-new Date(Date.UTC(1899,11,30)))/864e5;return Math.floor(o)},createSheet:function(t){for(var e={},r={s:{c:1e7,r:1e7},e:{c:0,r:0}},n=this.typeConfig,a=0;a!==t.length;++a)for(var i=0;i!==t[a].length;++i){r.s.r>a&&(r.s.r=a),r.s.c>i&&(r.s.c=i),r.e.r=n)return;if(s&&(a=c(t,l+e,o,l>0)),l>=1){var u=r.getRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN)||0;if(r.setRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN,u+1),!a){var p=r.getRowColMapProp(l+e,o-u)||0;r.setRowColMapProp(l+e,o-u,void 0,p+1)}}}},c=function(t,e,n,a){var i=+t.getAttribute("colspan"),s=r.getRowColMapProp(e,void 0,r.TYPE.COLSPAN)||0;return r.setRowColMapProp(e,void 0,r.TYPE.COLSPAN,s+1),!(i<=1)&&(a?(r.setRowColMapProp(e,n-s,void 0,i),!0):void r.setRowColMapProp(e,n+o,void 0,i-o))};return a(t.rows).map(function(r,o){(~e.ignoreRows.indexOf(o-t.thAdj)||i(r,e.ignoreCSS))&&s(o),i(r,e.emptyCSS)&&l(o);var n=r.querySelectorAll("th, td");return a(n).map(function(t,r){(~e.ignoreCols.indexOf(r)||i(t,e.ignoreCSS))&&s(o,r),i(t,e.emptyCSS)&&l(o,r),t.hasAttribute("rowspan")?u(t,o,r):t.hasAttribute("colspan")&&c(t,o,r)})}),r}};var m=function(t){return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substring(0,4))}(navigator.userAgent||navigator.vendor||window.opera),g=function(){return function(t){return o&&!m&&!f.prototype.formatConfig[t].enforceStrictRFC4180}}(),b=function(){return f.prototype.CONSTANTS.FORMAT}(),v=function(){return Object.keys(b).map(function(t){return b[t]})}(),y=function(){return f.prototype.CONSTANTS.TYPE}();Array.prototype.processRows=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)},Array.prototype.processCols=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)};var C=function(){var t=0;return function(e){return e.id||(e.id=f.prototype.defaultNamespace+ ++t),e.id}}(),w=function(){var t,e,r=0;return function(o){var n=o.type;if(o=JSON.stringify(o),0===o.length)return r;for(t=0;t0}function s(t){return"undefined"!=typeof t}function l(t){return~v.indexOf(t)}function u(t){var e;switch(t){case b.TXT:case b.CSV:case b.XLS:e=!0;break;default:e=g(t)}return e}function c(t){return console.error(t),new Error(t)}function p(t,e,r){var o={};return t?(o.bootstrapClass=e[0]+" ",o.bootstrapTheme=e[1]+" ",o.bootstrapSpacing=e[2]+" "):(o.bootstrapClass=r+" ",o.bootstrapTheme="",o.bootstrapSpacing=""),o}var f=function(t,e){var r=this;if(!t)return c('"selectors" is required. \nUsage: TableExport(selectors, options)');if(!r)return new f(t,e);r.settings=n({},r.defaults,e),r.selectors=a(t);var o=r.settings;o.ignoreRows=o.ignoreRows instanceof Array?o.ignoreRows:[o.ignoreRows],o.ignoreCols=o.ignoreCols instanceof Array?o.ignoreCols:[o.ignoreCols],o.ignoreCSS=r.ignoreCSS instanceof Array?r.ignoreCSS:[r.ignoreCSS],o.emptyCSS=r.emptyCSS instanceof Array?r.emptyCSS:[r.emptyCSS],o.formatValue=r.formatValue.bind(this,o.trimWhitespace),o.bootstrapSettings=p(o.bootstrap,r.bootstrapConfig,r.defaultButton);var i={};r.getExportData=function(){return i},r.selectors.forEach(function(t){var e={};e.rows=a(t.querySelectorAll("tbody > tr")),e.rows=o.headers?a(t.querySelectorAll("thead > tr")).concat(e.rows):e.rows,e.rows=o.footers?e.rows.concat(a(t.querySelectorAll("tfoot > tr"))):e.rows,e.thAdj=o.headers?t.querySelectorAll("thead > tr").length:0,e.filename="id"===o.filename?t.getAttribute("id")?t.getAttribute("id"):r.defaultFilename:o.filename?o.filename:r.defaultFilename,e.uuid=C(t),e.checkCaption=function(e){var n=t.querySelectorAll("caption."+r.defaultCaptionClass);n.length?n[0].appendChild(e):(n=document.createElement("caption"),n.className=o.bootstrapSettings.bootstrapSpacing+o.position+" "+r.defaultCaptionClass,n.appendChild(e),t.insertBefore(n,t.firstChild))},e.setExportData=function(){return function(t){var r=d.getInstance().getItem(t),o=t.substring(t.indexOf("-")+1);i[e.uuid]=i[e.uuid]||{},i[e.uuid][o]=JSON.parse(r)}}(),e.rcMap=(new h).build(e,o);var n=v.reduce(function(t,e){return t[e]=0,t},{});o.formats.forEach(function(t){return l(t)?u(t)?void(n[t]||(e.setExportData(r.exporters.build.call(r,e,t)),n[t]++)):c('"'+t+'" requires "js-xlsx".'):c('"'+t+'" is not a valid format. \nFormats: '+v.join(", "))})});var s=document.querySelectorAll("button["+r.localStorageKey+"]");return x(s,"click",r.downloadHandler,r),r};f.prototype={version:"5.0.0-rc.7",defaults:{headers:!0,footers:!0,formats:["xlsx","csv","txt"],filename:"id",bootstrap:!1,exportButtons:!0,position:"bottom",ignoreRows:null,ignoreCols:null,trimWhitespace:!0},CONSTANTS:{FORMAT:{XLSX:"xlsx",XLSM:"xlsm",XLSB:"xlsb",BIFF2:"biff2",XLS:"xls",CSV:"csv",TXT:"txt"},TYPE:{STRING:"s",NUMBER:"n",BOOLEAN:"b",DATE:"d"}},charset:"charset=utf-8",defaultFilename:"myDownload",defaultButton:"button-default",defaultCaptionClass:"tableexport-caption",defaultNamespace:"tableexport-",localStorageKey:"tableexport-id",ignoreCSS:".tableexport-ignore",emptyCSS:".tableexport-empty",bootstrapConfig:["btn","btn-default","btn-toolbar"],rowDel:"\r\n",entityMap:{"&":"&","<":"<",">":">","'":"'","/":"/"},formatConfig:{xlsx:{defaultClass:"xlsx",buttonContent:"Export to xlsx",mimeType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",fileExtension:".xlsx"},xlsm:{defaultClass:"xlsm",buttonContent:"Export to xlsm",mimeType:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",fileExtension:".xlsm"},xlsb:{defaultClass:"xlsb",buttonContent:"Export to xlsb",mimeType:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",fileExtension:".xlsb"},xls:{defaultClass:"xls",buttonContent:"Export to xls",separator:"\t",mimeType:"application/vnd.ms-excel",fileExtension:".xls",enforceStrictRFC4180:!1},csv:{defaultClass:"csv",buttonContent:"Export to csv",separator:",",mimeType:"text/csv",fileExtension:".csv",enforceStrictRFC4180:!0},txt:{defaultClass:"txt",buttonContent:"Export to txt",separator:" ",mimeType:"text/plain",fileExtension:".txt",enforceStrictRFC4180:!0}},typeConfig:{string:{defaultClass:"tableexport-string"},number:{defaultClass:"tableexport-number",assert:function(t){return!isNaN(t)}},"boolean":{defaultClass:"tableexport-boolean",assert:function(t){return"true"===t.toLowerCase()||"false"===t.toLowerCase()}},date:{defaultClass:"tableexport-date",assert:function(t){return!/.*%/.test(t)&&!isNaN(Date.parse(t))}}},exporters:{build:function(t,e){var r=this,o=r.settings,n=r.formatConfig[e],i=n.separator,s=t.rcMap,l=function(t){if(g(e))return{v:o.formatValue(t.textContent),t:r.getType(t.className)};switch(e){case b.CSV:return'"'+o.formatValue(t.textContent.replace(/"/g,'""'))+'"';default:return o.formatValue(t.textContent)}},u=a(t.rows).map(function(t,r){if(s.isIgnore(r))return s.handleRowColMapProp(s.TYPE.IGNORE);if(s.isEmpty(r))return s.handleRowColMapProp(s.TYPE.EMPTY);var o=t.querySelectorAll("th, td");return a(o).map(function(t,o){var n=l(t);return s.isIgnore(r,o)?s.handleRowColMapProp(s.TYPE.IGNORE):s.isEmpty(r,o)?s.handleRowColMapProp(s.TYPE.EMPTY):s.handleRowColMapProp(s.TYPE.DEFAULT,r,o,e,n,i)}).processCols(e,i)}).processRows(e,r.rowDel),c=JSON.stringify({data:u,filename:t.filename,mimeType:n.mimeType,fileExtension:n.fileExtension}),p=w({uuid:t.uuid,type:e});return o.exportButtons&&t.checkCaption(r.createObjButton(p,c,n.buttonContent,n.defaultClass,o.bootstrapSettings)),d.getInstance().setItem(p,c,!0)}},createObjButton:function(t,e,r,o,n){var a=document.createElement("button");return a.setAttribute(this.localStorageKey,t),a.className=n.bootstrapClass+n.bootstrapTheme+o,a.textContent=r,a},escapeHtml:function(t){var e=this;return String(t).replace(/[&<>'\/]/g,function(t){return e.entityMap[t]})},unescapeHtml:function(t){var e=String(t);for(var r in this.entityMap)e=e.replace(RegExp(this.entityMap[r],"g"),r);return e},formatValue:function(t,e){return t?e.trim():e},getType:function(t){if(!t)return"";var e=this.typeConfig;return~t.indexOf(e.string.defaultClass)?y.STRING:~t.indexOf(e.number.defaultClass)?y.NUMBER:~t.indexOf(e["boolean"].defaultClass)?y.BOOLEAN:~t.indexOf(e.date.defaultClass)?y.DATE:""},dateNum:function(t,e){e&&(t+=1462);var r=Date.parse(t),o=(r-new Date(Date.UTC(1899,11,30)))/864e5;return Math.floor(o)},createSheet:function(t){for(var e={},r={s:{c:1e7,r:1e7},e:{c:0,r:0}},n=this.typeConfig,a=0;a!==t.length;++a)for(var i=0;i!==t[a].length;++i){r.s.r>a&&(r.s.r=a),r.s.c>i&&(r.s.c=i),r.e.r=n)return;if(s&&(a=c(t,l+e,o,l>0)),l>=1){var u=r.getRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN)||0;if(r.setRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN,u+1),!a){var p=r.getRowColMapProp(l+e,o-u)||0;r.setRowColMapProp(l+e,o-u,void 0,p+1)}}}},c=function(t,e,n,a){var i=+t.getAttribute("colspan"),s=r.getRowColMapProp(e,void 0,r.TYPE.COLSPAN)||0;return r.setRowColMapProp(e,void 0,r.TYPE.COLSPAN,s+1),!(i<=1)&&(a?(r.setRowColMapProp(e,n-s,void 0,i),!0):void r.setRowColMapProp(e,n+o,void 0,i-o))};return a(t.rows).map(function(r,o){(~e.ignoreRows.indexOf(o-t.thAdj)||i(r,e.ignoreCSS))&&s(o),i(r,e.emptyCSS)&&l(o);var n=r.querySelectorAll("th, td");return a(n).map(function(t,r){(~e.ignoreCols.indexOf(r)||i(t,e.ignoreCSS))&&s(o,r),i(t,e.emptyCSS)&&l(o,r),t.hasAttribute("rowspan")?u(t,o,r):t.hasAttribute("colspan")&&c(t,o,r)})}),r}};var m=function(t){return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substring(0,4))}(navigator.userAgent||navigator.vendor||window.opera),g=function(){return function(t){return o&&!m&&!f.prototype.formatConfig[t].enforceStrictRFC4180}}(),b=function(){return f.prototype.CONSTANTS.FORMAT}(),v=function(){return Object.keys(b).map(function(t){return b[t]})}(),y=function(){return f.prototype.CONSTANTS.TYPE}();Array.prototype.processRows=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)},Array.prototype.processCols=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)};var C=function(){var t=0;return function(e){return e.id||(e.id=f.prototype.defaultNamespace+ ++t),e.id}}(),w=function(){var t,e,r=0;return function(o){var n=o.type;if(o=JSON.stringify(o),0===o.length)return r;for(t=0;t /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * diff --git a/package.json b/package.json index 916e54f..6462957 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tableexport", - "version": "5.0.0-rc.6", + "version": "5.0.0-rc.7", "authors": [ "clarketm " ], diff --git a/src/stable/css/tableexport.css b/src/stable/css/tableexport.css index 3fdbaa8..4f35449 100644 --- a/src/stable/css/tableexport.css +++ b/src/stable/css/tableexport.css @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * diff --git a/src/stable/css/tableexport.min.css b/src/stable/css/tableexport.min.css index b953e7b..31be147 100644 --- a/src/stable/css/tableexport.min.css +++ b/src/stable/css/tableexport.min.css @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * diff --git a/src/stable/js/tableexport.js b/src/stable/js/tableexport.js index 6ad43dd..b7a7ab6 100644 --- a/src/stable/js/tableexport.js +++ b/src/stable/js/tableexport.js @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * @@ -147,7 +147,7 @@ * Version. * @memberof TableExport.prototype */ - version: '5.0.0-rc.6', + version: '5.0.0-rc.7', /** * Default library options. * @memberof TableExport.prototype diff --git a/src/stable/js/tableexport.min.js b/src/stable/js/tableexport.min.js index 7d1fbc1..0b3872a 100644 --- a/src/stable/js/tableexport.min.js +++ b/src/stable/js/tableexport.min.js @@ -1,5 +1,5 @@ /*! - * TableExport.js v5.0.0-rc.6 (https://www.travismclarke.com) + * TableExport.js v5.0.0-rc.7 (https://www.travismclarke.com) * * Copyright (c) 2017 - Travis Clarke - https://www.travismclarke.com * @@ -16,4 +16,4 @@ * limitations under the License. * */ -!function(t,e){if("function"==typeof define&&define.amd)define(function(t){var r;try{r=t("jquery")}catch(o){}return e(r,t("blobjs"),t("file-saverjs"),t("xlsx"))});else if("object"==typeof exports&&"string"!=typeof exports.nodeName){var r;try{r=require("jquery")}catch(o){}module.exports=e(r,require("blobjs"),require("file-saverjs"),require("xlsx"))}else t.TableExport=e(t.jQuery,t.Blob,t.saveAs,t.XLSX)}(this,function(t,e,r,o){"use strict";function n(){for(var t=arguments,e=1;e0}function s(t){return"undefined"!=typeof t}function l(t){return~v.indexOf(t)}function u(t){var e;switch(t){case b.TXT:case b.CSV:case b.XLS:e=!0;break;default:e=g(t)}return e}function c(t){return console.error(t),new Error(t)}function p(t,e,r){var o={};return t?(o.bootstrapClass=e[0]+" ",o.bootstrapTheme=e[1]+" ",o.bootstrapSpacing=e[2]+" "):(o.bootstrapClass=r+" ",o.bootstrapTheme="",o.bootstrapSpacing=""),o}var f=function(t,e){var r=this;if(!t)return c('"selectors" is required. \nUsage: TableExport(selectors, options)');if(!r)return new f(t,e);r.settings=n({},r.defaults,e),r.selectors=a(t);var o=r.settings;o.ignoreRows=o.ignoreRows instanceof Array?o.ignoreRows:[o.ignoreRows],o.ignoreCols=o.ignoreCols instanceof Array?o.ignoreCols:[o.ignoreCols],o.ignoreCSS=r.ignoreCSS instanceof Array?r.ignoreCSS:[r.ignoreCSS],o.emptyCSS=r.emptyCSS instanceof Array?r.emptyCSS:[r.emptyCSS],o.formatValue=r.formatValue.bind(this,o.trimWhitespace),o.bootstrapSettings=p(o.bootstrap,r.bootstrapConfig,r.defaultButton);var i={};r.getExportData=function(){return i},r.selectors.forEach(function(t){var e={};e.rows=a(t.querySelectorAll("tbody > tr")),e.rows=o.headers?a(t.querySelectorAll("thead > tr")).concat(e.rows):e.rows,e.rows=o.footers?e.rows.concat(a(t.querySelectorAll("tfoot > tr"))):e.rows,e.thAdj=o.headers?t.querySelectorAll("thead > tr").length:0,e.filename="id"===o.filename?t.getAttribute("id")?t.getAttribute("id"):r.defaultFilename:o.filename?o.filename:r.defaultFilename,e.uuid=C(t),e.checkCaption=function(e){var n=t.querySelectorAll("caption."+r.defaultCaptionClass);n.length?n[0].appendChild(e):(n=document.createElement("caption"),n.className=o.bootstrapSettings.bootstrapSpacing+o.position+" "+r.defaultCaptionClass,n.appendChild(e),t.insertBefore(n,t.firstChild))},e.setExportData=function(){return function(t){var r=d.getInstance().getItem(t),o=t.substring(t.indexOf("-")+1);i[e.uuid]=i[e.uuid]||{},i[e.uuid][o]=JSON.parse(r)}}(),e.rcMap=(new h).build(e,o);var n=v.reduce(function(t,e){return t[e]=0,t},{});o.formats.forEach(function(t){return l(t)?u(t)?void(n[t]||(e.setExportData(r.exporters.build.call(r,e,t)),n[t]++)):c('"'+t+'" requires "js-xlsx".'):c('"'+t+'" is not a valid format. \nFormats: '+v.join(", "))})});var s=document.querySelectorAll("button["+r.localStorageKey+"]");return x(s,"click",r.downloadHandler,r),r};f.prototype={version:"5.0.0-rc.6",defaults:{headers:!0,footers:!0,formats:["xlsx","csv","txt"],filename:"id",bootstrap:!1,exportButtons:!0,position:"bottom",ignoreRows:null,ignoreCols:null,trimWhitespace:!0},CONSTANTS:{FORMAT:{XLSX:"xlsx",XLSM:"xlsm",XLSB:"xlsb",BIFF2:"biff2",XLS:"xls",CSV:"csv",TXT:"txt"},TYPE:{STRING:"s",NUMBER:"n",BOOLEAN:"b",DATE:"d"}},charset:"charset=utf-8",defaultFilename:"myDownload",defaultButton:"button-default",defaultCaptionClass:"tableexport-caption",defaultNamespace:"tableexport-",localStorageKey:"tableexport-id",ignoreCSS:".tableexport-ignore",emptyCSS:".tableexport-empty",bootstrapConfig:["btn","btn-default","btn-toolbar"],rowDel:"\r\n",entityMap:{"&":"&","<":"<",">":">","'":"'","/":"/"},formatConfig:{xlsx:{defaultClass:"xlsx",buttonContent:"Export to xlsx",mimeType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",fileExtension:".xlsx"},xlsm:{defaultClass:"xlsm",buttonContent:"Export to xlsm",mimeType:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",fileExtension:".xlsm"},xlsb:{defaultClass:"xlsb",buttonContent:"Export to xlsb",mimeType:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",fileExtension:".xlsb"},xls:{defaultClass:"xls",buttonContent:"Export to xls",separator:"\t",mimeType:"application/vnd.ms-excel",fileExtension:".xls",enforceStrictRFC4180:!1},csv:{defaultClass:"csv",buttonContent:"Export to csv",separator:",",mimeType:"text/csv",fileExtension:".csv",enforceStrictRFC4180:!0},txt:{defaultClass:"txt",buttonContent:"Export to txt",separator:" ",mimeType:"text/plain",fileExtension:".txt",enforceStrictRFC4180:!0}},typeConfig:{string:{defaultClass:"tableexport-string"},number:{defaultClass:"tableexport-number",assert:function(t){return!isNaN(t)}},"boolean":{defaultClass:"tableexport-boolean",assert:function(t){return"true"===t.toLowerCase()||"false"===t.toLowerCase()}},date:{defaultClass:"tableexport-date",assert:function(t){return!/.*%/.test(t)&&!isNaN(Date.parse(t))}}},exporters:{build:function(t,e){var r=this,o=r.settings,n=r.formatConfig[e],i=n.separator,s=t.rcMap,l=function(t){if(g(e))return{v:o.formatValue(t.textContent),t:r.getType(t.className)};switch(e){case b.CSV:return'"'+o.formatValue(t.textContent.replace(/"/g,'""'))+'"';default:return o.formatValue(t.textContent)}},u=a(t.rows).map(function(t,r){if(s.isIgnore(r))return s.handleRowColMapProp(s.TYPE.IGNORE);if(s.isEmpty(r))return s.handleRowColMapProp(s.TYPE.EMPTY);var o=t.querySelectorAll("th, td");return a(o).map(function(t,o){var n=l(t);return s.isIgnore(r,o)?s.handleRowColMapProp(s.TYPE.IGNORE):s.isEmpty(r,o)?s.handleRowColMapProp(s.TYPE.EMPTY):s.handleRowColMapProp(s.TYPE.DEFAULT,r,o,e,n,i)}).processCols(e,i)}).processRows(e,r.rowDel),c=JSON.stringify({data:u,filename:t.filename,mimeType:n.mimeType,fileExtension:n.fileExtension}),p=w({uuid:t.uuid,type:e});return o.exportButtons&&t.checkCaption(r.createObjButton(p,c,n.buttonContent,n.defaultClass,o.bootstrapSettings)),d.getInstance().setItem(p,c,!0)}},createObjButton:function(t,e,r,o,n){var a=document.createElement("button");return a.setAttribute(this.localStorageKey,t),a.className=n.bootstrapClass+n.bootstrapTheme+o,a.textContent=r,a},escapeHtml:function(t){var e=this;return String(t).replace(/[&<>'\/]/g,function(t){return e.entityMap[t]})},unescapeHtml:function(t){var e=String(t);for(var r in this.entityMap)e=e.replace(RegExp(this.entityMap[r],"g"),r);return e},formatValue:function(t,e){return t?e.trim():e},getType:function(t){if(!t)return"";var e=this.typeConfig;return~t.indexOf(e.string.defaultClass)?y.STRING:~t.indexOf(e.number.defaultClass)?y.NUMBER:~t.indexOf(e["boolean"].defaultClass)?y.BOOLEAN:~t.indexOf(e.date.defaultClass)?y.DATE:""},dateNum:function(t,e){e&&(t+=1462);var r=Date.parse(t),o=(r-new Date(Date.UTC(1899,11,30)))/864e5;return Math.floor(o)},createSheet:function(t){for(var e={},r={s:{c:1e7,r:1e7},e:{c:0,r:0}},n=this.typeConfig,a=0;a!==t.length;++a)for(var i=0;i!==t[a].length;++i){r.s.r>a&&(r.s.r=a),r.s.c>i&&(r.s.c=i),r.e.r=n)return;if(s&&(a=c(t,l+e,o,l>0)),l>=1){var u=r.getRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN)||0;if(r.setRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN,u+1),!a){var p=r.getRowColMapProp(l+e,o-u)||0;r.setRowColMapProp(l+e,o-u,void 0,p+1)}}}},c=function(t,e,n,a){var i=+t.getAttribute("colspan"),s=r.getRowColMapProp(e,void 0,r.TYPE.COLSPAN)||0;return r.setRowColMapProp(e,void 0,r.TYPE.COLSPAN,s+1),!(i<=1)&&(a?(r.setRowColMapProp(e,n-s,void 0,i),!0):void r.setRowColMapProp(e,n+o,void 0,i-o))};return a(t.rows).map(function(r,o){(~e.ignoreRows.indexOf(o-t.thAdj)||i(r,e.ignoreCSS))&&s(o),i(r,e.emptyCSS)&&l(o);var n=r.querySelectorAll("th, td");return a(n).map(function(t,r){(~e.ignoreCols.indexOf(r)||i(t,e.ignoreCSS))&&s(o,r),i(t,e.emptyCSS)&&l(o,r),t.hasAttribute("rowspan")?u(t,o,r):t.hasAttribute("colspan")&&c(t,o,r)})}),r}};var m=function(t){return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substring(0,4))}(navigator.userAgent||navigator.vendor||window.opera),g=function(){return function(t){return o&&!m&&!f.prototype.formatConfig[t].enforceStrictRFC4180}}(),b=function(){return f.prototype.CONSTANTS.FORMAT}(),v=function(){return Object.keys(b).map(function(t){return b[t]})}(),y=function(){return f.prototype.CONSTANTS.TYPE}();Array.prototype.processRows=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)},Array.prototype.processCols=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)};var C=function(){var t=0;return function(e){return e.id||(e.id=f.prototype.defaultNamespace+ ++t),e.id}}(),w=function(){var t,e,r=0;return function(o){var n=o.type;if(o=JSON.stringify(o),0===o.length)return r;for(t=0;t0}function s(t){return"undefined"!=typeof t}function l(t){return~v.indexOf(t)}function u(t){var e;switch(t){case b.TXT:case b.CSV:case b.XLS:e=!0;break;default:e=g(t)}return e}function c(t){return console.error(t),new Error(t)}function p(t,e,r){var o={};return t?(o.bootstrapClass=e[0]+" ",o.bootstrapTheme=e[1]+" ",o.bootstrapSpacing=e[2]+" "):(o.bootstrapClass=r+" ",o.bootstrapTheme="",o.bootstrapSpacing=""),o}var f=function(t,e){var r=this;if(!t)return c('"selectors" is required. \nUsage: TableExport(selectors, options)');if(!r)return new f(t,e);r.settings=n({},r.defaults,e),r.selectors=a(t);var o=r.settings;o.ignoreRows=o.ignoreRows instanceof Array?o.ignoreRows:[o.ignoreRows],o.ignoreCols=o.ignoreCols instanceof Array?o.ignoreCols:[o.ignoreCols],o.ignoreCSS=r.ignoreCSS instanceof Array?r.ignoreCSS:[r.ignoreCSS],o.emptyCSS=r.emptyCSS instanceof Array?r.emptyCSS:[r.emptyCSS],o.formatValue=r.formatValue.bind(this,o.trimWhitespace),o.bootstrapSettings=p(o.bootstrap,r.bootstrapConfig,r.defaultButton);var i={};r.getExportData=function(){return i},r.selectors.forEach(function(t){var e={};e.rows=a(t.querySelectorAll("tbody > tr")),e.rows=o.headers?a(t.querySelectorAll("thead > tr")).concat(e.rows):e.rows,e.rows=o.footers?e.rows.concat(a(t.querySelectorAll("tfoot > tr"))):e.rows,e.thAdj=o.headers?t.querySelectorAll("thead > tr").length:0,e.filename="id"===o.filename?t.getAttribute("id")?t.getAttribute("id"):r.defaultFilename:o.filename?o.filename:r.defaultFilename,e.uuid=C(t),e.checkCaption=function(e){var n=t.querySelectorAll("caption."+r.defaultCaptionClass);n.length?n[0].appendChild(e):(n=document.createElement("caption"),n.className=o.bootstrapSettings.bootstrapSpacing+o.position+" "+r.defaultCaptionClass,n.appendChild(e),t.insertBefore(n,t.firstChild))},e.setExportData=function(){return function(t){var r=d.getInstance().getItem(t),o=t.substring(t.indexOf("-")+1);i[e.uuid]=i[e.uuid]||{},i[e.uuid][o]=JSON.parse(r)}}(),e.rcMap=(new h).build(e,o);var n=v.reduce(function(t,e){return t[e]=0,t},{});o.formats.forEach(function(t){return l(t)?u(t)?void(n[t]||(e.setExportData(r.exporters.build.call(r,e,t)),n[t]++)):c('"'+t+'" requires "js-xlsx".'):c('"'+t+'" is not a valid format. \nFormats: '+v.join(", "))})});var s=document.querySelectorAll("button["+r.localStorageKey+"]");return x(s,"click",r.downloadHandler,r),r};f.prototype={version:"5.0.0-rc.7",defaults:{headers:!0,footers:!0,formats:["xlsx","csv","txt"],filename:"id",bootstrap:!1,exportButtons:!0,position:"bottom",ignoreRows:null,ignoreCols:null,trimWhitespace:!0},CONSTANTS:{FORMAT:{XLSX:"xlsx",XLSM:"xlsm",XLSB:"xlsb",BIFF2:"biff2",XLS:"xls",CSV:"csv",TXT:"txt"},TYPE:{STRING:"s",NUMBER:"n",BOOLEAN:"b",DATE:"d"}},charset:"charset=utf-8",defaultFilename:"myDownload",defaultButton:"button-default",defaultCaptionClass:"tableexport-caption",defaultNamespace:"tableexport-",localStorageKey:"tableexport-id",ignoreCSS:".tableexport-ignore",emptyCSS:".tableexport-empty",bootstrapConfig:["btn","btn-default","btn-toolbar"],rowDel:"\r\n",entityMap:{"&":"&","<":"<",">":">","'":"'","/":"/"},formatConfig:{xlsx:{defaultClass:"xlsx",buttonContent:"Export to xlsx",mimeType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",fileExtension:".xlsx"},xlsm:{defaultClass:"xlsm",buttonContent:"Export to xlsm",mimeType:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",fileExtension:".xlsm"},xlsb:{defaultClass:"xlsb",buttonContent:"Export to xlsb",mimeType:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",fileExtension:".xlsb"},xls:{defaultClass:"xls",buttonContent:"Export to xls",separator:"\t",mimeType:"application/vnd.ms-excel",fileExtension:".xls",enforceStrictRFC4180:!1},csv:{defaultClass:"csv",buttonContent:"Export to csv",separator:",",mimeType:"text/csv",fileExtension:".csv",enforceStrictRFC4180:!0},txt:{defaultClass:"txt",buttonContent:"Export to txt",separator:" ",mimeType:"text/plain",fileExtension:".txt",enforceStrictRFC4180:!0}},typeConfig:{string:{defaultClass:"tableexport-string"},number:{defaultClass:"tableexport-number",assert:function(t){return!isNaN(t)}},"boolean":{defaultClass:"tableexport-boolean",assert:function(t){return"true"===t.toLowerCase()||"false"===t.toLowerCase()}},date:{defaultClass:"tableexport-date",assert:function(t){return!/.*%/.test(t)&&!isNaN(Date.parse(t))}}},exporters:{build:function(t,e){var r=this,o=r.settings,n=r.formatConfig[e],i=n.separator,s=t.rcMap,l=function(t){if(g(e))return{v:o.formatValue(t.textContent),t:r.getType(t.className)};switch(e){case b.CSV:return'"'+o.formatValue(t.textContent.replace(/"/g,'""'))+'"';default:return o.formatValue(t.textContent)}},u=a(t.rows).map(function(t,r){if(s.isIgnore(r))return s.handleRowColMapProp(s.TYPE.IGNORE);if(s.isEmpty(r))return s.handleRowColMapProp(s.TYPE.EMPTY);var o=t.querySelectorAll("th, td");return a(o).map(function(t,o){var n=l(t);return s.isIgnore(r,o)?s.handleRowColMapProp(s.TYPE.IGNORE):s.isEmpty(r,o)?s.handleRowColMapProp(s.TYPE.EMPTY):s.handleRowColMapProp(s.TYPE.DEFAULT,r,o,e,n,i)}).processCols(e,i)}).processRows(e,r.rowDel),c=JSON.stringify({data:u,filename:t.filename,mimeType:n.mimeType,fileExtension:n.fileExtension}),p=w({uuid:t.uuid,type:e});return o.exportButtons&&t.checkCaption(r.createObjButton(p,c,n.buttonContent,n.defaultClass,o.bootstrapSettings)),d.getInstance().setItem(p,c,!0)}},createObjButton:function(t,e,r,o,n){var a=document.createElement("button");return a.setAttribute(this.localStorageKey,t),a.className=n.bootstrapClass+n.bootstrapTheme+o,a.textContent=r,a},escapeHtml:function(t){var e=this;return String(t).replace(/[&<>'\/]/g,function(t){return e.entityMap[t]})},unescapeHtml:function(t){var e=String(t);for(var r in this.entityMap)e=e.replace(RegExp(this.entityMap[r],"g"),r);return e},formatValue:function(t,e){return t?e.trim():e},getType:function(t){if(!t)return"";var e=this.typeConfig;return~t.indexOf(e.string.defaultClass)?y.STRING:~t.indexOf(e.number.defaultClass)?y.NUMBER:~t.indexOf(e["boolean"].defaultClass)?y.BOOLEAN:~t.indexOf(e.date.defaultClass)?y.DATE:""},dateNum:function(t,e){e&&(t+=1462);var r=Date.parse(t),o=(r-new Date(Date.UTC(1899,11,30)))/864e5;return Math.floor(o)},createSheet:function(t){for(var e={},r={s:{c:1e7,r:1e7},e:{c:0,r:0}},n=this.typeConfig,a=0;a!==t.length;++a)for(var i=0;i!==t[a].length;++i){r.s.r>a&&(r.s.r=a),r.s.c>i&&(r.s.c=i),r.e.r=n)return;if(s&&(a=c(t,l+e,o,l>0)),l>=1){var u=r.getRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN)||0;if(r.setRowColMapProp(l+e,void 0,r.TYPE.ROWSPAN,u+1),!a){var p=r.getRowColMapProp(l+e,o-u)||0;r.setRowColMapProp(l+e,o-u,void 0,p+1)}}}},c=function(t,e,n,a){var i=+t.getAttribute("colspan"),s=r.getRowColMapProp(e,void 0,r.TYPE.COLSPAN)||0;return r.setRowColMapProp(e,void 0,r.TYPE.COLSPAN,s+1),!(i<=1)&&(a?(r.setRowColMapProp(e,n-s,void 0,i),!0):void r.setRowColMapProp(e,n+o,void 0,i-o))};return a(t.rows).map(function(r,o){(~e.ignoreRows.indexOf(o-t.thAdj)||i(r,e.ignoreCSS))&&s(o),i(r,e.emptyCSS)&&l(o);var n=r.querySelectorAll("th, td");return a(n).map(function(t,r){(~e.ignoreCols.indexOf(r)||i(t,e.ignoreCSS))&&s(o,r),i(t,e.emptyCSS)&&l(o,r),t.hasAttribute("rowspan")?u(t,o,r):t.hasAttribute("colspan")&&c(t,o,r)})}),r}};var m=function(t){return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substring(0,4))}(navigator.userAgent||navigator.vendor||window.opera),g=function(){return function(t){return o&&!m&&!f.prototype.formatConfig[t].enforceStrictRFC4180}}(),b=function(){return f.prototype.CONSTANTS.FORMAT}(),v=function(){return Object.keys(b).map(function(t){return b[t]})}(),y=function(){return f.prototype.CONSTANTS.TYPE}();Array.prototype.processRows=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)},Array.prototype.processCols=function(t,e){return g(t)?this.filter(s):this.filter(s).join(e)};var C=function(){var t=0;return function(e){return e.id||(e.id=f.prototype.defaultNamespace+ ++t),e.id}}(),w=function(){var t,e,r=0;return function(o){var n=o.type;if(o=JSON.stringify(o),0===o.length)return r;for(t=0;t