יחידה:ארגז חול/עלי
מראה
ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:ארגז חול/עלי/תיעוד
--------------------------------------------------------------------------------
-- 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