{"version":3,"sources":["jsdelivr-header.js","/npm/bracket-generator@3.1.1/index.js"],"names":[],"mappings":"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","file":"/npm/bracket-generator@3.1.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/bracket-generator@3.1.1/index.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 bracketData = require('bracket-data')\nvar _isString = require('lodash/isString')\nvar _map = require('lodash/map')\nvar _random = require('lodash/random')\nvar _sample = require('lodash/sample')\nvar _uniq = require('lodash/uniq')\nvar _toArray = require('lodash/toArray')\nvar _difference = require('lodash/difference')\nvar _flatten = require('lodash/flatten')\nvar _last = require('lodash/last')\nvar _find = require('lodash/find')\nvar _defaults = require('lodash/defaults')\nvar _extend = require('lodash/assign')\nvar _filter = require('lodash/filter')\nvar _omit = require('lodash/omit')\nvar _pick = require('lodash/pick')\nvar _reduce = require('lodash/reduce')\n\nfunction Generator (options) {\n  this.bracketData = bracketData({\n    year: options.year,\n    sport: options.sport\n  })\n\n  return this.reset(_omit(options, 'sport', 'year'))\n}\n\nGenerator.prototype.reset = function (options) {\n  _defaults(options, {\n    winners: '',\n    generatedBracket: null,\n    winnerCounter: 0,\n    regionCounter: 0,\n    finishedRegions: null\n  })\n\n  _extend(this, _pick(options, 'winnerCounter', 'regionCounter', 'generatedBracket', 'finishedRegions'))\n  this.options = _pick(options, 'winners')\n\n  return this\n}\n\nGenerator.prototype.generateWinner = function (matchup) {\n  var self = this\n\n  if (_isString(matchup[0]) && _isString(matchup[1])) {\n    matchup = _map(matchup, function (region) {\n      return self.winningTeamFromRegion(region)\n    })\n  }\n\n  var possible = {\n    random: _random(matchup.length - 1),\n    // Higher means higher seed OR if seeds are the same 2nd team\n    higher: function () {\n      if (_uniq(matchup, true).length < 2) return 1\n      return matchup.indexOf(Math.max.apply(Math, matchup))\n    },\n    // Lower means lower seed OR if seeds are the same 1st team\n    lower: function () {\n      if (_uniq(matchup, true).length < 2) return 0\n      return matchup.indexOf(Math.min.apply(Math, matchup))\n    }\n  }\n\n  var pickIndex = this.options.winners.length >= this.bracketData.order.length\n    ? (this.regionCounter * (this.bracketData.order.length - 1)) + (this.winnerCounter + 1) - 1\n    : this.winnerCounter\n\n  var pick = this.options.winners.charAt(pickIndex)\n  var winner\n\n  if (pick === '1') {\n    winner = possible.higher()\n  } else if (pick === '0') {\n    winner = possible.lower()\n  } else if (typeof possible[this.options.winners] === 'function') {\n    winner = possible[this.options.winners]()\n  } else if (typeof possible[this.options.winners] !== 'undefined') {\n    winner = possible[this.options.winners]\n  }\n\n  return (winner >= 0 && winner < matchup.length) ? winner : possible.random\n}\n\nGenerator.prototype.generateRound = function (opts) {\n  var seeds = opts.seeds\n  var matchup = [seeds[0], seeds[1]]\n  var winner = matchup[this.generateWinner(matchup)]\n  var winners = (opts.winners || []).concat(winner)\n  var remainingSeeds = seeds.splice(2)\n\n  this.winnerCounter++\n\n  if (remainingSeeds.length === 0) {\n    return winners\n  } else {\n    return this.generateRound({seeds: remainingSeeds, winners: winners})\n  }\n}\n\nGenerator.prototype.generateRounds = function (opts) {\n  var optRound = _toArray(opts.round)\n  var round = this.generateRound({seeds: opts.round})\n  var rounds = (opts.rounds || [])\n\n  if (rounds.length === 0) {\n    rounds.push(optRound)\n  }\n  rounds.push(_toArray(round))\n\n  if (round.length === 1) {\n    this.regionCounter++\n    return rounds\n  } else {\n    return this.generateRounds({round: round, rounds: rounds})\n  }\n}\n\nGenerator.prototype.generateRegion = function (region) {\n  this.winnerCounter = 0\n  return {id: region.id, rounds: this.generateRounds({round: this.bracketData.order.slice()})}\n}\n\nGenerator.prototype.generateRegions = function () {\n  this.regionCounter = 0\n  var regions = _map(_filter(this.bracketData.bracket.regions, function (r) { return !!r.teams }), this.generateRegion.bind(this))\n  this.finishedRegions = regions\n  return regions\n}\n\nGenerator.prototype.generateBracket = function () {\n  if (this.generatedBracket === null) {\n    this.generatedBracket = this.generateRegions().concat(this.generateFinal())\n  }\n  return this.generatedBracket\n}\n\nGenerator.prototype.generateFinalFour = function () {\n  var regions = this.bracketData.constants.REGION_IDS\n  var firstTeam = regions[0]\n  var matchup1 = [firstTeam, this.bracketData.bracket.regions[firstTeam].sameSideAs]\n  var matchup2 = _difference(regions, matchup1)\n  return _flatten([matchup1, matchup2])\n}\n\nGenerator.prototype.generateFinal = function () {\n  this.winnerCounter = 0\n  return {id: this.bracketData.constants.FINAL_ID, name: this.bracketData.constants.FINAL_NAME, rounds: this.generateRounds({round: this.generateFinalFour()})}\n}\n\nGenerator.prototype.winningTeamFromRegion = function (fromRegion) {\n  var hasFinishedRegions = !!(this.finishedRegions.length)\n  var regions = (hasFinishedRegions) ? this.finishedRegions : this.generateBracket()\n  return _last(_find(regions, function (region) {\n    return region.id === fromRegion\n  }).rounds)[0]\n}\n\nGenerator.prototype.addBestOfToRounds = function (rounds) {\n  var bestOf = this.bracketData.constants.BEST_OF_RANGE\n\n  if (!bestOf) return rounds\n\n  return _map(rounds, function (round, index) {\n    if (index === 0) {\n      return round\n    } else {\n      return _reduce(round, function (acc, pick) {\n        acc.push(pick)\n        acc.push(_sample(bestOf))\n        return acc\n      }, [])\n    }\n  })\n}\n\nGenerator.prototype.generate = function (winners) {\n  var self = this\n  winners && this.reset({winners: winners})\n  return _map(_flatten(_toArray(this.generateBracket())), function (region) {\n    return region.id + _flatten(self.addBestOfToRounds(region.rounds)).join('')\n  }).join('')\n    .replace(new RegExp(this.bracketData.order.join(''), 'g'), '')\n    .replace(new RegExp(this.generateFinalFour().join(''), 'g'), '')\n}\n\nmodule.exports = Generator\n"]}