diff options
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/gauge/lib/progress-bar.js')
-rw-r--r-- | sandbox/testAppNevena/Front/node_modules/gauge/lib/progress-bar.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/gauge/lib/progress-bar.js b/sandbox/testAppNevena/Front/node_modules/gauge/lib/progress-bar.js new file mode 100644 index 00000000..184ff250 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/gauge/lib/progress-bar.js @@ -0,0 +1,41 @@ +'use strict' +var validate = require('aproba') +var renderTemplate = require('./render-template.js') +var wideTruncate = require('./wide-truncate') +var stringWidth = require('string-width') + +module.exports = function (theme, width, completed) { + validate('ONN', [theme, width, completed]) + if (completed < 0) { + completed = 0 + } + if (completed > 1) { + completed = 1 + } + if (width <= 0) { + return '' + } + var sofar = Math.round(width * completed) + var rest = width - sofar + var template = [ + { type: 'complete', value: repeat(theme.complete, sofar), length: sofar }, + { type: 'remaining', value: repeat(theme.remaining, rest), length: rest }, + ] + return renderTemplate(width, template, theme) +} + +// lodash's way of repeating +function repeat (string, width) { + var result = '' + var n = width + do { + if (n % 2) { + result += string + } + n = Math.floor(n / 2) + /* eslint no-self-assign: 0 */ + string += string + } while (n && stringWidth(result) < width) + + return wideTruncate(result, width) +} |