Jump to content

Module:Infobox

From Logic World Wiki
Revision as of 23:09, 6 September 2025 by Felipe (talk | contribs)

local capiunto = require 'capiunto'

local p = {}

function p.component(frame)
	local args = frame:getParent().args
	local headerStyle
	if args.headerstyle and args.headerstyle ~= '' then
		headerStyle = string.format('background-color:%s;', args.headerstyle)
	else
		headerStyle = 'background-color:grey;'
	end
	local retval = capiunto.create{
		title = args.title,
		headerStyle = headerStyle, 
	}
	:addImage( string.format("[[File:%s 512x512.png|200px]]", args.id), args.caption )
	
	:addRow("Internal ID", args.id)

	retval:addHeader("Input and output")

	if args.minInputs ~= args.maxInputs then
		retval:addRow("Input count", string.format("Adjustable from %i to %i", args.minInputs, args.maxInputs))
	else
		retval:addRow("Input count", args.minInputs)
	end
	
	retval:addRow("Output count", args.outputs)

	local ticksStr = string.format("%i tick", args.propagationDelay)
	if args.propagationDelay ~= 1 then
		ticksStr = ticksStr.."s"
	end
	retval:addRow("Propagation delay", ticksStr)

	:addRow( 'Bar', args.bar )
	return retval
end

return p