diff --git a/README.md b/README.md index 49d45bb..826a4a2 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ The simple, easy-to-implement plugin to export HTML tables to xlsx, xls, csv, an ### Download and Setup -To use this plugin, include the [jQuery](https://jquery.com) library, [FileSaver.js](https://github.com/eligrey/FileSaver.js/) script, and [TableExport.js](https://www.travismclarke.com/tableexport) plugin before the closing `` tag of your HTML document: +To use this plugin, include the [jQuery](https://jquery.com) library, [FileSaver.js](https://github.com/clarketm/FileSaver.js/) script, and [TableExport.js](https://www.travismclarke.com/tableexport) plugin before the closing `` tag of your HTML document: ```html - + ... ``` @@ -29,16 +29,16 @@ $ npm install tableexport ### [CDNjs](https://cdnjs.com/libraries/TableExport) | | uncompressed | compressed | | :------: | :----------: | :--------: | -| __CSS__ | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/css/tableexport.css) | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/css/tableexport.min.css) | -| __JS__ | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/js/tableexport.js) | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/js/tableexport.min.js) | -| __Images__ | — | [🔗xlsx](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/img/xlsx.svg)[🔗xls](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/img/xls.svg)[🔗csv](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/img/csv.svg)[🔗txt](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.2.5/img/txt.svg) | +| __CSS__ | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/css/tableexport.css) | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/css/tableexport.min.css) | +| __JS__ | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/js/tableexport.js) | [🔗](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/js/tableexport.min.js) | +| __Images__ | — | [🔗xlsx](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/img/xlsx.svg)[🔗xls](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/img/xls.svg)[🔗csv](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/img/csv.svg)[🔗txt](https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.5/img/txt.svg) | ### Dependencies #### Required: * [jQuery](https://jquery.com) (1.2.1 or higher) `*` -* [FileSaver.js](https://github.com/eligrey/FileSaver.js/) +* [FileSaver.js](https://github.com/clarketm/FileSaver.js/) > `*` jQuery dependency requirement is removed as of [4.0.0-alpha.1](https://github.com/clarketm/TableExport/tree/v4.0.0-alpha.1) @@ -47,28 +47,28 @@ $ npm install tableexport * [Bootstrap](http://getbootstrap.com/getting-started/#download) (3.1.0 or higher) #### Add-Ons: -In order to provide **Office Open XML SpreadsheetML Format ( .xlsx )** support, you must include the following third-party script to your project before [FileSaver.js](https://github.com/eligrey/FileSaver.js/) and [TableExport.js](https://www.travismclarke.com/tableexport). +In order to provide **Office Open XML SpreadsheetML Format ( .xlsx )** support, you must include the following third-party script to your project before [FileSaver.js](https://github.com/clarketm/FileSaver.js/) and [TableExport.js](https://www.travismclarke.com/tableexport). -* [xlsx-core.js](https://github.com/SheetJS/js-xlsx) by _SheetJS_ +* [xls.js](https://github.com/clarketm/js-xls) by _clarketm_ ```html - - + + ... ``` #### Older Browsers: -To support older browsers ( **Chrome** < 20, **Firefox** < 13, **Opera** < 12.10, **IE** < 10, __Safari__ < 6 ) include the [Blob.js](https://github.com/clarketm/Blob.js/) polyfill before the [FileSaver.js](https://github.com/eligrey/FileSaver.js/) script. +To support older browsers ( **Chrome** < 20, **Firefox** < 13, **Opera** < 12.10, **IE** < 10, __Safari__ < 6 ) include the [Blob.js](https://github.com/clarketm/Blob.js/) polyfill before the [FileSaver.js](https://github.com/clarketm/FileSaver.js/) script. -Until [Safari](https://github.com/eligrey/FileSaver.js/issues/242) provides native support for either the [HTML5 download attribute](http://caniuse.com/#feat=download) or [service workers](http://caniuse.com/#search=service%20workers), limited `xlx` and `xlsx` support is provided by including the [Blob.js](https://github.com/clarketm/Blob.js/) polyfill, albeit the **filename** will always be labeled `Unknown`. +Until [Safari](https://github.com/clarketm/FileSaver.js/issues/242) provides native support for either the [HTML5 download attribute](http://caniuse.com/#feat=download) or [service workers](http://caniuse.com/#search=service%20workers), limited `xlx` and `xlsx` support is provided by including the [Blob.js](https://github.com/clarketm/Blob.js/) polyfill, albeit the **filename** will always be labeled `Unknown`. * [Blob.js](https://github.com/clarketm/Blob.js) by _clarketm_ ```html - + - + ... ``` @@ -221,7 +221,7 @@ $.fn.tableExport.rowDel = "\r\n"; *only _partial_ support for `xls` and `xlsx`: requires third-party dependency ([Blob.js](https://github.com/clarketm/Blob.js/)) ### Live Demo -A live, interactive demo can be found **[here](https://www.travismclarke.com/tableexport/#live-demo)** +A live, interactive demo can be found **[here](https://www.travismclarke.com/tableexport/#live-demo)**. Also, check out the [TableExport + RequireJS](https://github.com/clarketm/tableexport_requirejs_app/blob/master/README.md) skeleton, ### License [TableExport.js](https://www.travismclarke.com/tableexport) is licensed under the terms of the [MIT](http://opensource.org/licenses/mit-license.php) License @@ -229,5 +229,5 @@ A live, interactive demo can be found **[here](https://www.travismclarke.com/tab ### Credits * [John Resig](https://github.com/jeresig) - jQuery -* [SheetJS](https://github.com/SheetJS) - js-xlsx +* [SheetJS](https://github.com/SheetJS) - js-xls * [Eli Grey](https://github.com/eligrey) - FileSaver.js & Blob.js diff --git a/bower.json b/bower.json index 1c29f93..e427cb1 100644 --- a/bower.json +++ b/bower.json @@ -5,7 +5,7 @@ "clarketm " ], "description": "The simple, easy-to-implement plugin to export HTML tables to xlsx, xls, csv, and txt files", - "main": "dist/js/tableexport.min.js", + "main": "dist/js/tableexport.js", "keywords": [ "table", "export", @@ -21,8 +21,8 @@ "dependencies": { "bootstrap": "~3.3.5", "jquery": "~1.11.3", - "js-xlsx": "0.8.0", - "file-saver": "^1.3.3", + "xlsx-js": "^0.8.1", + "file-saverjs": "^1.3.3", "blobjs": "^1.0.0" }, "license": "MIT", diff --git a/dist/css/tableexport.css b/dist/css/tableexport.css index 49c1dba..f731cb9 100644 --- a/dist/css/tableexport.css +++ b/dist/css/tableexport.css @@ -64,4 +64,4 @@ .txt:before { content: ""; background: purple url(../img/txt.svg) no-repeat center; -} \ No newline at end of file +} diff --git a/dist/css/tableexport.min.css b/dist/css/tableexport.min.css index dc1dcd5..eeecfbe 100644 --- a/dist/css/tableexport.min.css +++ b/dist/css/tableexport.min.css @@ -2,4 +2,4 @@ * TableExport.js 4.0.0-alpha.1 (https://www.travismclarke.com) * Copyright 2016 Travis Clarke * Licensed under the MIT license - */.top{caption-side:top}.bottom{caption-side:bottom}.button-default,.button-default:active,.button-default:focus,.button-default:hover{text-decoration:none}.button-default{font:700 12px sans-serif;color:#222;cursor:pointer;padding:5px;margin:5px}.button-default.csv:before,.button-default.txt:before,.button-default.xls:before,.button-default.xlsx:before{content:none}.csv:before,.txt:before,.xls:before,.xlsx:before{content:""}.csv,.txt,.xls,.xlsx{margin:4px 0}.csv:before,.txt:before,.xls:before,.xlsx:before{margin-right:10px;padding:11px 15px 12px;box-shadow:1px 1px 2px rgba(0,0,0,.2)}.xlsx:before{background:url(../img/xlsx.svg) center no-repeat #006400}.xls:before{background:url(../img/xls.svg) center no-repeat green}.csv:before{background:url(../img/csv.svg) center no-repeat #00f}.txt:before{background:url(../img/txt.svg) center no-repeat purple} \ No newline at end of file + */.top{caption-side:top}.bottom{caption-side:bottom}.button-default,.button-default:active,.button-default:focus,.button-default:hover{text-decoration:none}.button-default{font:700 12px sans-serif;color:#222;cursor:pointer;padding:5px;margin:5px}.button-default.csv:before,.button-default.txt:before,.button-default.xls:before,.button-default.xlsx:before{content:none}.csv:before,.txt:before,.xls:before,.xlsx:before{content:""}.csv,.txt,.xls,.xlsx{margin:4px 0}.csv:before,.txt:before,.xls:before,.xlsx:before{margin-right:10px;padding:11px 15px 12px;box-shadow:1px 1px 2px rgba(0,0,0,.2)}.xlsx:before{background:url(../img/xlsx.svg) center no-repeat #006400}.xls:before{background:url(../img/xls.svg) center no-repeat green}.csv:before{background:url(../img/csv.svg) center no-repeat #00f}.txt:before{background:url(../img/txt.svg) center no-repeat purple} diff --git a/dist/js/tableexport.js b/dist/js/tableexport.js index c11d575..6c782ee 100644 --- a/dist/js/tableexport.js +++ b/dist/js/tableexport.js @@ -1,5 +1,5 @@ /*! - * TableExport.js 4.0.0-alpha.1 (https://www.travismclarke.com) + * TableExport.js 4.0.0-alpha.2 (https://www.travismclarke.com) * Copyright 2016 Travis Clarke * Licensed under the MIT license */ @@ -7,10 +7,10 @@ ;(function (root, factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. - define(['exports', 'jquery', 'blobjs', 'file-saver', 'xlsx'], factory); + define(['exports', 'jquery', 'blobjs', 'file-saverjs', 'xlsx-js'], factory); } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { // CommonJS - factory(exports, require('jquery'), require('blobjs'), require('file-saver'), require('xlsx')); + factory(exports, require('jquery'), require('blobjs'), require('file-saverjs'), require('xlsx-js')); } else { // Browser globals factory(root, root.jQuery, root.Blob, root.saveAs, root.XLSX); @@ -273,6 +273,11 @@ }; TableExport.prototype = { + /** + * Version. + * @memberof TableExport.prototype + */ + version: "4.0.0-alpha.2", /** * Default plugin options. * @memberof TableExport.prototype @@ -537,4 +542,4 @@ exports.default = exports.TableExport = TableExport; } -)); \ No newline at end of file +)); diff --git a/dist/js/tableexport.min.js b/dist/js/tableexport.min.js index 5445cde..b98f977 100644 --- a/dist/js/tableexport.min.js +++ b/dist/js/tableexport.min.js @@ -1,6 +1,6 @@ /*! - * TableExport.js 4.0.0-alpha.1 (https://www.travismclarke.com) + * TableExport.js 4.0.0-alpha.2 (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-saver","xlsx"],e):"object"==typeof exports&&"string"!=typeof exports.nodeName?e(exports,require("jquery"),require("blobjs"),require("file-saver"),require("xlsx")):e(t,t.jQuery,t.Blob,t.saveAs,t.XLSX)}(this,function(t,e,o,n,r){"use strict";function i(){for(var t=arguments,e=1;e tr")),b=n.settings.headings?s(t.querySelectorAll("thead > tr")).concat(b):b,b=n.settings.footers?s(t.querySelectorAll("tfoot > tr")).concat(b):b,h=n.settings.headings?t.querySelectorAll("thead > tr").length:0,v="id"===n.settings.fileName?t.getAttribute("id")?t.getAttribute("id"):p.prototype.defaultFileName:n.settings.fileName,S={xlsx:function(t,e){var o={},n=s(b).map(function(t,e){if(!~y.indexOf(e-h)&&!l(t,d)){var n=t.querySelectorAll("th, td");return s(n).map(function(t,n){if(!~m.indexOf(n)&&!l(t,d)){if(l(t,g))return" ";if(t.hasAttribute("colspan")&&(o[e]=o[e]||{},o[e][n+1]=t.getAttribute("colspan")-1),t.hasAttribute("rowspan"))for(var r=1;r":">","'":"'","/":"/"},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 p.prototype.entityMap[t]})},dateNum:function(t,e){e&&(t+=1462);var o=Date.parse(t);return(o-new Date(Date.UTC(1899,11,30)))/864e5},createSheet:function(t){for(var e={},o={s:{c:1e7,r:1e7},e:{c:0,r:0}},n=0;n!=t.length;++n)for(var i=0;i!=t[n].length;++i){o.s.r>n&&(o.s.r=n),o.s.c>i&&(o.s.c=i),o.e.r'+t+"")}function n(e,n,o){var i="";t(i)}var y=e(this);o&&y.find("caption:not(.head)").remove();var m=y.find("tbody").find("tr"),m=s.settings.headings?m.add(y.find("thead>tr")):m,m=s.settings.footers?m.add(y.find("tfoot>tr")):m,g=s.settings.headings?y.find("thead>tr").length:0,b="id"===s.settings.fileName?y.attr("id")?y.attr("id"):r.prototype.defaultFileName:s.settings.fileName,h={xlsx:function(t,o){var i={},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(d))return" ";if(o.hasAttribute("colspan")&&(i[t]=i[t]||{},i[t][n+1]=o.getAttribute("colspan")-1),o.hasAttribute("rowspan"))for(var r=1;r":">","'":"'","/":"/"},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 r.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 r=0;r!=t[o].length;++r){n.s.r>o&&(n.s.r=o),n.s.c>r&&(n.s.c=r),n.e.r" ], @@ -36,9 +36,9 @@ "dependencies": { "blobjs": "^1.0.0", "bootstrap": "~3.3.5", - "file-saver": "^1.3.2", + "file-saverjs": "^1.3.2", "jquery": "~1.11.3", - "xlsx": "0.8.0" + "xlsx-js": "^0.8.1" }, "devDependencies": { "del": "^2.2.0", diff --git a/src/stable/css/tableexport.css b/src/stable/css/tableexport.css index 49c1dba..fe500cb 100644 --- a/src/stable/css/tableexport.css +++ b/src/stable/css/tableexport.css @@ -1,5 +1,5 @@ /*! - * TableExport.js 4.0.0-alpha.1 (https://www.travismclarke.com) + * TableExport.js 4.0.0-alpha.2 (https://www.travismclarke.com) * Copyright 2016 Travis Clarke * Licensed under the MIT license */ @@ -64,4 +64,4 @@ .txt:before { content: ""; background: purple url(../img/txt.svg) no-repeat center; -} \ No newline at end of file +} diff --git a/src/stable/css/tableexport.min.css b/src/stable/css/tableexport.min.css index dc1dcd5..925c689 100644 --- a/src/stable/css/tableexport.min.css +++ b/src/stable/css/tableexport.min.css @@ -1,5 +1,5 @@ /*! - * TableExport.js 4.0.0-alpha.1 (https://www.travismclarke.com) + * TableExport.js 4.0.0-alpha.2 (https://www.travismclarke.com) * Copyright 2016 Travis Clarke * Licensed under the MIT license - */.top{caption-side:top}.bottom{caption-side:bottom}.button-default,.button-default:active,.button-default:focus,.button-default:hover{text-decoration:none}.button-default{font:700 12px sans-serif;color:#222;cursor:pointer;padding:5px;margin:5px}.button-default.csv:before,.button-default.txt:before,.button-default.xls:before,.button-default.xlsx:before{content:none}.csv:before,.txt:before,.xls:before,.xlsx:before{content:""}.csv,.txt,.xls,.xlsx{margin:4px 0}.csv:before,.txt:before,.xls:before,.xlsx:before{margin-right:10px;padding:11px 15px 12px;box-shadow:1px 1px 2px rgba(0,0,0,.2)}.xlsx:before{background:url(../img/xlsx.svg) center no-repeat #006400}.xls:before{background:url(../img/xls.svg) center no-repeat green}.csv:before{background:url(../img/csv.svg) center no-repeat #00f}.txt:before{background:url(../img/txt.svg) center no-repeat purple} \ No newline at end of file + */.top{caption-side:top}.bottom{caption-side:bottom}.button-default,.button-default:active,.button-default:focus,.button-default:hover{text-decoration:none}.button-default{font:700 12px sans-serif;color:#222;cursor:pointer;padding:5px;margin:5px}.button-default.csv:before,.button-default.txt:before,.button-default.xls:before,.button-default.xlsx:before{content:none}.csv:before,.txt:before,.xls:before,.xlsx:before{content:""}.csv,.txt,.xls,.xlsx{margin:4px 0}.csv:before,.txt:before,.xls:before,.xlsx:before{margin-right:10px;padding:11px 15px 12px;box-shadow:1px 1px 2px rgba(0,0,0,.2)}.xlsx:before{background:url(../img/xlsx.svg) center no-repeat #006400}.xls:before{background:url(../img/xls.svg) center no-repeat green}.csv:before{background:url(../img/csv.svg) center no-repeat #00f}.txt:before{background:url(../img/txt.svg) center no-repeat purple} diff --git a/src/stable/js/tableexport.js b/src/stable/js/tableexport.js index c11d575..9efdec3 100644 --- a/src/stable/js/tableexport.js +++ b/src/stable/js/tableexport.js @@ -1,5 +1,9 @@ /*! +<<<<<<< HEAD * TableExport.js 4.0.0-alpha.1 (https://www.travismclarke.com) +======= + * TableExport.js v3.3.5 (https://www.travismclarke.com) +>>>>>>> master * Copyright 2016 Travis Clarke * Licensed under the MIT license */ @@ -7,10 +11,10 @@ ;(function (root, factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. - define(['exports', 'jquery', 'blobjs', 'file-saver', 'xlsx'], factory); + define(['exports', 'jquery', 'blobjs', 'file-saverjs', 'xlsx-js'], factory); } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { // CommonJS - factory(exports, require('jquery'), require('blobjs'), require('file-saver'), require('xlsx')); + factory(exports, require('jquery'), require('blobjs'), require('file-saverjs'), require('xlsx-js')); } else { // Browser globals factory(root, root.jQuery, root.Blob, root.saveAs, root.XLSX); @@ -273,6 +277,11 @@ }; TableExport.prototype = { + /** + * Version. + * @memberof TableExport.prototype + */ + version: "3.3.5", /** * Default plugin options. * @memberof TableExport.prototype @@ -449,7 +458,11 @@ * @param extension {String} file extension */ export2file: function (data, mime, name, extension) { +<<<<<<< HEAD if (XLSX && extension.substr(0, 4) == ".xls") { +======= + if (XLSX && extension.substr(0, 4) == (".xls")) { +>>>>>>> master var wb = new this.Workbook(), ws = this.createSheet(data); @@ -534,7 +547,7 @@ } } - exports.default = exports.TableExport = TableExport; + return exports.default = exports.TableExport = TableExport; } )); \ No newline at end of file diff --git a/src/stable/js/tableexport.min.js b/src/stable/js/tableexport.min.js index 5445cde..b98f977 100644 --- a/src/stable/js/tableexport.min.js +++ b/src/stable/js/tableexport.min.js @@ -1,6 +1,6 @@ /*! - * TableExport.js 4.0.0-alpha.1 (https://www.travismclarke.com) + * TableExport.js 4.0.0-alpha.2 (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-saver","xlsx"],e):"object"==typeof exports&&"string"!=typeof exports.nodeName?e(exports,require("jquery"),require("blobjs"),require("file-saver"),require("xlsx")):e(t,t.jQuery,t.Blob,t.saveAs,t.XLSX)}(this,function(t,e,o,n,r){"use strict";function i(){for(var t=arguments,e=1;e tr")),b=n.settings.headings?s(t.querySelectorAll("thead > tr")).concat(b):b,b=n.settings.footers?s(t.querySelectorAll("tfoot > tr")).concat(b):b,h=n.settings.headings?t.querySelectorAll("thead > tr").length:0,v="id"===n.settings.fileName?t.getAttribute("id")?t.getAttribute("id"):p.prototype.defaultFileName:n.settings.fileName,S={xlsx:function(t,e){var o={},n=s(b).map(function(t,e){if(!~y.indexOf(e-h)&&!l(t,d)){var n=t.querySelectorAll("th, td");return s(n).map(function(t,n){if(!~m.indexOf(n)&&!l(t,d)){if(l(t,g))return" ";if(t.hasAttribute("colspan")&&(o[e]=o[e]||{},o[e][n+1]=t.getAttribute("colspan")-1),t.hasAttribute("rowspan"))for(var r=1;r":">","'":"'","/":"/"},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 p.prototype.entityMap[t]})},dateNum:function(t,e){e&&(t+=1462);var o=Date.parse(t);return(o-new Date(Date.UTC(1899,11,30)))/864e5},createSheet:function(t){for(var e={},o={s:{c:1e7,r:1e7},e:{c:0,r:0}},n=0;n!=t.length;++n)for(var i=0;i!=t[n].length;++i){o.s.r>n&&(o.s.r=n),o.s.c>i&&(o.s.c=i),o.e.r'+t+"")}function n(e,n,o){var i="";t(i)}var y=e(this);o&&y.find("caption:not(.head)").remove();var m=y.find("tbody").find("tr"),m=s.settings.headings?m.add(y.find("thead>tr")):m,m=s.settings.footers?m.add(y.find("tfoot>tr")):m,g=s.settings.headings?y.find("thead>tr").length:0,b="id"===s.settings.fileName?y.attr("id")?y.attr("id"):r.prototype.defaultFileName:s.settings.fileName,h={xlsx:function(t,o){var i={},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(d))return" ";if(o.hasAttribute("colspan")&&(i[t]=i[t]||{},i[t][n+1]=o.getAttribute("colspan")-1),o.hasAttribute("rowspan"))for(var r=1;r":">","'":"'","/":"/"},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 r.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 r=0;r!=t[o].length;++r){n.s.r>o&&(n.s.r=o),n.s.c>r&&(n.s.c=r),n.e.r