forked from clarketm/TableExport
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtableexport.min.js
More file actions
6 lines (6 loc) · 7.4 KB
/
Copy pathtableexport.min.js
File metadata and controls
6 lines (6 loc) · 7.4 KB
1
2
3
4
5
6
/*!
* TableExport.js v3.3.7 (https://www.travismclarke.com)
* Copyright 2016 Travis Clarke
* Licensed under the MIT license
*/
!function(t,e){"function"==typeof define&&define.amd?define(["exports","jquery","blobjs","file-saverjs","xlsx-js"],e):"object"==typeof exports&&"string"!=typeof exports.nodeName?e(exports,require("jquery"),require("blobjs"),require("file-saverjs"),require("xlsx-js")):e(t,t.jQuery,t.Blob,t.saveAs,t.XLSX)}(this,function(t,e,n,o,r){"use strict";var i=function(t,n,o){var s=this;s.settings=o?n:e.extend({},i.prototype.defaults,n),s.selectors=t;var a,p,f,l=i.prototype.rowDel,u=s.settings.ignoreRows instanceof Array?s.settings.ignoreRows:[s.settings.ignoreRows],c=s.settings.ignoreCols instanceof Array?s.settings.ignoreCols:[s.settings.ignoreCols],x=s.settings.ignoreCSS instanceof Array?s.settings.ignoreCSS.join(", "):s.settings.ignoreCSS,y=s.settings.emptyCSS instanceof Array?s.settings.emptyCSS.join(", "):s.settings.emptyCSS;return s.settings.bootstrap?(a=i.prototype.bootstrap[0]+" ",p=i.prototype.bootstrap[1]+" ",f=i.prototype.bootstrap[2]+" "):(a=i.prototype.defaultButton+" ",p=f=""),s.selectors.each(function(){function t(t){var e=d.find("caption:not(.head)");e.length?e.append(t):d.prepend('<caption class="'+f+s.settings.position+'">'+t+"</caption>")}function n(e,n,o){var r="<button data-fileblob='"+e+"' class='"+a+p+o+"'>"+n+"</button>";t(r)}var d=e(this);o&&d.find("caption:not(.head)").remove();var m=d.find("tbody").find("tr"),m=s.settings.headings?m.add(d.find("thead>tr")):m,m=s.settings.footers?m.add(d.find("tfoot>tr")):m,g=s.settings.headings?d.find("thead>tr").length:0,b="id"===s.settings.fileName?d.attr("id")?d.attr("id"):i.prototype.defaultFileName:s.settings.fileName,h={xlsx:function(t,o){var r={},s=m.map(function(t,n){if(!~u.indexOf(t-g)&&!e(n).is(x)){var o=e(n).find("th, td");return[o.map(function(n,o){if(!~c.indexOf(n)&&!e(o).is(x)){if(e(o).is(y))return" ";if(o.hasAttribute("colspan")&&(r[t]=r[t]||{},r[t][n+1]=o.getAttribute("colspan")-1),o.hasAttribute("rowspan"))for(var i=1;i<o.getAttribute("rowspan");i++)r[t+i]=r[t+i]||{},r[t+i][n]=1;if(r[t]){for(var s=n+1,a=0,p=0,i=0;i<=Math.max.apply(Math,Object.keys(r[t]))&&(r[t][i]?a=p>=n?a+r[t][i]:a:p++,p!==s);i++);return new Array(a).concat(e(o).text())}return e(o).text()}}).get()]}}).get(),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.xlsx.mimeType,fileExtension:i.prototype.xlsx.fileExtension})),p=i.prototype.xlsx.buttonContent,f=i.prototype.xlsx.defaultClass;n(a,p,f)},xlsm:function(t,o){var r={},s=m.map(function(t,n){if(!~u.indexOf(t-g)&&!e(n).is(x)){var o=e(n).find("th, td");return[o.map(function(n,o){if(!~c.indexOf(n)&&!e(o).is(x)){if(e(o).is(y))return" ";if(o.hasAttribute("colspan")&&(r[t]=r[t]||{},r[t][n+1]=o.getAttribute("colspan")-1),o.hasAttribute("rowspan"))for(var i=1;i<o.getAttribute("rowspan");i++)r[t+i]=r[t+i]||{},r[t+i][n]=1;if(r[t]){for(var s=n+1,a=0,p=0,i=0;i<=Math.max.apply(Math,Object.keys(r[t]))&&(r[t][i]?a=p>=n?a+r[t][i]:a:p++,p!==s);i++);return new Array(a).concat(e(o).text())}return e(o).text()}}).get()]}}).get(),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.xls.mimeType,fileExtension:i.prototype.xls.fileExtension})),p=i.prototype.xls.buttonContent,f=i.prototype.xls.defaultClass;n(a,p,f)},xls:function(t,o){var r=i.prototype.xls.separator,s=m.map(function(t,n){if(!~u.indexOf(t-g)&&!e(n).is(x)){var o=e(n).find("th, td");return o.map(function(t,n){if(!~c.indexOf(t)&&!e(n).is(x))return e(n).is(y)?" ":e(n).text()}).get().join(r)}}).get().join(t),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.xls.mimeType,fileExtension:i.prototype.xls.fileExtension})),p=i.prototype.xls.buttonContent,f=i.prototype.xls.defaultClass;n(a,p,f)},csv:function(t,o){var r=i.prototype.csv.separator,s=m.map(function(t,n){if(!~u.indexOf(t-g)&&!e(n).is(x)){var o=e(n).find("th, td");return o.map(function(t,n){if(!~c.indexOf(t)&&!e(n).is(x))return e(n).is(y)?" ":'"'+e(n).text().replace(/"/g,'""')+'"'}).get().join(r)}}).get().join(t),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.csv.mimeType,fileExtension:i.prototype.csv.fileExtension})),p=i.prototype.csv.buttonContent,f=i.prototype.csv.defaultClass;n(a,p,f)},txt:function(t,o){var r=i.prototype.txt.separator,s=m.map(function(t,n){if(!~u.indexOf(t-g)&&!e(n).is(x)){var o=e(n).find("th, td");return o.map(function(t,n){if(!~c.indexOf(t)&&!e(n).is(x))return e(n).is(y)?" ":e(n).text()}).get().join(r)}}).get().join(t),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.txt.mimeType,fileExtension:i.prototype.txt.fileExtension})),p=i.prototype.txt.buttonContent,f=i.prototype.txt.defaultClass;n(a,p,f)}};s.settings.formats.forEach(function(t){!(!r||"xls"!==t)&&(t="xlsm"),!r&&"xlsx"===t&&(t=null),t&&h[t](l,b)})}),e("button[data-fileblob]").off("click").on("click",function(){var t=e(this).data("fileblob"),n=t.data,o=t.fileName,r=t.mimeType,s=t.fileExtension;i.prototype.export2file(n,r,o,s)}),s};i.prototype={version:"3.3.7",defaults:{headings:!0,footers:!0,formats:["xls","csv","txt"],fileName:"id",bootstrap:!0,position:"bottom",ignoreRows:null,ignoreCols:null,ignoreCSS:".tableexport-ignore",emptyCSS:".tableexport-empty"},charset:"charset=utf-8",defaultFileName:"myDownload",defaultButton:"button-default",bootstrap:["btn","btn-default","btn-toolbar"],rowDel:"\r\n",entityMap:{"&":"&","<":"<",">":">","'":"'","/":"/"},xlsx:{defaultClass:"xlsx",buttonContent:"Export to xlsx",mimeType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",fileExtension:".xlsx"},xls:{defaultClass:"xls",buttonContent:"Export to xls",separator:"\t",mimeType:"application/vnd.ms-excel",fileExtension:".xls"},csv:{defaultClass:"csv",buttonContent:"Export to csv",separator:",",mimeType:"text/csv",fileExtension:".csv"},txt:{defaultClass:"txt",buttonContent:"Export to txt",separator:" ",mimeType:"text/plain",fileExtension:".txt"},escapeHtml:function(t){return String(t).replace(/[&<>'\/]/g,function(t){return i.prototype.entityMap[t]})},dateNum:function(t,e){e&&(t+=1462);var n=Date.parse(t);return(n-new Date(Date.UTC(1899,11,30)))/864e5},createSheet:function(t){for(var e={},n={s:{c:1e7,r:1e7},e:{c:0,r:0}},o=0;o!=t.length;++o)for(var i=0;i!=t[o].length;++i){n.s.r>o&&(n.s.r=o),n.s.c>i&&(n.s.c=i),n.e.r<o&&(n.e.r=o),n.e.c<i&&(n.e.c=i);var s={v:t[o][i]};if(null!=s.v){var a=r.utils.encode_cell({c:i,r:o});"number"==typeof s.v?s.t="n":"boolean"==typeof s.v?s.t="b":s.v instanceof Date?(s.t="n",s.z=r.SSF._table[14],s.v=this.dateNum(s.v)):s.t="s",e[a]=s}}return n.s.c<1e7&&(e["!ref"]=r.utils.encode_range(n)),e},Workbook:function(){this.SheetNames=[],this.Sheets={}},string2ArrayBuffer:function(t){for(var e=new ArrayBuffer(t.length),n=new Uint8Array(e),o=0;o!=t.length;++o)n[o]=255&t.charCodeAt(o);return e},export2file:function(t,e,i,s){if(r&&".xls"==s.substr(0,4)){var a=new this.Workbook,p=this.createSheet(t);a.SheetNames.push(i),a.Sheets[i]=p;var f={bookType:s.substr(1,3)+(s.substr(4)||"m"),bookSST:!1,type:"binary"},l=r.write(a,f);t=this.string2ArrayBuffer(l)}o(new n([t],{type:e+";"+this.charset}),i+s,!0)},update:function(t){return new i(this.selectors,e.extend({},this.settings,t),(!0))},reset:function(){return new i(this.selectors,settings,(!0))},remove:function(){this.selectors.each(function(){e(this).find("caption:not(.head)").remove()})}},e.fn.tableExport=function(t,e){return new i(this,t,e)};for(var s in i.prototype)e.fn.tableExport[s]=i.prototype[s];return t["default"]=t.TableExport=i});