Module:PlayerTimelineSection

local util_args = require('Module:ArgsUtil') local util_html = require("Module:HtmlUtil") local util_toggle = require("Module:ToggleUtil") local util_vars = require("Module:VarsUtil") local i18n = require('Module:i18nUtil') local PlayerTeamHistoryCompact = require('Module:PlayerTeamHistoryCompact')._main local PlayerTeamHistory = require('Module:PlayerTeamHistory')._main local NewsQueryPlayer = require('Module:NewsQueryPlayer')._main

local TOGGLES_TABLE = { order = { 'compact', 'full' }, }

local TOGGLES_DATE = { order = { 'approx', 'exact' }, key = 'date' }

local h = {}

local p = {} function p.main(frame) local args = util_args.merge i18n.init('PlayerTimelineSection') local output = mw.html.create local div = output:tag('div') :addClass('player-history') h.printContent(div, args) if util_args.castAsBool(args.suppressoutput) then return '' end return output, '' end

function h.printContent(output, args) output:tag('h2') :wikitext(i18n.print('TeamHistory')) h.printLowContentIntroIfNeeded(output) h.printPTH(output, args) output:tag('h2') :wikitext(i18n.print('News')) output:tag('div') :addClass('player-history-timeline') :wikitext(tostring(NewsQueryPlayer(args))) end

function h.printPTH(output, args) h.printToggler(output) local div = output:tag('div') :addClass('player-history-teamlist') local div2 = div:tag('div'):wikitext(tostring(PlayerTeamHistoryCompact(args))) local div1 = div:tag('div'):wikitext(tostring(PlayerTeamHistory(args))) h.printToggleClasses(div1, 'full') h.printToggleClasses(div2, 'compact') end

function h.printToggler(tbl) local div = tbl:tag('div') :addClass('toggle-button') div:wikitext(i18n.print('toggleIntro')) util_toggle.printOptionFromListTogglers(div, TOGGLES_TABLE) local div2 = tbl:tag('div') :addClass('toggle-button') div2:wikitext(i18n.print('toggleDatesIntro')) util_toggle.printOptionFromListTogglers(div2, TOGGLES_DATE) util_html.clear(tbl) return end

function h.printToggleClasses(div, label) util_toggle.oflCellClasses(div, TOGGLES_TABLE, label) end

function h.printLowContentIntroIfNeeded(output) if not util_vars.getBool('isLowContent') then return end output:tag('div') :addClass('low-content-notice-wrapper') :tag('div') :addClass('low-content-notice') :wikitext(i18n.print('lowContentIntro')) end

return p