יחידה:ארגז חול/עלי

מתוך ויקיפדיה, האנציקלופדיה החופשית

ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:ארגז חול/עלי/תיעוד

--------------------------------------------------------------------------------
-- This module implements {{משתמש:עלי/תבנית:הדגמה}}
--------------------------------------------------------------------------------
require('Module:No globals')

-- Tabs class
local Tabs = {}

function Tabs.new(frame, args)
	args = args or {}
	
	local containerWidth = args.containerWidth or '90%'
	local borderColor = args.borderColor or '#A2A9B1'
	local backgroundColor = args.backgroundColor or '#FBFBFB'
	local activeTab = args.activeTab or 0
	
	-- TODO:
	local name = 'tab name'
	local content = 'tab content'
	local numberOfTabs = 2

	local root = mw.html.create('div')
	root
		:addClass('tabs__container')
		:css('width', containerWidth)
		:css('border-width', '1px')
		:css('border-style', 'solid')
		:css('border-color', borderColor)
	
	for i = 0, (numberOfTabs-1) do
		local radio = root:tag('input')
		radio
			:addClass('tabs__radio')
			:attr('name', 'tabs')
			:attr('tabindex', '1')
			:attr('type', 'radio')
			:attr('id', 'tab'..i)
		if i == activeTab then
			radio:attr('checked', 'checked')
		end
		local label = root:tag('label')
		label
			:addClass('tabs__label')
			:attr('for', 'tab'..i)
			:css('background-color', backgroundColor)
			:cssText('width: calc(100% / '..numberOfTabs..');')
			:wikitext(name)
		local panel = root:tag('div')
		panel
			:addClass('tabs__panel')
			:attr('tabindex', '1')
			:wikitext(content)
	end
	
	return tostring(root)
end

-- Exports
local p = {}

function p.main(frame)
	local args = require('Module:Arguments').getArgs(frame)
    -- translate arguments
	local translatedArgs = {};
	for k,v in pairs(args) do
		if mw.ustring.match(k, '[א-ת]') ~=nil then
			local enKey = mw.ustring.gsub( k, 'רוחב', 'containerWidth' )
			enKey = mw.ustring.gsub( enKey, 'גבול', 'borderColor' )
			enKey = mw.ustring.gsub( enKey, 'רקע', 'backgroundColor' )
			enKey = mw.ustring.gsub( enKey, 'ברירת מחדל', 'activeTab' )
			
			translatedArgs[enKey] = v
		else
			translatedArgs[k] = v
		end
	end

	return Tabs.new(frame, translatedArgs)
end

return p