asciitable.js
Version:
Generate a ASCII Table from a bidimensional array of strings
8 lines (7 loc) • 2.17 kB
JavaScript
/*!
* asciitable v2.0.1 (https://github.com/victornpb/asciitable.js#readme)
* Copyright (c) victornpb
* @license MIT
*/
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(t="undefined"!=typeof globalThis?globalThis:t||self).asciitable=r()}(this,(function(){"use strict";function t(r){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(r)}function r(n,e){function o(r){return null!==r&&"object"===t(r)}function i(t,r){return Object.prototype.hasOwnProperty.call(t,r)}if(o(e))for(var l in n)i(n,l)&&i(e,l)&&void 0!==e[l]&&(o(n[l])?r(n[l],e[l]):n[l]=e[l]);return n}return function(t,n){function e(t,r){void 0===r&&(r=" ");var n=t>0?Array(Math.ceil(t/r.length)+1).join(r):"";return n.length>t?n.substr(0,t):n}function o(t,r){function e(t,r,n){var e=r-t.length,o=n>0?e:e/2<<0,i=n<0?e:o+(e-2*o);return e>0?(n>=0?Array(o+1).join(" "):"")+t+(n<=0?Array(i+1).join(" "):""):t}switch((t=""+t).charAt(0)){case"<":return e(t.substr(1),r,-1);case"^":return e(t.substr(1),r,0);case">":return e(t.substr(1),r,1);default:return e(t,r,n.cell.defaultAlignDir)}}for(var i=(n=r({row:{paddingLeft:"|",paddingRight:"|",colSeparator:"|",lineBreak:"\n"},cell:{paddingLeft:" ",paddingRight:" ",defaultAlignDir:-1},hr:{str:"-",colSeparator:"|"}},n)).cell.paddingLeft.length+n.cell.paddingRight.length,l=e(n.row.colSeparator.length,n.hr.colSeparator||n.hr.str),a=function(t){for(var r=[],n=0,e=t.length;n<e;n++)if(t[n])for(var o=0,i=t[n].length;o<i;o++)r[o]||(r[o]=0),r[o]=Math.max(r[o],(""+t[n][o]).length);return r}(t),f=[],u=0,c=t.length;u<c;u++){var d=[];if(t[u]){for(var p=0;p<a.length;p++)d.push(n.cell.paddingLeft+o(t[u][p],a[p])+n.cell.paddingRight);f.push([n.row.paddingLeft,d.join(n.row.colSeparator),n.row.paddingRight].join(""))}else{for(var g=0;g<a.length;g++)d.push(e(a[g]+i,n.hr.str));f.push([n.row.paddingLeft,d.join(l),n.row.paddingRight].join(""))}}return f.join(n.row.lineBreak)}}));
//# sourceMappingURL=asciitable.js.map