UNPKG

intertext

Version:
145 lines (125 loc) 3.66 kB
// Generated by CoffeeScript 2.5.1 (function() { 'use strict'; var CND, alert, badge, cast, debug, echo, help, info, isa, log, rpr, type_of, types, urge, validate, warn, whisper, modulo = function(a, b) { return (+a % (b = +b) + b) % b; }; //########################################################################################################### CND = require('cnd'); rpr = CND.rpr; badge = 'INTERTEXT/HYPHENATION'; log = CND.get_logger('plain', badge); info = CND.get_logger('info', badge); whisper = CND.get_logger('whisper', badge); alert = CND.get_logger('alert', badge); debug = CND.get_logger('debug', badge); warn = CND.get_logger('warn', badge); help = CND.get_logger('help', badge); urge = CND.get_logger('urge', badge); echo = CND.echo.bind(CND); //........................................................................................................... types = require('./types'); ({isa, validate, cast, type_of} = types); //----------------------------------------------------------------------------------------------------------- this.percentage_bar = function(n) { var R; if (n === null || n <= 0) { return ' '; } if (n >= 100) { return '█████████████'; } n = Math.round(n / 100 * 104); R = '█'.repeat(Math.floor(n / 8)); switch (modulo(n, 8)) { case 0: R += ' '; break; case 1: R += '▏'; break; case 2: R += '▎'; break; case 3: R += '▍'; break; case 4: R += '▌'; break; case 5: R += '▋'; break; case 6: R += '▊'; break; case 7: R += '▉'; } return R.padEnd(13); }; //----------------------------------------------------------------------------------------------------------- this.hollow_percentage_bar = function(n) { var R; if (n === null || n <= 0) { return ' '; } // if n >= 100 then return '░░░░░░░░░░░░░' if (n >= 100) { return '▓▓▓▓▓▓▓▓▓▓▓▓▓'; } n = Math.round(n / 100 * 104); // R = '░'.repeat n // 8 R = '▓'.repeat(Math.floor(n / 8)); switch (modulo(n, 8)) { case 0: R += ' '; break; case 1: R += '▏'; break; case 2: R += '▎'; break; case 3: R += '▍'; break; case 4: R += '▌'; break; case 5: R += '▋'; break; case 6: R += '▊'; break; case 7: R += '▉'; } // when 8 then R += '█' return R.padEnd(13); }; //########################################################################################################### if (module === require.main) { (async() => { var i, n, s, sleep, t, t0; // await @demo() // await @demo_inserts() t0 = Date.now(); sleep = function(dts) { return new Promise((done) => { return setTimeout(done, dts * 1000); }); }; for (n = i = 0; i <= 10; n = ++i) { s = CND.random_integer(10, 100); // await sleep s / 1000 await sleep(50 / 1000); t = modulo(Date.now() - t0, 100); t0 = t; info(`${t.toFixed(5)}`.padStart(20), '│' + (CND.reverse(this.percentage_bar(t))) + '│' + (CND.reverse(this.hollow_percentage_bar(t))) + '│'); } return null; })(); } }).call(this); //# sourceMappingURL=bar.js.map