From 046ee0b6503d91f2ed37e8e316e017a029282e25 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Wed, 22 Apr 2026 09:56:18 +0200 Subject: [PATCH 1/9] refactor: create a component version of table2 --- .../commons/Components/Context/Table2.lua | 16 ++ lua/wikis/commons/Components/Table2/All.lua | 19 +++ lua/wikis/commons/Components/Table2/Cell.lua | 82 ++++++++++ .../commons/Components/Table2/CellHeader.lua | 115 ++++++++++++++ .../commons/Components/Table2/ColumnUtil.lua | 150 ++++++++++++++++++ lua/wikis/commons/Components/Table2/Row.lua | 122 ++++++++++++++ lua/wikis/commons/Components/Table2/Table.lua | 129 +++++++++++++++ .../commons/Components/Table2/TableBody.lua | 95 +++++++++++ .../commons/Components/Table2/TableHeader.lua | 43 +++++ lua/wikis/commons/Widget/Table2/Cell.lua | 15 -- .../commons/Widget/Table2/CellHeader.lua | 18 --- lua/wikis/commons/Widget/Table2/Row.lua | 8 - lua/wikis/commons/Widget/Table2/Table.lua | 28 ---- lua/wikis/commons/Widget/Table2/TableBody.lua | 3 - .../commons/Widget/Table2/TableHeader.lua | 3 - 15 files changed, 771 insertions(+), 75 deletions(-) create mode 100644 lua/wikis/commons/Components/Context/Table2.lua create mode 100644 lua/wikis/commons/Components/Table2/All.lua create mode 100644 lua/wikis/commons/Components/Table2/Cell.lua create mode 100644 lua/wikis/commons/Components/Table2/CellHeader.lua create mode 100644 lua/wikis/commons/Components/Table2/ColumnUtil.lua create mode 100644 lua/wikis/commons/Components/Table2/Row.lua create mode 100644 lua/wikis/commons/Components/Table2/Table.lua create mode 100644 lua/wikis/commons/Components/Table2/TableBody.lua create mode 100644 lua/wikis/commons/Components/Table2/TableHeader.lua diff --git a/lua/wikis/commons/Components/Context/Table2.lua b/lua/wikis/commons/Components/Context/Table2.lua new file mode 100644 index 00000000000..0e4df9eed45 --- /dev/null +++ b/lua/wikis/commons/Components/Context/Table2.lua @@ -0,0 +1,16 @@ +--- +-- @Liquipedia +-- page=Module:Components/Contexts/Table2 +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') +local Context = Lua.import('Module:Components/Context') + +return { + BodyStripe = Context.create(false), + ColumnContext = Context.create({}), + HeaderRowKind = Context.create('title'), + Section = Context.create('head'), +} diff --git a/lua/wikis/commons/Components/Table2/All.lua b/lua/wikis/commons/Components/Table2/All.lua new file mode 100644 index 00000000000..9d399ab99f1 --- /dev/null +++ b/lua/wikis/commons/Components/Table2/All.lua @@ -0,0 +1,19 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/All +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Components = {} + +local Lua = require('Module:Lua') + +Components.Table = Lua.import('Module:Components/Table2/Table') +Components.TableHeader = Lua.import('Module:Components/Table2/TableHeader') +Components.TableBody = Lua.import('Module:Components/Table2/TableBody') +Components.Row = Lua.import('Module:Components/Table2/Row') +Components.CellHeader = Lua.import('Module:Components/Table2/CellHeader') +Components.Cell = Lua.import('Module:Components/Table2/Cell') + +return Components diff --git a/lua/wikis/commons/Components/Table2/Cell.lua b/lua/wikis/commons/Components/Table2/Cell.lua new file mode 100644 index 00000000000..63e65a2400a --- /dev/null +++ b/lua/wikis/commons/Components/Table2/Cell.lua @@ -0,0 +1,82 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/Cell +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') + +local Component = Lua.import('Module:Components/Component') +local Context = Lua.import('Module:Components/Context') + +local Html = Lua.import('Module:Components/Html') +local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') +local ColumnUtil = Lua.import('Module:Components/Table2/ColumnUtil') + +---@class Table2CellProps +---@field children Renderable[]? +---@field align ('left'|'right'|'center')? +---@field shrink (string|number|boolean)? +---@field nowrap (string|number|boolean)? +---@field width string? +---@field minWidth string? +---@field maxWidth string? +---@field colspan integer|string? +---@field rowspan integer|string? +---@field columnIndex integer|string? +---@field classes string[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? + +---@param props Table2CellProps +---@return Renderable +local function Table2Cell(props, context) + local columns = Context.read(context, Table2Contexts.ColumnContext) + + -- Skip context lookups and property merging if there are no column definitions + if not columns then + return Html.Td{ + attributes = ColumnUtil.buildCellAttributes( + props.align, + props.nowrap, + props.shrink, + props.attributes + ), + classes = props.classes, + children = props.children, + } + end + + local columnDef + local columnIndex = ColumnUtil.getColumnIndex(props.columnIndex, nil) + + if columns[columnIndex] then + columnDef = columns[columnIndex] + end + + local mergedProps = ColumnUtil.mergeProps(props, columnDef) + + local css = ColumnUtil.buildCss(mergedProps.width, mergedProps.minWidth, mergedProps.maxWidth, mergedProps.css) + + local attributes = ColumnUtil.buildCellAttributes( + mergedProps.align, + mergedProps.nowrap, + mergedProps.shrink, + ColumnUtil.buildAttributes(mergedProps) + ) + + return Html.Td{ + classes = mergedProps.classes, + css = css, + attributes = attributes, + children = mergedProps.children, + } +end + +return Component.component( + Table2Cell, + { + nowrap = true, + } +) diff --git a/lua/wikis/commons/Components/Table2/CellHeader.lua b/lua/wikis/commons/Components/Table2/CellHeader.lua new file mode 100644 index 00000000000..34f7226cc58 --- /dev/null +++ b/lua/wikis/commons/Components/Table2/CellHeader.lua @@ -0,0 +1,115 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/CellHeader +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') + +local Component = Lua.import('Module:Components/Component') +local Context = Lua.import('Module:Components/Context') + +local Logic = Lua.import('Module:Logic') + +local Html = Lua.import('Module:Components/Html') +local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') +local ColumnUtil = Lua.import('Module:Components/Table2/ColumnUtil') + +---@class Table2CellHeaderProps +---@field children Renderable[]? +---@field section 'head'|'body'|'subhead'? +---@field align ('left'|'right'|'center')? +---@field shrink (string|number|boolean)? +---@field nowrap (string|number|boolean)? +---@field width string? +---@field minWidth string? +---@field maxWidth string? +---@field unsortable (string|number|boolean)? +---@field sortType string? +---@field classes string[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? +---@field colspan integer|string? +---@field rowspan integer|string? +---@field columnIndex integer|string? + +---@param props Table2CellHeaderProps +---@return Renderable +local function Table2CellHeader(props, context) + local columns = Context.read(context, Table2Contexts.ColumnContext) + local section = props.section or Context.read(context, Table2Contexts.Section) + + local children = props.children + if section == 'subhead' then + children = {Html.Div{ + classes = {'table2__subheader-cell'}, + children = props.children, + }} + end + + -- Skip context lookups and property merging if there are no column definitions + if not columns then + local align = props.align + local attributes = props.attributes or {} + if align == 'right' or align == 'center' then + attributes['data-align'] = align + end + if Logic.readBool(props.unsortable) then + attributes.class = 'unsortable' + end + + attributes = ColumnUtil.buildCellAttributes( + props.align, + props.nowrap, + props.shrink, + attributes + ) + + return Html.Th{ + attributes = attributes, + children = children, + } + end + + local columnDef + local columnIndex = ColumnUtil.getColumnIndex(props.columnIndex, nil) + + if columns[columnIndex] then + columnDef = columns[columnIndex] + end + + local mergedProps = ColumnUtil.mergeProps(props, columnDef) + + local attributes = ColumnUtil.buildAttributes(mergedProps, { + sortType = function(attrs, cellProps) + if cellProps.sortType then + attrs['data-sort-type'] = cellProps.sortType + end + end, + }) + + if Logic.readBool(mergedProps.unsortable) then + attributes.class = 'unsortable' + end + + local css = ColumnUtil.buildCss(mergedProps.width, mergedProps.minWidth, mergedProps.maxWidth, mergedProps.css) + + attributes = ColumnUtil.buildCellAttributes( + mergedProps.align, + mergedProps.nowrap, + mergedProps.shrink, + attributes + ) + + return Html.Th{ + classes = mergedProps.classes, + css = css, + attributes = attributes, + children = children, + } +end + +return Component.component( + Table2CellHeader +) diff --git a/lua/wikis/commons/Components/Table2/ColumnUtil.lua b/lua/wikis/commons/Components/Table2/ColumnUtil.lua new file mode 100644 index 00000000000..8a555592eb2 --- /dev/null +++ b/lua/wikis/commons/Components/Table2/ColumnUtil.lua @@ -0,0 +1,150 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/ColumnUtil +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') + +local Array = Lua.import('Module:Array') +local Logic = Lua.import('Module:Logic') +local MathUtil = Lua.import('Module:MathUtil') +local Table = Lua.import('Module:Table') +local WidgetUtil = Lua.import('Module:Widget/Util') + +local ColumnUtil = {} + +---Gets the column index for this cell +---@param columnIndexProp integer|string? - explicit column index from props +---@param columnIndexContext integer|string? - implicit column index from context +---@return integer +function ColumnUtil.getColumnIndex(columnIndexProp, columnIndexContext) + local index = MathUtil.toInteger(columnIndexProp) or MathUtil.toInteger(columnIndexContext) + return index or 1 +end + +---Merges column definition properties with cell properties +---Cell props take precedence over column props +---Uses lazy merging: only creates merged table when column def has inheritable properties +---@param cellProps table +---@param columnDef table? +---@return table mergedProps +function ColumnUtil.mergeProps(cellProps, columnDef) + if not columnDef then + return cellProps + end + + local inheritableProps = { + 'align', 'shrink', 'nowrap', 'width', 'minWidth', 'maxWidth', + 'sortType', 'unsortable', + } + + local hasInheritableProps = false + for _, prop in ipairs(inheritableProps) do + if columnDef[prop] ~= nil then + hasInheritableProps = true + break + end + end + + local hasCss = columnDef.css ~= nil + local hasClasses = columnDef.classes ~= nil + local hasAttributes = columnDef.attributes ~= nil + + if not hasInheritableProps and not hasCss and not hasClasses and not hasAttributes then + return cellProps + end + + local merged = Table.copy(cellProps or {}) + + if hasInheritableProps then + Array.forEach(inheritableProps, function(prop) + if merged[prop] == nil and columnDef[prop] ~= nil then + merged[prop] = columnDef[prop] + end + end) + end + + if hasCss then + merged.css = Table.merge(columnDef.css, merged.css or {}) + end + + if hasClasses then + merged.classes = WidgetUtil.collect(columnDef.classes, merged.classes) + end + + if hasAttributes then + merged.attributes = Table.merge(columnDef.attributes, merged.attributes or {}) + end + + return merged +end + +---Builds CSS rules for sizing +---@param width string? +---@param minWidth string? +---@param maxWidth string? +---@param existingCss table? +---@return table css +function ColumnUtil.buildCss(width, minWidth, maxWidth, existingCss) + if not width and not minWidth and not maxWidth then + return existingCss or {} + end + + return Table.merge(existingCss or {}, { + width = width, + ['min-width'] = minWidth, + ['max-width'] = maxWidth, + }) +end + +---Builds data attributes for cell styling (align, nowrap, shrink) +---@param align string? +---@param nowrap (string|number|boolean)? +---@param shrink (string|number|boolean)? +---@param existingAttributes table? +---@return table attributes +function ColumnUtil.buildCellAttributes(align, nowrap, shrink, existingAttributes) + local attrs = existingAttributes or {} + + if align == 'right' or align == 'center' then + attrs['data-align'] = align + end + + if Logic.readBool(nowrap) then + attrs['data-nowrap'] = '' + end + + if Logic.readBool(shrink) then + attrs['data-shrink'] = '' + end + + return attrs +end + +---Builds HTML attributes for cells and headers +---@param mergedProps table - merged cell/header properties +---@param additionalAttributeBuilders {[string]: function}? - optional callbacks for additional attributes +---@return table attributes +function ColumnUtil.buildAttributes(mergedProps, additionalAttributeBuilders) + local attributes = mergedProps.attributes or {} + + if mergedProps.colspan then + attributes.colspan = MathUtil.toInteger(mergedProps.colspan) or mergedProps.colspan + end + + if mergedProps.rowspan then + attributes.rowspan = MathUtil.toInteger(mergedProps.rowspan) or mergedProps.rowspan + end + + if additionalAttributeBuilders then + Table.iter.forEachPair(additionalAttributeBuilders, function(key, builder) + builder(attributes, mergedProps) + end) + end + + return attributes +end + +return ColumnUtil diff --git a/lua/wikis/commons/Components/Table2/Row.lua b/lua/wikis/commons/Components/Table2/Row.lua new file mode 100644 index 00000000000..a1cc373f020 --- /dev/null +++ b/lua/wikis/commons/Components/Table2/Row.lua @@ -0,0 +1,122 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/Row +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') +local Component = Lua.import('Module:Components/Component') +local Context = Lua.import('Module:Components/Context') + +local Array = Lua.import('Module:Array') +local Logic = Lua.import('Module:Logic') +local MathUtil = Lua.import('Module:MathUtil') + +local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') +local Table2Cell = Lua.import('Module:Components/Table2/Cell') +local Table2CellHeader = Lua.import('Module:Components/Table2/CellHeader') +local Table2CellHeaderMT = getmetatable(Table2CellHeader) +local WidgetUtil = Lua.import('Module:Widget/Util') +local Html = Lua.import('Module:Components/Html') + +---@class Table2RowProps +---@field children Renderable[]? +---@field section 'head'|'body'|'subhead'? +---@field classes string[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? +---@field highlighted (string|number|boolean)? + +---@param props Table2RowProps +---@param context Context +---@return Renderable +local function Table2Row(props, context) + local section = props.section or Context.read(context, Table2Contexts.Section) + local headerRowKind = Context.read(context, Table2Contexts.HeaderRowKind) + local bodyStripe = Context.read(context, Table2Contexts.BodyStripe) + + local sectionClass = 'table2__row--body' + if section == 'head' or section == 'subhead' then + sectionClass = 'table2__row--head' + end + + local kindClass + if section == 'head' then + if headerRowKind == 'title' then + kindClass = 'table2__row--head-title' + elseif headerRowKind == 'columns' then + kindClass = 'table2__row--head-columns' + end + end + + local stripeClass + if section == 'body' then + if bodyStripe == 'odd' then + stripeClass = 'table2__row--odd' + elseif bodyStripe == 'even' then + stripeClass = 'table2__row--even' + end + end + + local highlightClass + if section == 'body' and Logic.readBool(props.highlighted) then + highlightClass = 'table2__row--highlighted' + end + + local children = props.children or {} + + local columns = Context.read(context, Table2Contexts.ColumnContext) + if section == 'subhead' and columns and #children == 1 and getmetatable(children[1]) == Table2CellHeaderMT then + local singleCell = children[1] --[[@as Table2CellHeader]] + if singleCell.props.colspan == nil then + singleCell.props.colspan = #columns + end + end + + local columnIndex = 1 + local indexedChildren = Array.map(children, function(child) + if getmetatable(child) == getmetatable(Table2Cell) or getmetatable(child) == Table2CellHeaderMT then + local cellChild = child --[[@as Table2Cell|Table2CellHeader]] + local explicitIndex = MathUtil.toInteger(cellChild.props.columnIndex) + if explicitIndex and explicitIndex >= 1 then + columnIndex = math.max(columnIndex, explicitIndex) + elseif cellChild.props.columnIndex == nil then + cellChild.props.columnIndex = columnIndex + end + + local span = MathUtil.toInteger(cellChild.props.colspan) or 1 + if span < 1 then + span = 1 + end + columnIndex = columnIndex + span + return cellChild + end + return child + end) + + local trChildren = indexedChildren + if section == 'subhead' then + trChildren = Array.map(trChildren, function(child) + if getmetatable(child) == Table2CellHeaderMT then + return Context.Provider{ + def = Table2Contexts.Section, + value = 'subhead', + children = {child}, + } + end + return child + end) + end + + return Html.Tr{ + classes = WidgetUtil.collect(sectionClass, kindClass, stripeClass, highlightClass, props.classes), + css = props.css, + attributes = props.attributes, + children = trChildren, + } +end + +return Component.component( + Table2Row +) diff --git a/lua/wikis/commons/Components/Table2/Table.lua b/lua/wikis/commons/Components/Table2/Table.lua new file mode 100644 index 00000000000..e4dc539e426 --- /dev/null +++ b/lua/wikis/commons/Components/Table2/Table.lua @@ -0,0 +1,129 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/Table +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') +local Component = Lua.import('Module:Components/Component') +local Context = Lua.import('Module:Components/Context') + +local Array = Lua.import('Module:Array') +local Logic = Lua.import('Module:Logic') + +local WidgetUtil = Lua.import('Module:Widget/Util') +local Html = Lua.import('Module:Components/Html') +local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') + +---@class Table2ColumnDef +---@field align 'left'|'right'|'center'? +---@field shrink (string|number|boolean)? +---@field nowrap (string|number|boolean)? +---@field width string? +---@field minWidth string? +---@field maxWidth string? +---@field sortType string? +---@field unsortable (string|number|boolean)? +---@field css {[string]: string|number|nil}? +---@field classes string[]? +---@field attributes {[string]: any}? + +---@class Table2Props +---@field children Renderable[]? +---@field variant 'generic'|'themed'? +---@field sortable (string|number|boolean)? +---@field striped (string|number|boolean)? +---@field caption Renderable|Renderable[]? +---@field title Renderable|Renderable[]? +---@field footer Renderable|Renderable[]? +---@field classes string[]? +---@field tableClasses string[]? +---@field columns Table2ColumnDef[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? +---@field tableAttributes {[string]: any}? + +---@param props Table2Props +---@param context Context +---@return Renderable[] +local function Table2(props, context) + if props.columns and #props.columns > 0 then + Array.forEach(props.columns, function(columnDef, columnIndex) + assert(not (Logic.readBool(columnDef.shrink) and columnDef.width), + 'Table2: Column ' .. columnIndex .. ' - Column definition cannot have both shrink and width properties') + end) + end + + local variant = props.variant + local wrapperClasses = WidgetUtil.collect('table2', 'table2--' .. variant, props.classes) + + local tableClasses = WidgetUtil.collect( + 'table2__table', + Logic.readBool(props.sortable) and 'sortable' or nil, + props.tableClasses + ) + + local captionNode = props.caption and Html.Div{ + classes = {'table2__caption'}, + children = props.caption, + } or nil + + local titleNode = props.title and Html.Div{ + classes = {'table2__title'}, + children = props.title, + } or nil + + local tableChildren = props.children + if props.columns and #props.columns > 0 then + tableChildren = {Context.Provider{ + def = Table2Contexts.ColumnContext, + value = props.columns, + children = tableChildren, + }} + end + + if Logic.readBool(props.striped) then + tableChildren = {Context.Provider{ + def = Table2Contexts.BodyStripe, + value = true, + children = tableChildren, + }} + end + + local tableNode = Html.Table{ + attributes = props.tableAttributes, + classes = tableClasses, + children = tableChildren, + } + + local containerNode = Html.Div{ + classes = {'table2__container'}, + children = {tableNode}, + } + + local footerNode = props.footer and Html.Div{ + classes = {'table2__footer'}, + children = props.footer, + } or nil + + local tableWrapperNode = Html.Div{ + classes = wrapperClasses, + css = props.css, + attributes = props.attributes, + children = WidgetUtil.collect(titleNode, containerNode, footerNode), + } + + return WidgetUtil.collect(captionNode, tableWrapperNode) +end + +return Component.component( + Table2, + { + variant = 'generic', + sortable = false, + striped = true, + classes = {}, + columns = {}, + } +) diff --git a/lua/wikis/commons/Components/Table2/TableBody.lua b/lua/wikis/commons/Components/Table2/TableBody.lua new file mode 100644 index 00000000000..680fa7baf4b --- /dev/null +++ b/lua/wikis/commons/Components/Table2/TableBody.lua @@ -0,0 +1,95 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/TableBody +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') + +local Array = Lua.import('Module:Array') +local Component = Lua.import('Module:Components/Component') +local Context = Lua.import('Module:Components/Context') +local FnUtil = Lua.import('Module:FnUtil') +local MathUtil = Lua.import('Module:MathUtil') + +local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') +local Table2Cell = Lua.import('Module:Components/Table2/Cell') +local Table2CellHeader = Lua.import('Module:Components/Table2/CellHeader') +local Table2Row = Lua.import('Module:Components/Table2/Row') + +---@class Table2BodyProps +---@field children Renderable[]? + +---@param props Table2BodyProps +---@param context Context +---@return Renderable +local function Table2Body(props, context) + local children = props.children or {} + + local stripeEnabled = Context.read(context, Table2Contexts.BodyStripe) + if stripeEnabled == nil then + return Context.Provider{ + def = Table2Contexts.Section, + value = 'body', + children = children, + } + end + + local stripedChildren = {} + local stripe = 'even' + local groupRemaining = 0 + + local function toggleStripe() + stripe = stripe == 'even' and 'odd' or 'even' + end + + ---@param row VNode + local getRowMaxRowspan = FnUtil.memoize(function(row) + local rowChildren = (row and row.props and row.props.children) or {} + local maxRowspan = 1 + + Array.forEach(rowChildren, function(child) + local childMt = getmetatable(child) + if childMt == getmetatable(Table2Cell) or childMt == getmetatable(Table2CellHeader) then + local rowspan = MathUtil.toInteger(child.props.rowspan) or 1 + rowspan = math.max(rowspan, 1) + maxRowspan = math.max(maxRowspan, rowspan) + end + end) + + return maxRowspan + end) + + Array.forEach(children, function(child) + if getmetatable(child) == getmetatable(Table2Row) then + ---@cast child VNode + if groupRemaining == 0 then + toggleStripe() + end + + local maxRowspan = getRowMaxRowspan(child) + groupRemaining = math.max(groupRemaining, maxRowspan) + + table.insert(stripedChildren, Context.Provider{ + def = Table2Contexts.BodyStripe, + value = stripe, + children = {child}, + }) + + groupRemaining = groupRemaining - 1 + else + table.insert(stripedChildren, child) + end + end) + + return Context.Provider{ + def = Table2Contexts.Section, + value = 'body', + children = stripedChildren, + } +end + +return Component.component( + Table2Body +) diff --git a/lua/wikis/commons/Components/Table2/TableHeader.lua b/lua/wikis/commons/Components/Table2/TableHeader.lua new file mode 100644 index 00000000000..3165c1fb97f --- /dev/null +++ b/lua/wikis/commons/Components/Table2/TableHeader.lua @@ -0,0 +1,43 @@ +--- +-- @Liquipedia +-- page=Module:Components/Table2/TableHeader +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') + +local Array = Lua.import('Module:Array') +local Context = Lua.import('Module:Components/Context') +local Component = Lua.import('Module:Components/Component') + +local Table2Row = Lua.import('Module:Components/Table2/Row') +local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') + +---@class Table2HeaderProps +---@field children Renderable[]? + +---@param props Table2HeaderProps +---@param context Context +---@return Renderable +local function Table2Header(props, context) + local rowCount = 0 + local children = Array.map(props.children or {}, function(child) + if getmetatable(child) == getmetatable(Table2Row) then + rowCount = rowCount + 1 + local kind = rowCount == 1 and 'title' or 'columns' + child = Context.Provider{def = Table2Contexts.HeaderRowKind, value = kind, children = {child}} + end + return child + end) + + return Context.Provider{ + def = Table2Contexts.Section, + value = 'head', + children = children, + } +end + +return Component.component( + Table2Header +) diff --git a/lua/wikis/commons/Widget/Table2/Cell.lua b/lua/wikis/commons/Widget/Table2/Cell.lua index 2b5bd267f50..2bd0ca08cc9 100644 --- a/lua/wikis/commons/Widget/Table2/Cell.lua +++ b/lua/wikis/commons/Widget/Table2/Cell.lua @@ -14,21 +14,6 @@ local HtmlWidgets = Lua.import('Module:Widget/Html/All') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ----@class Table2CellProps ----@field children Renderable[]? ----@field align ('left'|'right'|'center')? ----@field shrink (string|number|boolean)? ----@field nowrap (string|number|boolean)? ----@field width string? ----@field minWidth string? ----@field maxWidth string? ----@field colspan integer|string? ----@field rowspan integer|string? ----@field columnIndex integer|string? ----@field classes string[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? - ---@class Table2Cell: Widget ---@operator call(Table2CellProps): Table2Cell ---@field props Table2CellProps diff --git a/lua/wikis/commons/Widget/Table2/CellHeader.lua b/lua/wikis/commons/Widget/Table2/CellHeader.lua index 2e4a7547156..d2f9533ff87 100644 --- a/lua/wikis/commons/Widget/Table2/CellHeader.lua +++ b/lua/wikis/commons/Widget/Table2/CellHeader.lua @@ -15,24 +15,6 @@ local HtmlWidgets = Lua.import('Module:Widget/Html/All') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ----@class Table2CellHeaderProps ----@field children Renderable[]? ----@field section 'head'|'body'|'subhead'? ----@field align ('left'|'right'|'center')? ----@field shrink (string|number|boolean)? ----@field nowrap (string|number|boolean)? ----@field width string? ----@field minWidth string? ----@field maxWidth string? ----@field unsortable (string|number|boolean)? ----@field sortType string? ----@field classes string[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? ----@field colspan integer|string? ----@field rowspan integer|string? ----@field columnIndex integer|string? - ---@class Table2CellHeader: Widget ---@operator call(Table2CellHeaderProps): Table2CellHeader ---@field props Table2CellHeaderProps diff --git a/lua/wikis/commons/Widget/Table2/Row.lua b/lua/wikis/commons/Widget/Table2/Row.lua index d3521447da8..255853e373d 100644 --- a/lua/wikis/commons/Widget/Table2/Row.lua +++ b/lua/wikis/commons/Widget/Table2/Row.lua @@ -19,14 +19,6 @@ local Table2CellHeader = Lua.import('Module:Widget/Table2/CellHeader') local WidgetUtil = Lua.import('Module:Widget/Util') local HtmlWidgets = Lua.import('Module:Widget/Html/All') ----@class Table2RowProps ----@field children Renderable[]? ----@field section 'head'|'body'|'subhead'? ----@field classes string[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? ----@field highlighted (string|number|boolean)? - ---@class Table2Row: Widget ---@operator call(Table2RowProps): Table2Row ---@field props Table2RowProps diff --git a/lua/wikis/commons/Widget/Table2/Table.lua b/lua/wikis/commons/Widget/Table2/Table.lua index d05bdce3e26..6e6bd7b2155 100644 --- a/lua/wikis/commons/Widget/Table2/Table.lua +++ b/lua/wikis/commons/Widget/Table2/Table.lua @@ -16,34 +16,6 @@ local WidgetUtil = Lua.import('Module:Widget/Util') local HtmlWidgets = Lua.import('Module:Widget/Html/All') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') ----@class Table2ColumnDef ----@field align 'left'|'right'|'center'? ----@field shrink (string|number|boolean)? ----@field nowrap (string|number|boolean)? ----@field width string? ----@field minWidth string? ----@field maxWidth string? ----@field sortType string? ----@field unsortable (string|number|boolean)? ----@field css {[string]: string|number|nil}? ----@field classes string[]? ----@field attributes {[string]: any}? - ----@class Table2Props ----@field children Renderable[]? ----@field variant 'generic'|'themed'? ----@field sortable (string|number|boolean)? ----@field striped (string|number|boolean)? ----@field caption Renderable|Renderable[]? ----@field title Renderable|Renderable[]? ----@field footer Renderable|Renderable[]? ----@field classes string[]? ----@field tableClasses string[]? ----@field columns Table2ColumnDef[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? ----@field tableAttributes {[string]: any}? - ---@class Table2: Widget ---@operator call(Table2Props): Table2 ---@field props Table2Props diff --git a/lua/wikis/commons/Widget/Table2/TableBody.lua b/lua/wikis/commons/Widget/Table2/TableBody.lua index f1ff55f8c23..7f85cd866c9 100644 --- a/lua/wikis/commons/Widget/Table2/TableBody.lua +++ b/lua/wikis/commons/Widget/Table2/TableBody.lua @@ -17,9 +17,6 @@ local Table2Cell = Lua.import('Module:Widget/Table2/Cell') local Table2CellHeader = Lua.import('Module:Widget/Table2/CellHeader') local Table2Row = Lua.import('Module:Widget/Table2/Row') ----@class Table2BodyProps ----@field children Renderable[]? - ---@class Table2Body: Widget ---@operator call(Table2BodyProps): Table2Body ---@field props Table2BodyProps diff --git a/lua/wikis/commons/Widget/Table2/TableHeader.lua b/lua/wikis/commons/Widget/Table2/TableHeader.lua index b4d9b3b1d9f..b18410fae54 100644 --- a/lua/wikis/commons/Widget/Table2/TableHeader.lua +++ b/lua/wikis/commons/Widget/Table2/TableHeader.lua @@ -14,9 +14,6 @@ local Widget = Lua.import('Module:Widget') local Table2Row = Lua.import('Module:Widget/Table2/Row') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') ----@class Table2HeaderProps ----@field children Renderable[]? - ---@class Table2Header: Widget ---@operator call(Table2HeaderProps): Table2Header ---@field props Table2HeaderProps From 326638f649fff88de959b4622b7a3ff6c0fa5109 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Wed, 22 Apr 2026 10:24:37 +0200 Subject: [PATCH 2/9] correct folder name --- lua/wikis/commons/Components/{Context => Contexts}/Table2.lua | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lua/wikis/commons/Components/{Context => Contexts}/Table2.lua (100%) diff --git a/lua/wikis/commons/Components/Context/Table2.lua b/lua/wikis/commons/Components/Contexts/Table2.lua similarity index 100% rename from lua/wikis/commons/Components/Context/Table2.lua rename to lua/wikis/commons/Components/Contexts/Table2.lua From 38604306ae4868ec511a5c1e6e1d88ac2c32954c Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 4 May 2026 17:02:22 +0200 Subject: [PATCH 3/9] change to update the existing table2 instead --- .../commons/Components/Contexts/Table2.lua | 16 -- lua/wikis/commons/Components/Table2/All.lua | 19 -- lua/wikis/commons/Components/Table2/Cell.lua | 82 -------- .../commons/Components/Table2/CellHeader.lua | 115 ----------- .../commons/Components/Table2/ColumnUtil.lua | 150 -------------- lua/wikis/commons/Components/Table2/Row.lua | 122 ----------- lua/wikis/commons/Components/Table2/Table.lua | 129 ------------ .../commons/Components/Table2/TableBody.lua | 95 --------- .../commons/Components/Table2/TableHeader.lua | 43 ---- lua/wikis/commons/Widget/Contexts/Table2.lua | 12 +- lua/wikis/commons/Widget/Table2/All.lua | 16 +- lua/wikis/commons/Widget/Table2/Cell.lua | 48 +++-- .../commons/Widget/Table2/CellHeader.lua | 52 +++-- lua/wikis/commons/Widget/Table2/Row.lua | 189 ++++++++++-------- lua/wikis/commons/Widget/Table2/Table.lua | 84 +++++--- lua/wikis/commons/Widget/Table2/TableBody.lua | 53 ++--- .../commons/Widget/Table2/TableHeader.lua | 31 ++- 17 files changed, 274 insertions(+), 982 deletions(-) delete mode 100644 lua/wikis/commons/Components/Contexts/Table2.lua delete mode 100644 lua/wikis/commons/Components/Table2/All.lua delete mode 100644 lua/wikis/commons/Components/Table2/Cell.lua delete mode 100644 lua/wikis/commons/Components/Table2/CellHeader.lua delete mode 100644 lua/wikis/commons/Components/Table2/ColumnUtil.lua delete mode 100644 lua/wikis/commons/Components/Table2/Row.lua delete mode 100644 lua/wikis/commons/Components/Table2/Table.lua delete mode 100644 lua/wikis/commons/Components/Table2/TableBody.lua delete mode 100644 lua/wikis/commons/Components/Table2/TableHeader.lua diff --git a/lua/wikis/commons/Components/Contexts/Table2.lua b/lua/wikis/commons/Components/Contexts/Table2.lua deleted file mode 100644 index 0e4df9eed45..00000000000 --- a/lua/wikis/commons/Components/Contexts/Table2.lua +++ /dev/null @@ -1,16 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Contexts/Table2 --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') -local Context = Lua.import('Module:Components/Context') - -return { - BodyStripe = Context.create(false), - ColumnContext = Context.create({}), - HeaderRowKind = Context.create('title'), - Section = Context.create('head'), -} diff --git a/lua/wikis/commons/Components/Table2/All.lua b/lua/wikis/commons/Components/Table2/All.lua deleted file mode 100644 index 9d399ab99f1..00000000000 --- a/lua/wikis/commons/Components/Table2/All.lua +++ /dev/null @@ -1,19 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/All --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Components = {} - -local Lua = require('Module:Lua') - -Components.Table = Lua.import('Module:Components/Table2/Table') -Components.TableHeader = Lua.import('Module:Components/Table2/TableHeader') -Components.TableBody = Lua.import('Module:Components/Table2/TableBody') -Components.Row = Lua.import('Module:Components/Table2/Row') -Components.CellHeader = Lua.import('Module:Components/Table2/CellHeader') -Components.Cell = Lua.import('Module:Components/Table2/Cell') - -return Components diff --git a/lua/wikis/commons/Components/Table2/Cell.lua b/lua/wikis/commons/Components/Table2/Cell.lua deleted file mode 100644 index 63e65a2400a..00000000000 --- a/lua/wikis/commons/Components/Table2/Cell.lua +++ /dev/null @@ -1,82 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/Cell --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') - -local Component = Lua.import('Module:Components/Component') -local Context = Lua.import('Module:Components/Context') - -local Html = Lua.import('Module:Components/Html') -local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') -local ColumnUtil = Lua.import('Module:Components/Table2/ColumnUtil') - ----@class Table2CellProps ----@field children Renderable[]? ----@field align ('left'|'right'|'center')? ----@field shrink (string|number|boolean)? ----@field nowrap (string|number|boolean)? ----@field width string? ----@field minWidth string? ----@field maxWidth string? ----@field colspan integer|string? ----@field rowspan integer|string? ----@field columnIndex integer|string? ----@field classes string[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? - ----@param props Table2CellProps ----@return Renderable -local function Table2Cell(props, context) - local columns = Context.read(context, Table2Contexts.ColumnContext) - - -- Skip context lookups and property merging if there are no column definitions - if not columns then - return Html.Td{ - attributes = ColumnUtil.buildCellAttributes( - props.align, - props.nowrap, - props.shrink, - props.attributes - ), - classes = props.classes, - children = props.children, - } - end - - local columnDef - local columnIndex = ColumnUtil.getColumnIndex(props.columnIndex, nil) - - if columns[columnIndex] then - columnDef = columns[columnIndex] - end - - local mergedProps = ColumnUtil.mergeProps(props, columnDef) - - local css = ColumnUtil.buildCss(mergedProps.width, mergedProps.minWidth, mergedProps.maxWidth, mergedProps.css) - - local attributes = ColumnUtil.buildCellAttributes( - mergedProps.align, - mergedProps.nowrap, - mergedProps.shrink, - ColumnUtil.buildAttributes(mergedProps) - ) - - return Html.Td{ - classes = mergedProps.classes, - css = css, - attributes = attributes, - children = mergedProps.children, - } -end - -return Component.component( - Table2Cell, - { - nowrap = true, - } -) diff --git a/lua/wikis/commons/Components/Table2/CellHeader.lua b/lua/wikis/commons/Components/Table2/CellHeader.lua deleted file mode 100644 index 34f7226cc58..00000000000 --- a/lua/wikis/commons/Components/Table2/CellHeader.lua +++ /dev/null @@ -1,115 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/CellHeader --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') - -local Component = Lua.import('Module:Components/Component') -local Context = Lua.import('Module:Components/Context') - -local Logic = Lua.import('Module:Logic') - -local Html = Lua.import('Module:Components/Html') -local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') -local ColumnUtil = Lua.import('Module:Components/Table2/ColumnUtil') - ----@class Table2CellHeaderProps ----@field children Renderable[]? ----@field section 'head'|'body'|'subhead'? ----@field align ('left'|'right'|'center')? ----@field shrink (string|number|boolean)? ----@field nowrap (string|number|boolean)? ----@field width string? ----@field minWidth string? ----@field maxWidth string? ----@field unsortable (string|number|boolean)? ----@field sortType string? ----@field classes string[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? ----@field colspan integer|string? ----@field rowspan integer|string? ----@field columnIndex integer|string? - ----@param props Table2CellHeaderProps ----@return Renderable -local function Table2CellHeader(props, context) - local columns = Context.read(context, Table2Contexts.ColumnContext) - local section = props.section or Context.read(context, Table2Contexts.Section) - - local children = props.children - if section == 'subhead' then - children = {Html.Div{ - classes = {'table2__subheader-cell'}, - children = props.children, - }} - end - - -- Skip context lookups and property merging if there are no column definitions - if not columns then - local align = props.align - local attributes = props.attributes or {} - if align == 'right' or align == 'center' then - attributes['data-align'] = align - end - if Logic.readBool(props.unsortable) then - attributes.class = 'unsortable' - end - - attributes = ColumnUtil.buildCellAttributes( - props.align, - props.nowrap, - props.shrink, - attributes - ) - - return Html.Th{ - attributes = attributes, - children = children, - } - end - - local columnDef - local columnIndex = ColumnUtil.getColumnIndex(props.columnIndex, nil) - - if columns[columnIndex] then - columnDef = columns[columnIndex] - end - - local mergedProps = ColumnUtil.mergeProps(props, columnDef) - - local attributes = ColumnUtil.buildAttributes(mergedProps, { - sortType = function(attrs, cellProps) - if cellProps.sortType then - attrs['data-sort-type'] = cellProps.sortType - end - end, - }) - - if Logic.readBool(mergedProps.unsortable) then - attributes.class = 'unsortable' - end - - local css = ColumnUtil.buildCss(mergedProps.width, mergedProps.minWidth, mergedProps.maxWidth, mergedProps.css) - - attributes = ColumnUtil.buildCellAttributes( - mergedProps.align, - mergedProps.nowrap, - mergedProps.shrink, - attributes - ) - - return Html.Th{ - classes = mergedProps.classes, - css = css, - attributes = attributes, - children = children, - } -end - -return Component.component( - Table2CellHeader -) diff --git a/lua/wikis/commons/Components/Table2/ColumnUtil.lua b/lua/wikis/commons/Components/Table2/ColumnUtil.lua deleted file mode 100644 index 8a555592eb2..00000000000 --- a/lua/wikis/commons/Components/Table2/ColumnUtil.lua +++ /dev/null @@ -1,150 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/ColumnUtil --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') - -local Array = Lua.import('Module:Array') -local Logic = Lua.import('Module:Logic') -local MathUtil = Lua.import('Module:MathUtil') -local Table = Lua.import('Module:Table') -local WidgetUtil = Lua.import('Module:Widget/Util') - -local ColumnUtil = {} - ----Gets the column index for this cell ----@param columnIndexProp integer|string? - explicit column index from props ----@param columnIndexContext integer|string? - implicit column index from context ----@return integer -function ColumnUtil.getColumnIndex(columnIndexProp, columnIndexContext) - local index = MathUtil.toInteger(columnIndexProp) or MathUtil.toInteger(columnIndexContext) - return index or 1 -end - ----Merges column definition properties with cell properties ----Cell props take precedence over column props ----Uses lazy merging: only creates merged table when column def has inheritable properties ----@param cellProps table ----@param columnDef table? ----@return table mergedProps -function ColumnUtil.mergeProps(cellProps, columnDef) - if not columnDef then - return cellProps - end - - local inheritableProps = { - 'align', 'shrink', 'nowrap', 'width', 'minWidth', 'maxWidth', - 'sortType', 'unsortable', - } - - local hasInheritableProps = false - for _, prop in ipairs(inheritableProps) do - if columnDef[prop] ~= nil then - hasInheritableProps = true - break - end - end - - local hasCss = columnDef.css ~= nil - local hasClasses = columnDef.classes ~= nil - local hasAttributes = columnDef.attributes ~= nil - - if not hasInheritableProps and not hasCss and not hasClasses and not hasAttributes then - return cellProps - end - - local merged = Table.copy(cellProps or {}) - - if hasInheritableProps then - Array.forEach(inheritableProps, function(prop) - if merged[prop] == nil and columnDef[prop] ~= nil then - merged[prop] = columnDef[prop] - end - end) - end - - if hasCss then - merged.css = Table.merge(columnDef.css, merged.css or {}) - end - - if hasClasses then - merged.classes = WidgetUtil.collect(columnDef.classes, merged.classes) - end - - if hasAttributes then - merged.attributes = Table.merge(columnDef.attributes, merged.attributes or {}) - end - - return merged -end - ----Builds CSS rules for sizing ----@param width string? ----@param minWidth string? ----@param maxWidth string? ----@param existingCss table? ----@return table css -function ColumnUtil.buildCss(width, minWidth, maxWidth, existingCss) - if not width and not minWidth and not maxWidth then - return existingCss or {} - end - - return Table.merge(existingCss or {}, { - width = width, - ['min-width'] = minWidth, - ['max-width'] = maxWidth, - }) -end - ----Builds data attributes for cell styling (align, nowrap, shrink) ----@param align string? ----@param nowrap (string|number|boolean)? ----@param shrink (string|number|boolean)? ----@param existingAttributes table? ----@return table attributes -function ColumnUtil.buildCellAttributes(align, nowrap, shrink, existingAttributes) - local attrs = existingAttributes or {} - - if align == 'right' or align == 'center' then - attrs['data-align'] = align - end - - if Logic.readBool(nowrap) then - attrs['data-nowrap'] = '' - end - - if Logic.readBool(shrink) then - attrs['data-shrink'] = '' - end - - return attrs -end - ----Builds HTML attributes for cells and headers ----@param mergedProps table - merged cell/header properties ----@param additionalAttributeBuilders {[string]: function}? - optional callbacks for additional attributes ----@return table attributes -function ColumnUtil.buildAttributes(mergedProps, additionalAttributeBuilders) - local attributes = mergedProps.attributes or {} - - if mergedProps.colspan then - attributes.colspan = MathUtil.toInteger(mergedProps.colspan) or mergedProps.colspan - end - - if mergedProps.rowspan then - attributes.rowspan = MathUtil.toInteger(mergedProps.rowspan) or mergedProps.rowspan - end - - if additionalAttributeBuilders then - Table.iter.forEachPair(additionalAttributeBuilders, function(key, builder) - builder(attributes, mergedProps) - end) - end - - return attributes -end - -return ColumnUtil diff --git a/lua/wikis/commons/Components/Table2/Row.lua b/lua/wikis/commons/Components/Table2/Row.lua deleted file mode 100644 index a1cc373f020..00000000000 --- a/lua/wikis/commons/Components/Table2/Row.lua +++ /dev/null @@ -1,122 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/Row --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') -local Component = Lua.import('Module:Components/Component') -local Context = Lua.import('Module:Components/Context') - -local Array = Lua.import('Module:Array') -local Logic = Lua.import('Module:Logic') -local MathUtil = Lua.import('Module:MathUtil') - -local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') -local Table2Cell = Lua.import('Module:Components/Table2/Cell') -local Table2CellHeader = Lua.import('Module:Components/Table2/CellHeader') -local Table2CellHeaderMT = getmetatable(Table2CellHeader) -local WidgetUtil = Lua.import('Module:Widget/Util') -local Html = Lua.import('Module:Components/Html') - ----@class Table2RowProps ----@field children Renderable[]? ----@field section 'head'|'body'|'subhead'? ----@field classes string[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? ----@field highlighted (string|number|boolean)? - ----@param props Table2RowProps ----@param context Context ----@return Renderable -local function Table2Row(props, context) - local section = props.section or Context.read(context, Table2Contexts.Section) - local headerRowKind = Context.read(context, Table2Contexts.HeaderRowKind) - local bodyStripe = Context.read(context, Table2Contexts.BodyStripe) - - local sectionClass = 'table2__row--body' - if section == 'head' or section == 'subhead' then - sectionClass = 'table2__row--head' - end - - local kindClass - if section == 'head' then - if headerRowKind == 'title' then - kindClass = 'table2__row--head-title' - elseif headerRowKind == 'columns' then - kindClass = 'table2__row--head-columns' - end - end - - local stripeClass - if section == 'body' then - if bodyStripe == 'odd' then - stripeClass = 'table2__row--odd' - elseif bodyStripe == 'even' then - stripeClass = 'table2__row--even' - end - end - - local highlightClass - if section == 'body' and Logic.readBool(props.highlighted) then - highlightClass = 'table2__row--highlighted' - end - - local children = props.children or {} - - local columns = Context.read(context, Table2Contexts.ColumnContext) - if section == 'subhead' and columns and #children == 1 and getmetatable(children[1]) == Table2CellHeaderMT then - local singleCell = children[1] --[[@as Table2CellHeader]] - if singleCell.props.colspan == nil then - singleCell.props.colspan = #columns - end - end - - local columnIndex = 1 - local indexedChildren = Array.map(children, function(child) - if getmetatable(child) == getmetatable(Table2Cell) or getmetatable(child) == Table2CellHeaderMT then - local cellChild = child --[[@as Table2Cell|Table2CellHeader]] - local explicitIndex = MathUtil.toInteger(cellChild.props.columnIndex) - if explicitIndex and explicitIndex >= 1 then - columnIndex = math.max(columnIndex, explicitIndex) - elseif cellChild.props.columnIndex == nil then - cellChild.props.columnIndex = columnIndex - end - - local span = MathUtil.toInteger(cellChild.props.colspan) or 1 - if span < 1 then - span = 1 - end - columnIndex = columnIndex + span - return cellChild - end - return child - end) - - local trChildren = indexedChildren - if section == 'subhead' then - trChildren = Array.map(trChildren, function(child) - if getmetatable(child) == Table2CellHeaderMT then - return Context.Provider{ - def = Table2Contexts.Section, - value = 'subhead', - children = {child}, - } - end - return child - end) - end - - return Html.Tr{ - classes = WidgetUtil.collect(sectionClass, kindClass, stripeClass, highlightClass, props.classes), - css = props.css, - attributes = props.attributes, - children = trChildren, - } -end - -return Component.component( - Table2Row -) diff --git a/lua/wikis/commons/Components/Table2/Table.lua b/lua/wikis/commons/Components/Table2/Table.lua deleted file mode 100644 index e4dc539e426..00000000000 --- a/lua/wikis/commons/Components/Table2/Table.lua +++ /dev/null @@ -1,129 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/Table --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') -local Component = Lua.import('Module:Components/Component') -local Context = Lua.import('Module:Components/Context') - -local Array = Lua.import('Module:Array') -local Logic = Lua.import('Module:Logic') - -local WidgetUtil = Lua.import('Module:Widget/Util') -local Html = Lua.import('Module:Components/Html') -local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') - ----@class Table2ColumnDef ----@field align 'left'|'right'|'center'? ----@field shrink (string|number|boolean)? ----@field nowrap (string|number|boolean)? ----@field width string? ----@field minWidth string? ----@field maxWidth string? ----@field sortType string? ----@field unsortable (string|number|boolean)? ----@field css {[string]: string|number|nil}? ----@field classes string[]? ----@field attributes {[string]: any}? - ----@class Table2Props ----@field children Renderable[]? ----@field variant 'generic'|'themed'? ----@field sortable (string|number|boolean)? ----@field striped (string|number|boolean)? ----@field caption Renderable|Renderable[]? ----@field title Renderable|Renderable[]? ----@field footer Renderable|Renderable[]? ----@field classes string[]? ----@field tableClasses string[]? ----@field columns Table2ColumnDef[]? ----@field css {[string]: string|number|nil}? ----@field attributes {[string]: any}? ----@field tableAttributes {[string]: any}? - ----@param props Table2Props ----@param context Context ----@return Renderable[] -local function Table2(props, context) - if props.columns and #props.columns > 0 then - Array.forEach(props.columns, function(columnDef, columnIndex) - assert(not (Logic.readBool(columnDef.shrink) and columnDef.width), - 'Table2: Column ' .. columnIndex .. ' - Column definition cannot have both shrink and width properties') - end) - end - - local variant = props.variant - local wrapperClasses = WidgetUtil.collect('table2', 'table2--' .. variant, props.classes) - - local tableClasses = WidgetUtil.collect( - 'table2__table', - Logic.readBool(props.sortable) and 'sortable' or nil, - props.tableClasses - ) - - local captionNode = props.caption and Html.Div{ - classes = {'table2__caption'}, - children = props.caption, - } or nil - - local titleNode = props.title and Html.Div{ - classes = {'table2__title'}, - children = props.title, - } or nil - - local tableChildren = props.children - if props.columns and #props.columns > 0 then - tableChildren = {Context.Provider{ - def = Table2Contexts.ColumnContext, - value = props.columns, - children = tableChildren, - }} - end - - if Logic.readBool(props.striped) then - tableChildren = {Context.Provider{ - def = Table2Contexts.BodyStripe, - value = true, - children = tableChildren, - }} - end - - local tableNode = Html.Table{ - attributes = props.tableAttributes, - classes = tableClasses, - children = tableChildren, - } - - local containerNode = Html.Div{ - classes = {'table2__container'}, - children = {tableNode}, - } - - local footerNode = props.footer and Html.Div{ - classes = {'table2__footer'}, - children = props.footer, - } or nil - - local tableWrapperNode = Html.Div{ - classes = wrapperClasses, - css = props.css, - attributes = props.attributes, - children = WidgetUtil.collect(titleNode, containerNode, footerNode), - } - - return WidgetUtil.collect(captionNode, tableWrapperNode) -end - -return Component.component( - Table2, - { - variant = 'generic', - sortable = false, - striped = true, - classes = {}, - columns = {}, - } -) diff --git a/lua/wikis/commons/Components/Table2/TableBody.lua b/lua/wikis/commons/Components/Table2/TableBody.lua deleted file mode 100644 index 680fa7baf4b..00000000000 --- a/lua/wikis/commons/Components/Table2/TableBody.lua +++ /dev/null @@ -1,95 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/TableBody --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') - -local Array = Lua.import('Module:Array') -local Component = Lua.import('Module:Components/Component') -local Context = Lua.import('Module:Components/Context') -local FnUtil = Lua.import('Module:FnUtil') -local MathUtil = Lua.import('Module:MathUtil') - -local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') -local Table2Cell = Lua.import('Module:Components/Table2/Cell') -local Table2CellHeader = Lua.import('Module:Components/Table2/CellHeader') -local Table2Row = Lua.import('Module:Components/Table2/Row') - ----@class Table2BodyProps ----@field children Renderable[]? - ----@param props Table2BodyProps ----@param context Context ----@return Renderable -local function Table2Body(props, context) - local children = props.children or {} - - local stripeEnabled = Context.read(context, Table2Contexts.BodyStripe) - if stripeEnabled == nil then - return Context.Provider{ - def = Table2Contexts.Section, - value = 'body', - children = children, - } - end - - local stripedChildren = {} - local stripe = 'even' - local groupRemaining = 0 - - local function toggleStripe() - stripe = stripe == 'even' and 'odd' or 'even' - end - - ---@param row VNode - local getRowMaxRowspan = FnUtil.memoize(function(row) - local rowChildren = (row and row.props and row.props.children) or {} - local maxRowspan = 1 - - Array.forEach(rowChildren, function(child) - local childMt = getmetatable(child) - if childMt == getmetatable(Table2Cell) or childMt == getmetatable(Table2CellHeader) then - local rowspan = MathUtil.toInteger(child.props.rowspan) or 1 - rowspan = math.max(rowspan, 1) - maxRowspan = math.max(maxRowspan, rowspan) - end - end) - - return maxRowspan - end) - - Array.forEach(children, function(child) - if getmetatable(child) == getmetatable(Table2Row) then - ---@cast child VNode - if groupRemaining == 0 then - toggleStripe() - end - - local maxRowspan = getRowMaxRowspan(child) - groupRemaining = math.max(groupRemaining, maxRowspan) - - table.insert(stripedChildren, Context.Provider{ - def = Table2Contexts.BodyStripe, - value = stripe, - children = {child}, - }) - - groupRemaining = groupRemaining - 1 - else - table.insert(stripedChildren, child) - end - end) - - return Context.Provider{ - def = Table2Contexts.Section, - value = 'body', - children = stripedChildren, - } -end - -return Component.component( - Table2Body -) diff --git a/lua/wikis/commons/Components/Table2/TableHeader.lua b/lua/wikis/commons/Components/Table2/TableHeader.lua deleted file mode 100644 index 3165c1fb97f..00000000000 --- a/lua/wikis/commons/Components/Table2/TableHeader.lua +++ /dev/null @@ -1,43 +0,0 @@ ---- --- @Liquipedia --- page=Module:Components/Table2/TableHeader --- --- Please see https://github.com/Liquipedia/Lua-Modules to contribute --- - -local Lua = require('Module:Lua') - -local Array = Lua.import('Module:Array') -local Context = Lua.import('Module:Components/Context') -local Component = Lua.import('Module:Components/Component') - -local Table2Row = Lua.import('Module:Components/Table2/Row') -local Table2Contexts = Lua.import('Module:Components/Contexts/Table2') - ----@class Table2HeaderProps ----@field children Renderable[]? - ----@param props Table2HeaderProps ----@param context Context ----@return Renderable -local function Table2Header(props, context) - local rowCount = 0 - local children = Array.map(props.children or {}, function(child) - if getmetatable(child) == getmetatable(Table2Row) then - rowCount = rowCount + 1 - local kind = rowCount == 1 and 'title' or 'columns' - child = Context.Provider{def = Table2Contexts.HeaderRowKind, value = kind, children = {child}} - end - return child - end) - - return Context.Provider{ - def = Table2Contexts.Section, - value = 'head', - children = children, - } -end - -return Component.component( - Table2Header -) diff --git a/lua/wikis/commons/Widget/Contexts/Table2.lua b/lua/wikis/commons/Widget/Contexts/Table2.lua index f4a63f1535b..dfe30ac9247 100644 --- a/lua/wikis/commons/Widget/Contexts/Table2.lua +++ b/lua/wikis/commons/Widget/Contexts/Table2.lua @@ -6,13 +6,11 @@ -- local Lua = require('Module:Lua') - -local Class = Lua.import('Module:Class') -local Context = Lua.import('Module:Widget/Context') +local Context = Lua.import('Module:Widget/ComponentContext') return { - BodyStripe = Class.new(Context), - ColumnContext = Class.new(Context), - HeaderRowKind = Class.new(Context), - Section = Class.new(Context), + BodyStripe = Context.create(false), + ColumnContext = Context.create({}), + HeaderRowKind = Context.create('title'), + Section = Context.create('head'), } diff --git a/lua/wikis/commons/Widget/Table2/All.lua b/lua/wikis/commons/Widget/Table2/All.lua index a2b7bed306f..181941e515c 100644 --- a/lua/wikis/commons/Widget/Table2/All.lua +++ b/lua/wikis/commons/Widget/Table2/All.lua @@ -5,15 +5,15 @@ -- Please see https://github.com/Liquipedia/Lua-Modules to contribute -- -local Widgets = {} +local Components = {} local Lua = require('Module:Lua') -Widgets.Table = Lua.import('Module:Widget/Table2/Table') -Widgets.TableHeader = Lua.import('Module:Widget/Table2/TableHeader') -Widgets.TableBody = Lua.import('Module:Widget/Table2/TableBody') -Widgets.Row = Lua.import('Module:Widget/Table2/Row') -Widgets.CellHeader = Lua.import('Module:Widget/Table2/CellHeader') -Widgets.Cell = Lua.import('Module:Widget/Table2/Cell') +Components.Table = Lua.import('Module:Widget/Table2/Table') +Components.TableHeader = Lua.import('Module:Widget/Table2/TableHeader') +Components.TableBody = Lua.import('Module:Widget/Table2/TableBody') +Components.Row = Lua.import('Module:Widget/Table2/Row') +Components.CellHeader = Lua.import('Module:Widget/Table2/CellHeader') +Components.Cell = Lua.import('Module:Widget/Table2/Cell') -return Widgets +return Components diff --git a/lua/wikis/commons/Widget/Table2/Cell.lua b/lua/wikis/commons/Widget/Table2/Cell.lua index 2bd0ca08cc9..a58c893c796 100644 --- a/lua/wikis/commons/Widget/Table2/Cell.lua +++ b/lua/wikis/commons/Widget/Table2/Cell.lua @@ -7,31 +7,36 @@ local Lua = require('Module:Lua') -local Class = Lua.import('Module:Class') +local Component = Lua.import('Module:Widget/Component') +local Context = Lua.import('Module:Widget/ComponentContext') -local Widget = Lua.import('Module:Widget') -local HtmlWidgets = Lua.import('Module:Widget/Html/All') +local Html = Lua.import('Module:Widget/Html') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ----@class Table2Cell: Widget ----@operator call(Table2CellProps): Table2Cell ----@field props Table2CellProps -local Table2Cell = Class.new(Widget) +---@class Table2CellProps +---@field children Renderable[]? +---@field align ('left'|'right'|'center')? +---@field shrink (string|number|boolean)? +---@field nowrap (string|number|boolean)? +---@field width string? +---@field minWidth string? +---@field maxWidth string? +---@field colspan integer|string? +---@field rowspan integer|string? +---@field columnIndex integer|string? +---@field classes string[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? -Table2Cell.defaultProps = { - nowrap = true, -} - ----@return Widget -function Table2Cell:render() - local props = self.props - - local columns = self:useContext(Table2Contexts.ColumnContext) +---@param props Table2CellProps +---@return Renderable +local function Table2Cell(props, context) + local columns = Context.read(context, Table2Contexts.ColumnContext) -- Skip context lookups and property merging if there are no column definitions if not columns then - return HtmlWidgets.Td{ + return Html.Td{ attributes = ColumnUtil.buildCellAttributes( props.align, props.nowrap, @@ -61,7 +66,7 @@ function Table2Cell:render() ColumnUtil.buildAttributes(mergedProps) ) - return HtmlWidgets.Td{ + return Html.Td{ classes = mergedProps.classes, css = css, attributes = attributes, @@ -69,4 +74,9 @@ function Table2Cell:render() } end -return Table2Cell +return Component.component( + Table2Cell, + { + nowrap = true, + } +) diff --git a/lua/wikis/commons/Widget/Table2/CellHeader.lua b/lua/wikis/commons/Widget/Table2/CellHeader.lua index d2f9533ff87..38122d7a01d 100644 --- a/lua/wikis/commons/Widget/Table2/CellHeader.lua +++ b/lua/wikis/commons/Widget/Table2/CellHeader.lua @@ -7,30 +7,42 @@ local Lua = require('Module:Lua') -local Class = Lua.import('Module:Class') +local Component = Lua.import('Module:Widget/Component') +local Context = Lua.import('Module:Widget/ComponentContext') + local Logic = Lua.import('Module:Logic') -local Widget = Lua.import('Module:Widget') -local HtmlWidgets = Lua.import('Module:Widget/Html/All') +local Html = Lua.import('Module:Widget/Html') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ----@class Table2CellHeader: Widget ----@operator call(Table2CellHeaderProps): Table2CellHeader ----@field props Table2CellHeaderProps -local Table2CellHeader = Class.new(Widget) - ----@return Widget -function Table2CellHeader:render() - local props = self.props - - local columns = self:useContext(Table2Contexts.ColumnContext) - local section = props.section or self:useContext(Table2Contexts.Section) +---@class Table2CellHeaderProps +---@field children Renderable[]? +---@field section 'head'|'body'|'subhead'? +---@field align ('left'|'right'|'center')? +---@field shrink (string|number|boolean)? +---@field nowrap (string|number|boolean)? +---@field width string? +---@field minWidth string? +---@field maxWidth string? +---@field unsortable (string|number|boolean)? +---@field sortType string? +---@field classes string[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? +---@field colspan integer|string? +---@field rowspan integer|string? +---@field columnIndex integer|string? + +---@param props Table2CellHeaderProps +---@return Renderable +local function Table2CellHeader(props, context) + local columns = Context.read(context, Table2Contexts.ColumnContext) + local section = props.section or Context.read(context, Table2Contexts.Section) local children = props.children - if section == 'subhead' then - children = {HtmlWidgets.Div{ + children = {Html.Div{ classes = {'table2__subheader-cell'}, children = props.children, }} @@ -54,7 +66,7 @@ function Table2CellHeader:render() attributes ) - return HtmlWidgets.Th{ + return Html.Th{ attributes = attributes, children = children, } @@ -90,7 +102,7 @@ function Table2CellHeader:render() attributes ) - return HtmlWidgets.Th{ + return Html.Th{ classes = mergedProps.classes, css = css, attributes = attributes, @@ -98,4 +110,6 @@ function Table2CellHeader:render() } end -return Table2CellHeader +return Component.component( + Table2CellHeader +) diff --git a/lua/wikis/commons/Widget/Table2/Row.lua b/lua/wikis/commons/Widget/Table2/Row.lua index 255853e373d..29ec9df6655 100644 --- a/lua/wikis/commons/Widget/Table2/Row.lua +++ b/lua/wikis/commons/Widget/Table2/Row.lua @@ -1,114 +1,129 @@ --- -- @Liquipedia --- page=Module:Widget/Table2/Row +-- page=Module:Widget/Table2/Table -- -- Please see https://github.com/Liquipedia/Lua-Modules to contribute -- local Lua = require('Module:Lua') +local Component = Lua.import('Module:Widget/Component') +local Context = Lua.import('Module:Widget/ComponentContext') local Array = Lua.import('Module:Array') -local Class = Lua.import('Module:Class') local Logic = Lua.import('Module:Logic') -local MathUtil = Lua.import('Module:MathUtil') -local Widget = Lua.import('Module:Widget') -local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') -local Table2Cell = Lua.import('Module:Widget/Table2/Cell') -local Table2CellHeader = Lua.import('Module:Widget/Table2/CellHeader') local WidgetUtil = Lua.import('Module:Widget/Util') -local HtmlWidgets = Lua.import('Module:Widget/Html/All') - ----@class Table2Row: Widget ----@operator call(Table2RowProps): Table2Row ----@field props Table2RowProps -local Table2Row = Class.new(Widget) - ----@return Widget -function Table2Row:render() - local props = self.props - local section = props.section or self:useContext(Table2Contexts.Section) - local headerRowKind = self:useContext(Table2Contexts.HeaderRowKind) - local bodyStripe = self:useContext(Table2Contexts.BodyStripe) - - local sectionClass = 'table2__row--body' - if section == 'head' or section == 'subhead' then - sectionClass = 'table2__row--head' - end +local Html = Lua.import('Module:Widget/Html') +local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') - local kindClass - if section == 'head' then - if headerRowKind == 'title' then - kindClass = 'table2__row--head-title' - elseif headerRowKind == 'columns' then - kindClass = 'table2__row--head-columns' - end +---@class Table2ColumnDef +---@field align 'left'|'right'|'center'? +---@field shrink (string|number|boolean)? +---@field nowrap (string|number|boolean)? +---@field width string? +---@field minWidth string? +---@field maxWidth string? +---@field sortType string? +---@field unsortable (string|number|boolean)? +---@field css {[string]: string|number|nil}? +---@field classes string[]? +---@field attributes {[string]: any}? + +---@class Table2Props +---@field children Renderable[]? +---@field variant 'generic'|'themed'? +---@field sortable (string|number|boolean)? +---@field striped (string|number|boolean)? +---@field caption Renderable|Renderable[]? +---@field title Renderable|Renderable[]? +---@field footer Renderable|Renderable[]? +---@field classes string[]? +---@field tableClasses string[]? +---@field columns Table2ColumnDef[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? +---@field tableAttributes {[string]: any}? + +---@param props Table2Props +---@param context Context +---@return Renderable[] +local function Table2(props, context) + if props.columns and #props.columns > 0 then + Array.forEach(props.columns, function(columnDef, columnIndex) + assert(not (Logic.readBool(columnDef.shrink) and columnDef.width), + 'Table2: Column ' .. columnIndex .. ' - Column definition cannot have both shrink and width properties') + end) end - local stripeClass - if section == 'body' then - if bodyStripe == 'odd' then - stripeClass = 'table2__row--odd' - elseif bodyStripe == 'even' then - stripeClass = 'table2__row--even' - end + local variant = props.variant + local wrapperClasses = WidgetUtil.collect('table2', 'table2--' .. variant, props.classes) + + local tableClasses = WidgetUtil.collect( + 'table2__table', + Logic.readBool(props.sortable) and 'sortable' or nil, + props.tableClasses + ) + + local captionNode = props.caption and Html.Div{ + classes = {'table2__caption'}, + children = props.caption, + } or nil + + local titleNode = props.title and Html.Div{ + classes = {'table2__title'}, + children = props.title, + } or nil + + local tableChildren = props.children + if props.columns and #props.columns > 0 then + tableChildren = {Context.Provider{ + def = Table2Contexts.ColumnContext, + value = props.columns, + children = tableChildren, + }} end - local highlightClass - if section == 'body' and Logic.readBool(props.highlighted) then - highlightClass = 'table2__row--highlighted' + if Logic.readBool(props.striped) then + tableChildren = {Context.Provider{ + def = Table2Contexts.BodyStripe, + value = true, + children = tableChildren, + }} end - local children = props.children or {} + local tableNode = Html.Table{ + attributes = props.tableAttributes, + classes = tableClasses, + children = tableChildren, + } - local columns = self:useContext(Table2Contexts.ColumnContext) - if section == 'subhead' and columns and #children == 1 and Class.instanceOf(children[1], Table2CellHeader) then - local singleCell = children[1] --[[@as Table2CellHeader]] - if singleCell.props.colspan == nil then - singleCell.props.colspan = #columns - end - end + local containerNode = Html.Div{ + classes = {'table2__container'}, + children = {tableNode}, + } - local columnIndex = 1 - local indexedChildren = Array.map(children, function(child) - if Class.instanceOf(child, Table2Cell) or Class.instanceOf(child, Table2CellHeader) then - local cellChild = child --[[@as Table2Cell|Table2CellHeader]] - local explicitIndex = MathUtil.toInteger(cellChild.props.columnIndex) - if explicitIndex and explicitIndex >= 1 then - columnIndex = math.max(columnIndex, explicitIndex) - elseif cellChild.props.columnIndex == nil then - cellChild.props.columnIndex = columnIndex - end - - local span = MathUtil.toInteger(cellChild.props.colspan) or 1 - if span < 1 then - span = 1 - end - columnIndex = columnIndex + span - return cellChild - end - return child - end) - - local trChildren = indexedChildren - if section == 'subhead' then - trChildren = Array.map(trChildren, function(child) - if Class.instanceOf(child, Table2CellHeader) then - return Table2Contexts.Section{ - value = 'subhead', - children = {child}, - } - end - return child - end) - end + local footerNode = props.footer and Html.Div{ + classes = {'table2__footer'}, + children = props.footer, + } or nil - return HtmlWidgets.Tr{ - classes = WidgetUtil.collect(sectionClass, kindClass, stripeClass, highlightClass, props.classes), + local tableWrapperNode = Html.Div{ + classes = wrapperClasses, css = props.css, attributes = props.attributes, - children = trChildren, + children = WidgetUtil.collect(titleNode, containerNode, footerNode), } + + return WidgetUtil.collect(captionNode, tableWrapperNode) end -return Table2Row +return Component.component( + Table2, + { + variant = 'generic', + sortable = false, + striped = true, + classes = {}, + columns = {}, + } +) diff --git a/lua/wikis/commons/Widget/Table2/Table.lua b/lua/wikis/commons/Widget/Table2/Table.lua index 6e6bd7b2155..29ec9df6655 100644 --- a/lua/wikis/commons/Widget/Table2/Table.lua +++ b/lua/wikis/commons/Widget/Table2/Table.lua @@ -6,33 +6,48 @@ -- local Lua = require('Module:Lua') +local Component = Lua.import('Module:Widget/Component') +local Context = Lua.import('Module:Widget/ComponentContext') local Array = Lua.import('Module:Array') -local Class = Lua.import('Module:Class') local Logic = Lua.import('Module:Logic') -local Widget = Lua.import('Module:Widget') local WidgetUtil = Lua.import('Module:Widget/Util') -local HtmlWidgets = Lua.import('Module:Widget/Html/All') +local Html = Lua.import('Module:Widget/Html') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') ----@class Table2: Widget ----@operator call(Table2Props): Table2 ----@field props Table2Props -local Table2 = Class.new(Widget) - -Table2.defaultProps = { - variant = 'generic', - sortable = false, - striped = true, - classes = {}, - columns = {}, -} - ----@return Widget[] -function Table2:render() - local props = self.props - +---@class Table2ColumnDef +---@field align 'left'|'right'|'center'? +---@field shrink (string|number|boolean)? +---@field nowrap (string|number|boolean)? +---@field width string? +---@field minWidth string? +---@field maxWidth string? +---@field sortType string? +---@field unsortable (string|number|boolean)? +---@field css {[string]: string|number|nil}? +---@field classes string[]? +---@field attributes {[string]: any}? + +---@class Table2Props +---@field children Renderable[]? +---@field variant 'generic'|'themed'? +---@field sortable (string|number|boolean)? +---@field striped (string|number|boolean)? +---@field caption Renderable|Renderable[]? +---@field title Renderable|Renderable[]? +---@field footer Renderable|Renderable[]? +---@field classes string[]? +---@field tableClasses string[]? +---@field columns Table2ColumnDef[]? +---@field css {[string]: string|number|nil}? +---@field attributes {[string]: any}? +---@field tableAttributes {[string]: any}? + +---@param props Table2Props +---@param context Context +---@return Renderable[] +local function Table2(props, context) if props.columns and #props.columns > 0 then Array.forEach(props.columns, function(columnDef, columnIndex) assert(not (Logic.readBool(columnDef.shrink) and columnDef.width), @@ -49,48 +64,50 @@ function Table2:render() props.tableClasses ) - local captionNode = props.caption and HtmlWidgets.Div{ + local captionNode = props.caption and Html.Div{ classes = {'table2__caption'}, children = props.caption, } or nil - local titleNode = props.title and HtmlWidgets.Div{ + local titleNode = props.title and Html.Div{ classes = {'table2__title'}, children = props.title, } or nil local tableChildren = props.children if props.columns and #props.columns > 0 then - tableChildren = {Table2Contexts.ColumnContext{ + tableChildren = {Context.Provider{ + def = Table2Contexts.ColumnContext, value = props.columns, children = tableChildren, }} end if Logic.readBool(props.striped) then - tableChildren = {Table2Contexts.BodyStripe{ + tableChildren = {Context.Provider{ + def = Table2Contexts.BodyStripe, value = true, children = tableChildren, }} end - local tableNode = HtmlWidgets.Table{ + local tableNode = Html.Table{ attributes = props.tableAttributes, classes = tableClasses, children = tableChildren, } - local containerNode = HtmlWidgets.Div{ + local containerNode = Html.Div{ classes = {'table2__container'}, children = {tableNode}, } - local footerNode = props.footer and HtmlWidgets.Div{ + local footerNode = props.footer and Html.Div{ classes = {'table2__footer'}, children = props.footer, } or nil - local tableWrapperNode = HtmlWidgets.Div{ + local tableWrapperNode = Html.Div{ classes = wrapperClasses, css = props.css, attributes = props.attributes, @@ -100,4 +117,13 @@ function Table2:render() return WidgetUtil.collect(captionNode, tableWrapperNode) end -return Table2 +return Component.component( + Table2, + { + variant = 'generic', + sortable = false, + striped = true, + classes = {}, + columns = {}, + } +) diff --git a/lua/wikis/commons/Widget/Table2/TableBody.lua b/lua/wikis/commons/Widget/Table2/TableBody.lua index 7f85cd866c9..d156f7df929 100644 --- a/lua/wikis/commons/Widget/Table2/TableBody.lua +++ b/lua/wikis/commons/Widget/Table2/TableBody.lua @@ -8,28 +8,29 @@ local Lua = require('Module:Lua') local Array = Lua.import('Module:Array') -local Class = Lua.import('Module:Class') +local Component = Lua.import('Module:Widget/Component') +local Context = Lua.import('Module:Widget/ComponentContext') +local FnUtil = Lua.import('Module:FnUtil') local MathUtil = Lua.import('Module:MathUtil') -local Widget = Lua.import('Module:Widget') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local Table2Cell = Lua.import('Module:Widget/Table2/Cell') local Table2CellHeader = Lua.import('Module:Widget/Table2/CellHeader') local Table2Row = Lua.import('Module:Widget/Table2/Row') ----@class Table2Body: Widget ----@operator call(Table2BodyProps): Table2Body ----@field props Table2BodyProps -local Table2Body = Class.new(Widget) +---@class Table2BodyProps +---@field children Renderable[]? ----@return Widget -function Table2Body:render() - local props = self.props +---@param props Table2BodyProps +---@param context Context +---@return Renderable +local function Table2Body(props, context) local children = props.children or {} - local stripeEnabled = self:useContext(Table2Contexts.BodyStripe) + local stripeEnabled = Context.read(context, Table2Contexts.BodyStripe) if stripeEnabled == nil then - return Table2Contexts.Section{ + return Context.Provider{ + def = Table2Contexts.Section, value = 'body', children = children, } @@ -43,30 +44,26 @@ function Table2Body:render() stripe = stripe == 'even' and 'odd' or 'even' end - local function getRowMaxRowspan(row) - if row and row._cachedMaxRowspan then - return row._cachedMaxRowspan - end - + ---@param row VNode + local getRowMaxRowspan = FnUtil.memoize(function(row) local rowChildren = (row and row.props and row.props.children) or {} local maxRowspan = 1 + Array.forEach(rowChildren, function(child) - if Class.instanceOf(child, Table2Cell) or Class.instanceOf(child, Table2CellHeader) then + local childMt = getmetatable(child) + if childMt == getmetatable(Table2Cell) or childMt == getmetatable(Table2CellHeader) then local rowspan = MathUtil.toInteger(child.props.rowspan) or 1 rowspan = math.max(rowspan, 1) maxRowspan = math.max(maxRowspan, rowspan) end end) - if row then - row._cachedMaxRowspan = maxRowspan - end - return maxRowspan - end + end) Array.forEach(children, function(child) - if Class.instanceOf(child, Table2Row) then + if getmetatable(child) == getmetatable(Table2Row) then + ---@cast child VNode if groupRemaining == 0 then toggleStripe() end @@ -74,7 +71,8 @@ function Table2Body:render() local maxRowspan = getRowMaxRowspan(child) groupRemaining = math.max(groupRemaining, maxRowspan) - table.insert(stripedChildren, Table2Contexts.BodyStripe{ + table.insert(stripedChildren, Context.Provider{ + def = Table2Contexts.BodyStripe, value = stripe, children = {child}, }) @@ -85,10 +83,13 @@ function Table2Body:render() end end) - return Table2Contexts.Section{ + return Context.Provider{ + def = Table2Contexts.Section, value = 'body', children = stripedChildren, } end -return Table2Body +return Component.component( + Table2Body +) diff --git a/lua/wikis/commons/Widget/Table2/TableHeader.lua b/lua/wikis/commons/Widget/Table2/TableHeader.lua index b18410fae54..8143d2029ea 100644 --- a/lua/wikis/commons/Widget/Table2/TableHeader.lua +++ b/lua/wikis/commons/Widget/Table2/TableHeader.lua @@ -8,37 +8,36 @@ local Lua = require('Module:Lua') local Array = Lua.import('Module:Array') -local Class = Lua.import('Module:Class') +local Context = Lua.import('Module:Widget/ComponentContext') +local Component = Lua.import('Module:Widget/Component') -local Widget = Lua.import('Module:Widget') local Table2Row = Lua.import('Module:Widget/Table2/Row') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') ----@class Table2Header: Widget ----@operator call(Table2HeaderProps): Table2Header ----@field props Table2HeaderProps -local Table2Header = Class.new(Widget) +---@class Table2HeaderProps +---@field children Renderable[]? ----@return Widget -function Table2Header:render() - local props = self.props +---@param props Table2HeaderProps +---@param context Context +---@return Renderable +local function Table2Header(props, context) local rowCount = 0 local children = Array.map(props.children or {}, function(child) - if Class.instanceOf(child, Table2Row) then + if getmetatable(child) == getmetatable(Table2Row) then rowCount = rowCount + 1 local kind = rowCount == 1 and 'title' or 'columns' - child = Table2Contexts.HeaderRowKind{ - value = kind, - children = {child}, - } + child = Context.Provider{def = Table2Contexts.HeaderRowKind, value = kind, children = {child}} end return child end) - return Table2Contexts.Section{ + return Context.Provider{ + def = Table2Contexts.Section, value = 'head', children = children, } end -return Table2Header +return Component.component( + Table2Header +) From 843119044e3caed982d137ad9be52077241453b3 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 4 May 2026 17:09:32 +0200 Subject: [PATCH 4/9] fix row --- lua/wikis/commons/Widget/Table2/Row.lua | 177 ++++++++++++------------ 1 file changed, 85 insertions(+), 92 deletions(-) diff --git a/lua/wikis/commons/Widget/Table2/Row.lua b/lua/wikis/commons/Widget/Table2/Row.lua index 29ec9df6655..787ad12350e 100644 --- a/lua/wikis/commons/Widget/Table2/Row.lua +++ b/lua/wikis/commons/Widget/Table2/Row.lua @@ -1,6 +1,6 @@ --- -- @Liquipedia --- page=Module:Widget/Table2/Table +-- page=Module:Widget/Table2/Row -- -- Please see https://github.com/Liquipedia/Lua-Modules to contribute -- @@ -11,119 +11,112 @@ local Context = Lua.import('Module:Widget/ComponentContext') local Array = Lua.import('Module:Array') local Logic = Lua.import('Module:Logic') +local MathUtil = Lua.import('Module:MathUtil') +local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') +local Table2Cell = Lua.import('Module:Widget/Table2/Cell') +local Table2CellHeader = Lua.import('Module:Widget/Table2/CellHeader') +local Table2CellHeaderMT = getmetatable(Table2CellHeader) local WidgetUtil = Lua.import('Module:Widget/Util') local Html = Lua.import('Module:Widget/Html') -local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') - ----@class Table2ColumnDef ----@field align 'left'|'right'|'center'? ----@field shrink (string|number|boolean)? ----@field nowrap (string|number|boolean)? ----@field width string? ----@field minWidth string? ----@field maxWidth string? ----@field sortType string? ----@field unsortable (string|number|boolean)? ----@field css {[string]: string|number|nil}? ----@field classes string[]? ----@field attributes {[string]: any}? ----@class Table2Props +---@class Table2RowProps ---@field children Renderable[]? ----@field variant 'generic'|'themed'? ----@field sortable (string|number|boolean)? ----@field striped (string|number|boolean)? ----@field caption Renderable|Renderable[]? ----@field title Renderable|Renderable[]? ----@field footer Renderable|Renderable[]? +---@field section 'head'|'body'|'subhead'? ---@field classes string[]? ----@field tableClasses string[]? ----@field columns Table2ColumnDef[]? ---@field css {[string]: string|number|nil}? ---@field attributes {[string]: any}? ----@field tableAttributes {[string]: any}? +---@field highlighted (string|number|boolean)? ----@param props Table2Props +---@param props Table2RowProps ---@param context Context ----@return Renderable[] -local function Table2(props, context) - if props.columns and #props.columns > 0 then - Array.forEach(props.columns, function(columnDef, columnIndex) - assert(not (Logic.readBool(columnDef.shrink) and columnDef.width), - 'Table2: Column ' .. columnIndex .. ' - Column definition cannot have both shrink and width properties') - end) +---@return Renderable +local function Table2Row(props, context) + local section = props.section or Context.read(context, Table2Contexts.Section) + local headerRowKind = Context.read(context, Table2Contexts.HeaderRowKind) + local bodyStripe = Context.read(context, Table2Contexts.BodyStripe) + + local sectionClass = 'table2__row--body' + if section == 'head' or section == 'subhead' then + sectionClass = 'table2__row--head' end - local variant = props.variant - local wrapperClasses = WidgetUtil.collect('table2', 'table2--' .. variant, props.classes) - - local tableClasses = WidgetUtil.collect( - 'table2__table', - Logic.readBool(props.sortable) and 'sortable' or nil, - props.tableClasses - ) - - local captionNode = props.caption and Html.Div{ - classes = {'table2__caption'}, - children = props.caption, - } or nil - - local titleNode = props.title and Html.Div{ - classes = {'table2__title'}, - children = props.title, - } or nil - - local tableChildren = props.children - if props.columns and #props.columns > 0 then - tableChildren = {Context.Provider{ - def = Table2Contexts.ColumnContext, - value = props.columns, - children = tableChildren, - }} + local kindClass + if section == 'head' then + if headerRowKind == 'title' then + kindClass = 'table2__row--head-title' + elseif headerRowKind == 'columns' then + kindClass = 'table2__row--head-columns' + end end - if Logic.readBool(props.striped) then - tableChildren = {Context.Provider{ - def = Table2Contexts.BodyStripe, - value = true, - children = tableChildren, - }} + local stripeClass + if section == 'body' then + if bodyStripe == 'odd' then + stripeClass = 'table2__row--odd' + elseif bodyStripe == 'even' then + stripeClass = 'table2__row--even' + end end - local tableNode = Html.Table{ - attributes = props.tableAttributes, - classes = tableClasses, - children = tableChildren, - } + local highlightClass + if section == 'body' and Logic.readBool(props.highlighted) then + highlightClass = 'table2__row--highlighted' + end - local containerNode = Html.Div{ - classes = {'table2__container'}, - children = {tableNode}, - } + local children = props.children or {} + + local columns = Context.read(context, Table2Contexts.ColumnContext) + if section == 'subhead' and columns and #children == 1 and getmetatable(children[1]) == Table2CellHeaderMT then + local singleCell = children[1] --[[@as Table2CellHeader]] + if singleCell.props.colspan == nil then + singleCell.props.colspan = #columns + end + end - local footerNode = props.footer and Html.Div{ - classes = {'table2__footer'}, - children = props.footer, - } or nil + local columnIndex = 1 + local indexedChildren = Array.map(children, function(child) + if getmetatable(child) == getmetatable(Table2Cell) or getmetatable(child) == Table2CellHeaderMT then + local cellChild = child --[[@as Table2Cell|Table2CellHeader]] + local explicitIndex = MathUtil.toInteger(cellChild.props.columnIndex) + if explicitIndex and explicitIndex >= 1 then + columnIndex = math.max(columnIndex, explicitIndex) + elseif cellChild.props.columnIndex == nil then + cellChild.props.columnIndex = columnIndex + end + + local span = MathUtil.toInteger(cellChild.props.colspan) or 1 + if span < 1 then + span = 1 + end + columnIndex = columnIndex + span + return cellChild + end + return child + end) + + local trChildren = indexedChildren + if section == 'subhead' then + trChildren = Array.map(trChildren, function(child) + if getmetatable(child) == Table2CellHeaderMT then + return Context.Provider{ + def = Table2Contexts.Section, + value = 'subhead', + children = {child}, + } + end + return child + end) + end - local tableWrapperNode = Html.Div{ - classes = wrapperClasses, + return Html.Tr{ + classes = WidgetUtil.collect(sectionClass, kindClass, stripeClass, highlightClass, props.classes), css = props.css, attributes = props.attributes, - children = WidgetUtil.collect(titleNode, containerNode, footerNode), + children = trChildren, } - - return WidgetUtil.collect(captionNode, tableWrapperNode) end return Component.component( - Table2, - { - variant = 'generic', - sortable = false, - striped = true, - classes = {}, - columns = {}, - } -) + Table2Row +) \ No newline at end of file From 57af813c15eb5fcb3bd1551523637de99e8e163f Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 4 May 2026 17:11:29 +0200 Subject: [PATCH 5/9] non-existing classes --- lua/wikis/commons/Widget/Table2/Row.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/wikis/commons/Widget/Table2/Row.lua b/lua/wikis/commons/Widget/Table2/Row.lua index 787ad12350e..03c3cf9fa51 100644 --- a/lua/wikis/commons/Widget/Table2/Row.lua +++ b/lua/wikis/commons/Widget/Table2/Row.lua @@ -68,7 +68,7 @@ local function Table2Row(props, context) local columns = Context.read(context, Table2Contexts.ColumnContext) if section == 'subhead' and columns and #children == 1 and getmetatable(children[1]) == Table2CellHeaderMT then - local singleCell = children[1] --[[@as Table2CellHeader]] + local singleCell = children[1] if singleCell.props.colspan == nil then singleCell.props.colspan = #columns end @@ -77,7 +77,7 @@ local function Table2Row(props, context) local columnIndex = 1 local indexedChildren = Array.map(children, function(child) if getmetatable(child) == getmetatable(Table2Cell) or getmetatable(child) == Table2CellHeaderMT then - local cellChild = child --[[@as Table2Cell|Table2CellHeader]] + local cellChild = child local explicitIndex = MathUtil.toInteger(cellChild.props.columnIndex) if explicitIndex and explicitIndex >= 1 then columnIndex = math.max(columnIndex, explicitIndex) From 0f504180e6530e6dc465d8c65d1acc1db253aa33 Mon Sep 17 00:00:00 2001 From: Rathoz <3426850+Rathoz@users.noreply.github.com> Date: Thu, 7 May 2026 09:02:38 +0000 Subject: [PATCH 6/9] chore: update visual snapshots --- lua/spec/snapshots/dota2 rankings.png | Bin 80699 -> 79861 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lua/spec/snapshots/dota2 rankings.png b/lua/spec/snapshots/dota2 rankings.png index 9e547b50925493e4aa23c0047ea549b2ecb70715..0db7e4f719d6269bb6bd7f7db71e6d475f637f2a 100644 GIT binary patch literal 79861 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 U<+ct)j(+s9inemLqQ$F!1Juhi@c;k- literal 80699 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 Date: Thu, 7 May 2026 15:43:58 +0200 Subject: [PATCH 7/9] fix some issues --- lua/wikis/commons/Widget/Component.lua | 10 +++++----- lua/wikis/commons/Widget/Contexts/Table2.lua | 2 +- lua/wikis/commons/Widget/Table2/Cell.lua | 4 ++-- lua/wikis/commons/Widget/Table2/CellHeader.lua | 4 ++-- lua/wikis/commons/Widget/Table2/Row.lua | 14 ++++++++++---- lua/wikis/commons/Widget/Table2/Table.lua | 2 +- lua/wikis/commons/Widget/Table2/TableBody.lua | 17 ++++++++++++----- lua/wikis/commons/Widget/Table2/TableHeader.lua | 3 ++- 8 files changed, 35 insertions(+), 21 deletions(-) diff --git a/lua/wikis/commons/Widget/Component.lua b/lua/wikis/commons/Widget/Component.lua index d69a28df5e7..03c02db0cd2 100644 --- a/lua/wikis/commons/Widget/Component.lua +++ b/lua/wikis/commons/Widget/Component.lua @@ -11,16 +11,16 @@ ---@alias Context { props: { parent: Context?, def: ContextDef, value: T } } ----@alias ContextNode VNode<{def: ContextDef, value: T, children: Renderable[]}> ----@alias HtmlNode VNode<{classes?: string[], css?: table, attributes?: table, children?: Renderable[]}> +---@alias ContextNode VNode<{def: ContextDef, value: T, children: Renderable|Renderable[]}> +---@alias HtmlNode VNode<{classes?: string[], css?: table, attributes?: table, children?: Renderable|Renderable[]}> ---@alias Renderable string|Html|Widget|number|VNode ---@alias ContextDef {defaultValue: T} ---@alias Component

fun(props?: P, context: Context?): VNode

----@alias ContextComponent Component<{def: ContextDef, value: T, children: Renderable[]}> ----@alias HtmlComponent Component<{classes?: string[], css?: table, attributes?: table, children?: Renderable[]}> +---@alias ContextComponent Component<{def: ContextDef, value: T, children?: Renderable|Renderable[]?}> +---@alias HtmlComponent Component<{classes?: string[], css?: table, attributes?: table, children?: Renderable|Renderable[]}> local Lua = require('Module:Lua') local Renderer = Lua.import('Module:Widget/Renderer') @@ -46,7 +46,7 @@ ComponentCore.ComponentMT = { props = props or {} -- Apply DefaultProps via lightweight metatable - -- Only shallow default props allowed + -- Only shallow default props allowed, or empty tables if self.defaultProps then setmetatable(props, { __index = self.defaultProps }) end diff --git a/lua/wikis/commons/Widget/Contexts/Table2.lua b/lua/wikis/commons/Widget/Contexts/Table2.lua index dfe30ac9247..043ad192834 100644 --- a/lua/wikis/commons/Widget/Contexts/Table2.lua +++ b/lua/wikis/commons/Widget/Contexts/Table2.lua @@ -9,7 +9,7 @@ local Lua = require('Module:Lua') local Context = Lua.import('Module:Widget/ComponentContext') return { - BodyStripe = Context.create(false), + BodyStripe = Context.create('disabled'), ColumnContext = Context.create({}), HeaderRowKind = Context.create('title'), Section = Context.create('head'), diff --git a/lua/wikis/commons/Widget/Table2/Cell.lua b/lua/wikis/commons/Widget/Table2/Cell.lua index a58c893c796..2929af345f0 100644 --- a/lua/wikis/commons/Widget/Table2/Cell.lua +++ b/lua/wikis/commons/Widget/Table2/Cell.lua @@ -15,7 +15,7 @@ local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ---@class Table2CellProps ----@field children Renderable[]? +---@field children? Renderable|Renderable[] ---@field align ('left'|'right'|'center')? ---@field shrink (string|number|boolean)? ---@field nowrap (string|number|boolean)? @@ -35,7 +35,7 @@ local function Table2Cell(props, context) local columns = Context.read(context, Table2Contexts.ColumnContext) -- Skip context lookups and property merging if there are no column definitions - if not columns then + if #columns == 0 then return Html.Td{ attributes = ColumnUtil.buildCellAttributes( props.align, diff --git a/lua/wikis/commons/Widget/Table2/CellHeader.lua b/lua/wikis/commons/Widget/Table2/CellHeader.lua index 38122d7a01d..2f4b5daa0c2 100644 --- a/lua/wikis/commons/Widget/Table2/CellHeader.lua +++ b/lua/wikis/commons/Widget/Table2/CellHeader.lua @@ -17,7 +17,7 @@ local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ---@class Table2CellHeaderProps ----@field children Renderable[]? +---@field children? Renderable|Renderable[] ---@field section 'head'|'body'|'subhead'? ---@field align ('left'|'right'|'center')? ---@field shrink (string|number|boolean)? @@ -49,7 +49,7 @@ local function Table2CellHeader(props, context) end -- Skip context lookups and property merging if there are no column definitions - if not columns then + if #columns == 0 then local align = props.align local attributes = props.attributes or {} if align == 'right' or align == 'center' then diff --git a/lua/wikis/commons/Widget/Table2/Row.lua b/lua/wikis/commons/Widget/Table2/Row.lua index 03c3cf9fa51..739478c2812 100644 --- a/lua/wikis/commons/Widget/Table2/Row.lua +++ b/lua/wikis/commons/Widget/Table2/Row.lua @@ -16,7 +16,6 @@ local MathUtil = Lua.import('Module:MathUtil') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local Table2Cell = Lua.import('Module:Widget/Table2/Cell') local Table2CellHeader = Lua.import('Module:Widget/Table2/CellHeader') -local Table2CellHeaderMT = getmetatable(Table2CellHeader) local WidgetUtil = Lua.import('Module:Widget/Util') local Html = Lua.import('Module:Widget/Html') @@ -67,7 +66,10 @@ local function Table2Row(props, context) local children = props.children or {} local columns = Context.read(context, Table2Contexts.ColumnContext) - if section == 'subhead' and columns and #children == 1 and getmetatable(children[1]) == Table2CellHeaderMT then + if section == 'subhead' and #columns > 0 and #children == 1 and + ---@diagnostic disable-next-line: undefined-field + type(children[1]) == 'table' and children[1].renderFn == Table2CellHeader.renderFn then + local singleCell = children[1] if singleCell.props.colspan == nil then singleCell.props.colspan = #columns @@ -76,7 +78,10 @@ local function Table2Row(props, context) local columnIndex = 1 local indexedChildren = Array.map(children, function(child) - if getmetatable(child) == getmetatable(Table2Cell) or getmetatable(child) == Table2CellHeaderMT then + if type(child) == 'table' and + ---@diagnostic disable-next-line: undefined-field + (child.renderFn == Table2Cell.renderFn or child.renderFn == Table2CellHeader.renderFn) then + local cellChild = child local explicitIndex = MathUtil.toInteger(cellChild.props.columnIndex) if explicitIndex and explicitIndex >= 1 then @@ -98,7 +103,8 @@ local function Table2Row(props, context) local trChildren = indexedChildren if section == 'subhead' then trChildren = Array.map(trChildren, function(child) - if getmetatable(child) == Table2CellHeaderMT then + ---@diagnostic disable-next-line: undefined-field + if type(child) == 'table' and child.renderFn == Table2Cell.renderFn then return Context.Provider{ def = Table2Contexts.Section, value = 'subhead', diff --git a/lua/wikis/commons/Widget/Table2/Table.lua b/lua/wikis/commons/Widget/Table2/Table.lua index 29ec9df6655..c5c49622d60 100644 --- a/lua/wikis/commons/Widget/Table2/Table.lua +++ b/lua/wikis/commons/Widget/Table2/Table.lua @@ -30,7 +30,7 @@ local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') ---@field attributes {[string]: any}? ---@class Table2Props ----@field children Renderable[]? +---@field children? Renderable|Renderable[] ---@field variant 'generic'|'themed'? ---@field sortable (string|number|boolean)? ---@field striped (string|number|boolean)? diff --git a/lua/wikis/commons/Widget/Table2/TableBody.lua b/lua/wikis/commons/Widget/Table2/TableBody.lua index d156f7df929..742a2dc8631 100644 --- a/lua/wikis/commons/Widget/Table2/TableBody.lua +++ b/lua/wikis/commons/Widget/Table2/TableBody.lua @@ -28,7 +28,7 @@ local function Table2Body(props, context) local children = props.children or {} local stripeEnabled = Context.read(context, Table2Contexts.BodyStripe) - if stripeEnabled == nil then + if stripeEnabled == 'disabled' then return Context.Provider{ def = Table2Contexts.Section, value = 'body', @@ -44,14 +44,20 @@ local function Table2Body(props, context) stripe = stripe == 'even' and 'odd' or 'even' end - ---@param row VNode + ---@param row VNode<{children: Renderable|Renderable[]}> + ---@return integer local getRowMaxRowspan = FnUtil.memoize(function(row) local rowChildren = (row and row.props and row.props.children) or {} + if type(rowChildren) ~= 'table' then + rowChildren = {rowChildren} + end local maxRowspan = 1 Array.forEach(rowChildren, function(child) - local childMt = getmetatable(child) - if childMt == getmetatable(Table2Cell) or childMt == getmetatable(Table2CellHeader) then + if type(child) == 'table' + ---@diagnostic disable-next-line: undefined-field + and (child.renderFn == Table2Cell.renderFn or child.renderFn == Table2CellHeader.renderFn) then + local rowspan = MathUtil.toInteger(child.props.rowspan) or 1 rowspan = math.max(rowspan, 1) maxRowspan = math.max(maxRowspan, rowspan) @@ -62,7 +68,8 @@ local function Table2Body(props, context) end) Array.forEach(children, function(child) - if getmetatable(child) == getmetatable(Table2Row) then + ---@diagnostic disable-next-line: undefined-field + if type(child) == 'table' and child.renderFn == Table2Row.renderFn then ---@cast child VNode if groupRemaining == 0 then toggleStripe() diff --git a/lua/wikis/commons/Widget/Table2/TableHeader.lua b/lua/wikis/commons/Widget/Table2/TableHeader.lua index 8143d2029ea..51972529cae 100644 --- a/lua/wikis/commons/Widget/Table2/TableHeader.lua +++ b/lua/wikis/commons/Widget/Table2/TableHeader.lua @@ -23,7 +23,8 @@ local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local function Table2Header(props, context) local rowCount = 0 local children = Array.map(props.children or {}, function(child) - if getmetatable(child) == getmetatable(Table2Row) then + ---@diagnostic disable-next-line: undefined-field + if type(child) == 'table' and child.renderFn == Table2Row.renderFn then rowCount = rowCount + 1 local kind = rowCount == 1 and 'title' or 'columns' child = Context.Provider{def = Table2Contexts.HeaderRowKind, value = kind, children = {child}} From bdcc79aa81be2ee18b7d992227dca3c1ab4d4bfd Mon Sep 17 00:00:00 2001 From: Rathoz <3426850+Rathoz@users.noreply.github.com> Date: Thu, 7 May 2026 13:47:05 +0000 Subject: [PATCH 8/9] chore: update visual snapshots --- lua/spec/snapshots/dota2 rankings.png | Bin 79861 -> 80699 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lua/spec/snapshots/dota2 rankings.png b/lua/spec/snapshots/dota2 rankings.png index 0db7e4f719d6269bb6bd7f7db71e6d475f637f2a..9e547b50925493e4aa23c0047ea549b2ecb70715 100644 GIT binary patch literal 80699 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 U<+ct)j(+s9inemLqQ$F!1Juhi@c;k- From 84687535b3e90b233b7e4ffd9001a7fb10959c0f Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Thu, 7 May 2026 16:22:22 +0200 Subject: [PATCH 9/9] automatic arrays for children, it becomes too messy without --- lua/wikis/commons/Widget/Component.lua | 35 +++++++++++++++++-- lua/wikis/commons/Widget/Table2/Cell.lua | 2 +- .../commons/Widget/Table2/CellHeader.lua | 2 +- lua/wikis/commons/Widget/Table2/Row.lua | 2 +- lua/wikis/commons/Widget/Table2/Table.lua | 2 +- lua/wikis/commons/Widget/Table2/TableBody.lua | 2 +- .../commons/Widget/Table2/TableHeader.lua | 2 +- 7 files changed, 39 insertions(+), 8 deletions(-) diff --git a/lua/wikis/commons/Widget/Component.lua b/lua/wikis/commons/Widget/Component.lua index 03c02db0cd2..9655429a36a 100644 --- a/lua/wikis/commons/Widget/Component.lua +++ b/lua/wikis/commons/Widget/Component.lua @@ -11,8 +11,8 @@ ---@alias Context { props: { parent: Context?, def: ContextDef, value: T } } ----@alias ContextNode VNode<{def: ContextDef, value: T, children: Renderable|Renderable[]}> ----@alias HtmlNode VNode<{classes?: string[], css?: table, attributes?: table, children?: Renderable|Renderable[]}> +---@alias ContextNode VNode<{def: ContextDef, value: T, children: Renderable[]}> +---@alias HtmlNode VNode<{classes?: string[], css?: table, attributes?: table, children?: Renderable[]}> ---@alias Renderable string|Html|Widget|number|VNode @@ -40,6 +40,33 @@ ComponentCore.VNodeMT = { } } +--- Highly efficient check for if a node is actually an array of nodes, or just a single node +---@param node Renderable|Renderable[]|nil +---@return boolean +local function isSingleNode(node) + if type(node) ~= 'table' then + return true + end + + -- VNodes always have this key + if node.renderFn ~= nil then + return true + end + + ---@cast node -VNode + + -- Widget (render) and mw.html (_build) + if node.render ~= nil or node._build ~= nil then + return true + end + + ---@cast node -Html + ---@cast node -Widget + + -- Array is the only allowed type of Renderable left + return false +end + -- Component Definitions ComponentCore.ComponentMT = { __call = function(self, props) @@ -51,6 +78,10 @@ ComponentCore.ComponentMT = { setmetatable(props, { __index = self.defaultProps }) end + if isSingleNode(props.children) then + props.children = { props.children } + end + return setmetatable({ renderFn = self.renderFn, props = props diff --git a/lua/wikis/commons/Widget/Table2/Cell.lua b/lua/wikis/commons/Widget/Table2/Cell.lua index 2929af345f0..1775441e6c4 100644 --- a/lua/wikis/commons/Widget/Table2/Cell.lua +++ b/lua/wikis/commons/Widget/Table2/Cell.lua @@ -15,7 +15,7 @@ local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ---@class Table2CellProps ----@field children? Renderable|Renderable[] +---@field children Renderable[] ---@field align ('left'|'right'|'center')? ---@field shrink (string|number|boolean)? ---@field nowrap (string|number|boolean)? diff --git a/lua/wikis/commons/Widget/Table2/CellHeader.lua b/lua/wikis/commons/Widget/Table2/CellHeader.lua index 2f4b5daa0c2..3b4c3d11977 100644 --- a/lua/wikis/commons/Widget/Table2/CellHeader.lua +++ b/lua/wikis/commons/Widget/Table2/CellHeader.lua @@ -17,7 +17,7 @@ local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') local ColumnUtil = Lua.import('Module:Widget/Table2/ColumnUtil') ---@class Table2CellHeaderProps ----@field children? Renderable|Renderable[] +---@field children Renderable[] ---@field section 'head'|'body'|'subhead'? ---@field align ('left'|'right'|'center')? ---@field shrink (string|number|boolean)? diff --git a/lua/wikis/commons/Widget/Table2/Row.lua b/lua/wikis/commons/Widget/Table2/Row.lua index 739478c2812..68535b58a0c 100644 --- a/lua/wikis/commons/Widget/Table2/Row.lua +++ b/lua/wikis/commons/Widget/Table2/Row.lua @@ -20,7 +20,7 @@ local WidgetUtil = Lua.import('Module:Widget/Util') local Html = Lua.import('Module:Widget/Html') ---@class Table2RowProps ----@field children Renderable[]? +---@field children Renderable[] ---@field section 'head'|'body'|'subhead'? ---@field classes string[]? ---@field css {[string]: string|number|nil}? diff --git a/lua/wikis/commons/Widget/Table2/Table.lua b/lua/wikis/commons/Widget/Table2/Table.lua index c5c49622d60..7cae44950b8 100644 --- a/lua/wikis/commons/Widget/Table2/Table.lua +++ b/lua/wikis/commons/Widget/Table2/Table.lua @@ -30,7 +30,7 @@ local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') ---@field attributes {[string]: any}? ---@class Table2Props ----@field children? Renderable|Renderable[] +---@field children Renderable[] ---@field variant 'generic'|'themed'? ---@field sortable (string|number|boolean)? ---@field striped (string|number|boolean)? diff --git a/lua/wikis/commons/Widget/Table2/TableBody.lua b/lua/wikis/commons/Widget/Table2/TableBody.lua index 742a2dc8631..856c0b3209a 100644 --- a/lua/wikis/commons/Widget/Table2/TableBody.lua +++ b/lua/wikis/commons/Widget/Table2/TableBody.lua @@ -19,7 +19,7 @@ local Table2CellHeader = Lua.import('Module:Widget/Table2/CellHeader') local Table2Row = Lua.import('Module:Widget/Table2/Row') ---@class Table2BodyProps ----@field children Renderable[]? +---@field children Renderable[] ---@param props Table2BodyProps ---@param context Context diff --git a/lua/wikis/commons/Widget/Table2/TableHeader.lua b/lua/wikis/commons/Widget/Table2/TableHeader.lua index 51972529cae..b449a40b399 100644 --- a/lua/wikis/commons/Widget/Table2/TableHeader.lua +++ b/lua/wikis/commons/Widget/Table2/TableHeader.lua @@ -15,7 +15,7 @@ local Table2Row = Lua.import('Module:Widget/Table2/Row') local Table2Contexts = Lua.import('Module:Widget/Contexts/Table2') ---@class Table2HeaderProps ----@field children Renderable[]? +---@field children Renderable[] ---@param props Table2HeaderProps ---@param context Context