Mô đun:Clade/labels

local p = {}
--local args =frame:getParent().args  -- get parent arguments
--local args = {}
p.getArgs = function(frame) 
	--return frame.args              -- use frame arguments
	return frame:getParent().args  -- use parent arguments
end
p.main = function(frame)

args = p.getArgs(frame) 

local i = 1                     -- index for labels
local output = ""
--local groupStyle = args'style'
local topStyle = args'top'
local leftStyle = args'left'
local rightStyle = args'right'
local bottomStyle = args'bottom'

-- parameters for all labels
local width = args'width' -- or "5em;"
--local style = args'style' or ""
--local color = args'width' or ""

local longestString = 0

while  args'label'..i do
	
	    local label = args'label'..i     or ""
	    if #label > longestString then longestString = #label end
	    
	    local style  = args'style'..i  or args'style'  or ""  
	    local color  = args'color'..i  or args'color'  or ""  
	    local top    = args'top'..i    or args'top'    or ""
	    local left   = args'left'..i   or args'left'   or ""
	    local right  = args'right'..i  or args'right'  or ""
	    local bottom = args'bottom'..i or args'bottom' or ""
	    if top ~= ""    then top    = 'top:'     .. top    .. ';' end  
	    if left ~= ""   then left   = 'left:'    .. left   .. ';' end  
	    if right ~= ""  then right  = 'right:'   .. right  .. ';' end  
	    if bottom ~= "" then bottom = 'bottom:'  .. bottom .. ';' end 
	    if color ~= ""  then color  = 'color:'   .. color .. ';' end
	    --if no color:find(";", -1, true)  then color = color .. ';' end
	   
	    
	    --local position = top .. left .. right .. bottom
	    
		output = output ..                -- position of label
		                .. label                                                -- content of label
		                .. 
		i=i+1
	end
	if output ~= "" then
		local styleStr = ""
		--widthStr = 'width:' .. (longestString*0.5)..'em;' -- can't take account of formatting or 
		if width then styleStr = 'style="width:' .. width .. '"' end
		
		output =  .. output .. 
	end
	return output
end
p.label = function(frame)

args = p.getArgs(frame) 

local i = 1                     -- index for labels
local output = ""
local label = args'label'..i or  args'label' or args1   or ""
local width = args'width'

	    local style  = args'style'..i  or args'style'  or ""  
	    local color  = args'color'..i  or args'color'  or ""  
	    local top    = args'top'..i    or args'top'    or ""
	    local left   = args'left'..i   or args'left'   or ""
	    local right  = args'right'..i  or args'right'  or "0px"
	    local bottom = args'bottom'..i or args'bottom' or ""
	    if top ~= ""    then top    = 'top:'     .. top    .. ';' end  
	    if left ~= ""   then left   = 'left:'    .. left   .. ';' end  
	    if right ~= ""  then right  = 'right:'   .. right  .. ';' end  
	    if bottom ~= "" then bottom = 'bottom:'  .. bottom .. ';' end 
	    if color ~= ""  then color  = 'color:'   .. color .. ';' end

		output = output ..                -- position of label
		                .. label                                                -- content of label
		                .. 
	if output ~= "" then
		local widthStr = 
		if width then widthStr = 'width:' .. width .. ';' end
		
		output =  .. output .. 
	end

return output

end
return p