Module:Tabs: Difference between revisions

Want an adless experience? Log in or Create an account.
add getRequiredArg function; add missing hastabstop css class
(adjust some args)
(add getRequiredArg function; add missing hastabstop css class)
Line 1: Line 1:
function getRequiredArg( args, argName, fnName )
  return assert( args[argName], 'missing required arg for ' .. fnName .. ': ' .. argName )
end
local TabContainer = {}
local TabContainer = {}
TabContainer.__index = TabContainer
TabContainer.__index = TabContainer
Line 4: Line 8:
function TabContainer.new( args )
function TabContainer.new( args )
   return setmetatable( {
   return setmetatable( {
     id = assert( args.id, 'missing required arg: id' ),
     id = getRequiredArg( args, 'id', 'TabContainer.new' ),
     content = args[1],
     content = args[1],
     tabsTop = args.top,
     tabsTop = args.top,
Line 29: Line 33:
   end
   end
   if self.tabsTop then
   if self.tabsTop then
    container:addClass( 'zdw-tabcontainer--hastabstop' )
     container:tag( 'div' )
     container:tag( 'div' )
       :addClass( 'zdw-tabcontainer__tabset--top' )
       :addClass( 'zdw-tabcontainer__tabset--top' )
Line 45: Line 50:
function TabSet.new( args )
function TabSet.new( args )
   return setmetatable( {
   return setmetatable( {
     target = assert( args.target, 'missing required arg: target' ),
     target = getRequiredArg( args, 'target', 'TabSet.new' ),
     selector = args.selector or args.target,
     selector = args.selector or args.target,
     activation = args.activation or 'click',
     activation = args.activation or 'click',
     tabs = assert( args[1], 'missing required arg: [1]' )
     tabs = getRequiredArg( args, 1, 'TabSet.new' )
   }, TabSet )
   }, TabSet )
end
end
Line 68: Line 73:
function Tab.new( args )
function Tab.new( args )
   return setmetatable( {
   return setmetatable( {
     selection = assert( args[1], 'missing required arg: [1]' ),
     selection = getRequiredArg( args, 1, 'Tab.new' ),
     label = args[2] or args[1]
     label = args[2] or args[1]
   }, Tab )
   }, Tab )
Line 87: Line 92:
function TabContent.new( args )
function TabContent.new( args )
   return setmetatable( {
   return setmetatable( {
     contentId = assert( args[1], 'missing required arg: [1]' ),
     contentId = getRequiredArg( args, 1, 'TabContent.new' ),
     content = args[2] or args[1],
     content = args[2] or args[1],
     args = args
     args = args