"use strict" ; module /**
 * Module dependencies.
 */ var Base = require ( "./base" ) ; var constants = require ( "../runner" ) . default . constants ; var EVENT_RUN_BEGIN = constants . EVENT_RUN_BEGIN ; var EVENT_TEST_END = constants . EVENT_TEST_END ; var EVENT_RUN_END = constants . EVENT_RUN_END ; var inherits = require ( "../utils" ) . inherits ; var color = Base . color ; var cursor = Base . cursor ; /**
 * Expose `Progress`.
 */ exports = module . exports = Progress ; /**
 * General progress bar color.
 */ Base . colors . progress = 90 ; public class memberof extends Mocha . reporters . Base param { Runner } runner param { Object } options function Progress ( runner , options ) { Base . call ( this , runner , options ) ; var self = this ; var width = 40 ; var total = runner . total ; var complete = 0 ; var lastN = - 1 ; options = options || { } ; var reporterOptions = options . reporterOptions || { } ; options . open = reporterOptions . open || "[" ; options . complete = reporterOptions . complete || "▬" ; options . incomplete = reporterOptions . incomplete || Base . symbols . dot ; options . close = reporterOptions . close || "]" ; options . verbose = reporterOptions . verbose || false ; runner . on ( EVENT_RUN_BEGIN , function ( ) { process . stdout . write ( "\n" ) ; cursor . hide ( ) ; } ) ; runner . on ( EVENT_TEST_END , function ( ) { complete ++ ; var percent = complete / total ; var n = ( width * percent ) | 0 ; var i = width - n ; if ( n === lastN && ! options . verbose ) { return ; } lastN = n ; cursor . CR ( ) ; process . stdout . write ( "\u001b[J" ) ; process . stdout . write ( color ( "progress" , "  " + options . open ) ) ; process . stdout . write ( Array ( n ) . join ( options . complete ) ) ; process . stdout . write ( Array ( i ) . join ( options . incomplete ) ) ; process . stdout . write ( color ( "progress" , options . close ) ) ; if ( options . verbose ) { process . stdout . write ( color ( "progress" , " " + complete + " of " + total ) ) ; } } ) ; runner . once ( EVENT_RUN_END , function ( ) { cursor . show ( ) ; process . stdout . write ( "\n" ) ; self . epilogue ( ) ; } ) ; } /**
 * Inherit from `Base.prototype`.
 */ inherits ( Progress , Base ) ; Progress . description = "a progress bar" ;