Jump to content

Module:Build bracket/sandbox

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pbrks (talk | contribs) at 02:27, 13 August 2025. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local p = {}

-- Central state/config
local state = {
  entries = {},     -- you already populate this upstream (layout scan)
  rlegs = {},       -- per-round default legs
  maxlegs = {},
  headerindex = {},
  byes = {},
  hide = {},
  teamsPerMatch = {}, -- if you support non-2up matches
}
local config = {}

-- Submodules
local Config      = require('Module:Build bracket/Config')
local Helpers     = require('Module:Build bracket/Helpers')
local Params      = require('Module:Build bracket/Params')
local Logic       = require('Module:Build bracket/Logic')
local Paths       = require('Module:Build bracket/Paths')
local Render      = require('Module:Build bracket/Render')
local StateChecks = require('Module:Build bracket/StateChecks')

function p.main(frame)
  -- 1) Parse args & core flags
  Config.init(frame, state, config, Helpers)

  -- 2) Structure & visibility passes (byes/hide, alt indexes, rlegs)
  Params.scanStructure(state, config, Helpers, StateChecks)

  -- 3) Resolve all parameters (team names, scores, headers, etc.)
  Params.assign(state, config, Helpers, StateChecks)

  -- 4) Size & competition logic
  Logic.updateMaxLegs(state, config, Helpers)
  Logic.matchGroups(state, config)
  Logic.computeAggregate(state, config, Helpers, StateChecks)
  Logic.boldWinner(state, config, Helpers, StateChecks)

  -- 5) Compute path matrices between rounds
  Paths.build(state, config, Helpers, StateChecks)

  -- 6) Render HTML table
  return Render.buildTable(state, config, Helpers, StateChecks, Config.COLORS)
end

return p