{"version":3,"sources":["jsdelivr-header.js","/npm/burnhub@0.1.8/lib/burnhub.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAGI,QAHA,EAAI,QAAQ,UACZ,OAAS,QAAQ,UACjB,OAAS,QAAQ,mBAGrB,QAAQ,mBAER,QAAU,SAAS,GACf,KAAK,aAAe,GACpB,KAAK,YAAc,EACnB,KAAK,0BAA4B,GACjC,KAAK,KAAO,EACZ,EAAE,OAAO,KAAM,EACnB,GAEQ,UAAU,gBAAkB,WAChC,IAAI,EAAO,GACX,IAAK,KAAK,YAAe,KAAK,QAC1B,MAAM,IAAI,MAAM,gCAEpB,IAAK,IAAI,EAAM,OAAO,KAAK,UAAU,OAAO,eAAgB,EAAI,SAAS,KAAK,SAAU,EAAI,IAAI,OAAQ,GACpG,EAAK,KAAK,OAAO,EAAI,WAGzB,OADA,EAAK,KAAK,OAAO,KAAK,QAAQ,WACvB,CACX,EAEA,QAAQ,UAAU,mBAAqB,SAAS,GAC5C,IAAI,EAAS,EAMb,OALA,EAAE,QAAQ,GAAQ,SAAS,GACnB,KAAK,aAAa,KAClB,GAAkB,KAAK,mBAAmB,GAElD,GAAG,MACI,CACX,EAEA,QAAQ,UAAU,aAAe,SAAS,GACtC,OAAO,EAAM,WAAW,KAAK,YACjC,EAEA,QAAQ,UAAU,mBAAqB,SAAS,GAC5C,OAAO,SAAS,EAAM,QAAQ,KAAK,YAAa,IACpD,EAEA,QAAQ,UAAU,iBAAmB,SAAS,GAC1C,IAAI,EAAe,CACf,KAAM,EAAI,OAAO,cACjB,YAAa,KAAK,YAClB,UAAW,GAoBf,OAjBA,EAAE,QAAQ,KAAK,QAAQ,SAAS,GAC5B,IAAI,EAAS,KAAK,mBAAmB,EAAE,IAAI,EAAM,OAAQ,SACrD,OAAO,EAAM,WAAW,OAAO,gBAAkB,EAAI,OAAO,gBAC5D,KAAK,MAAQ,GAEb,OAAO,EAAM,YAAY,OAAO,gBAAkB,EAAI,OAAO,gBAC7D,KAAK,aAAe,GAEpB,OAAO,EAAM,YAAY,SAAS,KAAK,aAClC,EAAE,SAAS,KAAK,0BAA2B,EAAM,MAClD,KAAK,0BAA0B,KAAK,EAAM,IAC1C,KAAK,aAAe,GAGhC,GAAG,MACH,EAAa,UAAY,KAAK,YAAc,KAAK,KACjD,EAAa,YAAc,KAAK,YACzB,CACX,EAGA,QAAQ,UAAU,sBAAwB,WACtC,IAAI,EAAO,KAAK,kBACZ,EAAe,GAQnB,OANA,EAAE,QAAQ,GAAM,SAAS,GACrB,EAAa,KAAK,KAAK,iBAAiB,GAC5C,GAAG,MAGH,EAAe,KAAK,mBAAmB,EAE3C,EAEA,QAAQ,UAAU,mBAAqB,SAAS,GAI5C,OAHA,EAAE,QAAQ,GAAc,SAAS,EAAM,GACnC,EAAK,MAAQ,KAAK,OAAO,GAAK,EAAM,GAAK,EAAa,QAAU,EAAK,YACzE,IACO,CACX,EAEA,QAAQ,UAAY,OAAO,UAG3B,OAAO,QAAU","file":"/npm/burnhub@0.1.8/lib/burnhub.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/burnhub@0.1.8/lib/burnhub.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var _ = require('lodash'),\n    moment = require('moment'),\n    github = require('./githubAdapter'),\n    Burnhub;\n\nrequire('./StringExtras');\n\nBurnhub = function(config) {\n    this.pointsPerDay = [];\n    this.totalPoints = 0;\n    this.issuesCreatedBeforeSprint = [];\n    this.done = 0;\n    _.assign(this, config);\n};\n\nBurnhub.prototype.getDaysInPeriod = function() {\n    var days = [];\n    if (!this.startDate ||  !this.endDate) {\n        throw new Error('start and end date is needed');\n    }\n    for (var day = moment(this.startDate.format('YYYY-MM-DD')); day.isBefore(this.endDate); day.add('days', 1)) {\n        days.push(moment(day.format()));\n    }\n    days.push(moment(this.endDate.format()));\n    return days;\n};\n\nBurnhub.prototype.getPointsForLabels = function(labels) {\n    var points = 0;\n    _.forEach(labels, function(label) {\n        if (this.isStoryLabel(label)) {\n            points = points + this.getPointsFromLabel(label);\n        }\n    }, this);\n    return points;\n};\n\nBurnhub.prototype.isStoryLabel = function(label) {\n    return label.startsWith(this.labelPrefix);\n};\n\nBurnhub.prototype.getPointsFromLabel = function(label) {\n    return parseInt(label.replace(this.labelPrefix, ''));\n};\n\nBurnhub.prototype.getPointsForADay = function(day) {\n    var pointsPerDay = {\n        date: day.format('MM.DD.YYYY'),\n        totalPoints: this.totalPoints,\n        remaining: 0\n    };\n\n    _.forEach(this.issues, function(issue) {\n        var points = this.getPointsForLabels(_.map(issue.labels, 'name'));\n        if (moment(issue.closed_at).format('MM.DD.YYYY') === day.format('MM.DD.YYYY')) {\n            this.done += points;\n        }\n        if (moment(issue.created_at).format('MM.DD.YYYY') === day.format('MM.DD.YYYY')) {\n            this.totalPoints += points;\n        }\n        if (moment(issue.created_at).isBefore(this.startDate)) {\n            if (!_.contains(this.issuesCreatedBeforeSprint, issue.id)) {\n                this.issuesCreatedBeforeSprint.push(issue.id);\n                this.totalPoints += points;\n            }\n        }\n    }, this);\n    pointsPerDay.remaining = this.totalPoints - this.done;\n    pointsPerDay.totalPoints = this.totalPoints;\n    return pointsPerDay;\n};\n\n\nBurnhub.prototype.calculatePointsPerDay = function() {\n    var days = this.getDaysInPeriod(),\n        pointsPerDay = [];\n\n    _.forEach(days, function(day) {\n        pointsPerDay.push(this.getPointsForADay(day));\n    }, this);\n\n\n    pointsPerDay = this.augmentIdealPoints(pointsPerDay);\n    return pointsPerDay;\n};\n\nBurnhub.prototype.augmentIdealPoints = function(pointsPerDay) {\n    _.forEach(pointsPerDay, function(item, key) {\n        item.ideal = Math.floor((1 - (key + 1) / pointsPerDay.length) * item.totalPoints);\n    });\n    return pointsPerDay;\n};\n\nBurnhub.getIssues = github.getIssues;\n\n\nmodule.exports = Burnhub;\n"]}