<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ACTA_header</id>
	<title>Module:CTA header - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ACTA_header"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:CTA_header&amp;action=history"/>
	<updated>2026-05-28T14:36:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:CTA_header&amp;diff=135425&amp;oldid=prev</id>
		<title>imported&gt;Cards84664: swap color</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:CTA_header&amp;diff=135425&amp;oldid=prev"/>
		<updated>2022-10-02T15:18:28Z</updated>

		<summary type="html">&lt;p&gt;swap color&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {parentOnly = true})&lt;br /&gt;
	&lt;br /&gt;
	local function getArgNums(prefix)&lt;br /&gt;
	-- Returns a table containing the numbers of the arguments that exist&lt;br /&gt;
	-- for the specified prefix. For example, if the prefix was &amp;#039;data&amp;#039;, and&lt;br /&gt;
	-- &amp;#039;data1&amp;#039;, &amp;#039;data2&amp;#039;, and &amp;#039;data5&amp;#039; exist, it would return {1, 2, 5}.&lt;br /&gt;
		local nums = {}&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
	 		local num = tostring(k):match(&amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)$&amp;#039;)&lt;br /&gt;
			if num then table.insert(nums, tonumber(num)) end&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(nums)&lt;br /&gt;
		return nums&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local dataTable = require(&amp;#039;Module:Adjacent stations/CTA&amp;#039;)[&amp;#039;lines&amp;#039;]&lt;br /&gt;
	local function getColor(line)&lt;br /&gt;
		if dataTable[line] then&lt;br /&gt;
			return dataTable[line][&amp;#039;color&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local tmp, tmp2&lt;br /&gt;
	local color = args.color or &amp;#039;&amp;#039;&lt;br /&gt;
	local name = args.name or mw.ustring.gsub(mw.ustring.gsub(mw.title.getCurrentTitle().text, &amp;#039;%s+%b()$&amp;#039;, &amp;#039;&amp;#039;, 1), &amp;#039; station&amp;#039;, &amp;#039;&amp;#039;, 1)&lt;br /&gt;
	local grid = (args.grid and &amp;#039;&amp;amp;nbsp;&amp;lt;div style=&amp;quot;display:inline-block;vertical-align:middle;line-height:0.9;text-align:&amp;#039;..(((color ~= &amp;#039;&amp;#039;) and &amp;#039;center&amp;#039;) or &amp;#039;right&amp;#039;)..&amp;#039;&amp;quot;&amp;gt;&amp;#039;..mw.ustring.gsub(args.grid, &amp;#039;%s+&amp;#039;, &amp;#039;&amp;lt;br/&amp;gt;&amp;#039;)..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
	tmp2 = mw.ustring.gsub(name, &amp;#039;&amp;lt; ?/? ?[Ss][Mm][Aa][Ll][Ll] ?&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	local size, length, br, size1, align = 15.4*(tonumber(args.size or 1))..&amp;#039;px&amp;#039;, mw.ustring.len(tmp2), mw.ustring.match(tmp2, &amp;#039;&amp;lt; */? *[Bb][Rr] */? *&amp;gt;&amp;#039;), &amp;#039;200%&amp;#039;, {&amp;#039;&amp;#039;, &amp;#039;&amp;#039;}&lt;br /&gt;
	if br then&lt;br /&gt;
		size1 = &amp;#039;100%&amp;#039;&lt;br /&gt;
		tmp2 = mw.text.split(tmp2, &amp;#039;%s*&amp;lt; */? *[Bb][Rr] */? *&amp;gt;%s*&amp;#039;)&lt;br /&gt;
		for k, v in ipairs(tmp2) do&lt;br /&gt;
			tmp2[k] = mw.ustring.len(v)&lt;br /&gt;
		end&lt;br /&gt;
		if tmp2[2] &amp;gt; tmp2[1] then length = tmp2[2] else length = tmp2[1] end&lt;br /&gt;
		if length &amp;gt; 15 then size = 15.4*(tonumber(args.size) or ((1/(0.1*(length-15)+1.7))+0.4))..&amp;#039;px&amp;#039; end&lt;br /&gt;
	elseif length &amp;gt; 6 then&lt;br /&gt;
		size = 15.4*(tonumber(args.size) or ((1/(0.35*(length-6)+1.7))+0.4))..&amp;#039;px&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if color ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if color == &amp;#039;PreKDR&amp;#039; then color = &amp;#039;002962&amp;#039; name = string.upper(name) else color = getColor(color) end&lt;br /&gt;
		return &amp;#039;&amp;lt;div style=&amp;quot;color:white;background:#&amp;#039;..color..&amp;#039;;height:38px;display:block;vertical-align:middle;line-height:38px;border:0px solid transparent;font-size:&amp;#039;..size..&amp;#039;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;fn org&amp;quot; style=&amp;quot;display:inline-block;vertical-align:middle;line-height:1;font-size:&amp;#039;..size1..&amp;#039;;text-align:left&amp;quot;&amp;gt;&amp;#039;..name..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;..grid..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local colors, total = getArgNums(&amp;#039;line&amp;#039;), 0&lt;br /&gt;
	for k, v in ipairs(colors) do&lt;br /&gt;
		colors[k] = getColor(args[&amp;#039;line&amp;#039;..v])&lt;br /&gt;
		total = total + 1&lt;br /&gt;
	end&lt;br /&gt;
	local ratio = {1, 9, 17/3, 8.75, 6.8}&lt;br /&gt;
	ratio = mw.clone(ratio[total] or 10)&lt;br /&gt;
	total = total+(total-1)/ratio&lt;br /&gt;
	local gradient = &amp;#039;linear-gradient(to bottom&amp;#039;&lt;br /&gt;
	for k, v in ipairs(colors) do&lt;br /&gt;
		tmp = &amp;#039;, #&amp;#039;..colors[k]..&amp;#039; &amp;#039;..100*((1+1/ratio)*(k-1))/total..&amp;#039;%, #&amp;#039;..colors[k]..&amp;#039; &amp;#039;..100*(k+(k-1)/ratio)/total..&amp;#039;%&amp;#039;..(colors[k+1] and &amp;#039;, #FFF &amp;#039;..100*(k+(k-1)/ratio)/total..&amp;#039;%&amp;#039;..&amp;#039;, #FFF &amp;#039;..100*((1+1/ratio)*k)/total..&amp;#039;%&amp;#039; or &amp;#039;&amp;#039;)&lt;br /&gt;
		gradient = gradient..tmp&lt;br /&gt;
	end&lt;br /&gt;
	gradient = gradient..&amp;#039;) 1&amp;#039;&lt;br /&gt;
	return &amp;#039;&amp;lt;div style=&amp;quot;color:white;background:#5F6062;height:38px;display:block;vertical-align:middle;line-height:38px;border-top:0px solid transparent;border-bottom:0px solid transparent;border-left:50px solid #&amp;#039;..(colors[1] or &amp;#039;000000&amp;#039;)..&amp;#039;;border-right:50px solid #&amp;#039;..(colors[1] or &amp;#039;000000&amp;#039;)..&amp;#039;;font-size:&amp;#039;..size..&amp;#039;;border-image:&amp;#039;..gradient..&amp;#039;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;fn org&amp;quot; style=&amp;quot;display:inline-block;vertical-align:middle;line-height:1;font-size:&amp;#039;..size1..&amp;#039;;text-align:left&amp;quot;&amp;gt;&amp;#039;..name..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;..grid..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Cards84664</name></author>
	</entry>
</feed>