Este módulo no tiene página de documentación[crear]
local z = {}

local Entidad			-- Tabla con los datos en Wikidata del libro.
local ModuloArgumentos	= require('Módulo:Argumentos')
local argumentos		= ModuloArgumentos.obtenerValorDeArgumentos

function z.main(frame)
	ModuloArgumentos.obtenerTablaDeArgumentos(frame)
	Entidad			= mw.wikibase.getEntity(argumentos{'id'}) or {}

	local Imagenes	= mw.loadData('Módulo:Clasificaciónvj/datos')

	--:: Argumentos
	local ESRB	= argumentos{'ESRB', {propiedad, 'P852'}}
	local PEGI	= argumentos{'PEGI', {propiedad, 'P908'}}
	local CERO	= argumentos{'CERO', {propiedad, 'P853'}}
	local USK		= argumentos{'USK', {propiedad, 'P914'}}
	local BBFC	= argumentos{'BBFC', {propiedad, 'P2629'}}
	local BARS	= argumentos{'BARS', {propiedad, 'P3216'}}
	local CVGCL	= argumentos{'CVGCL', {propiedad, 'P9028'}}
	local OFLC	= argumentos{'OFLC', {propiedad, 'P3156'}}
	local RARS	= argumentos{'RARS', {propiedad, 'P2637'}}
	local GSRR	= argumentos{'GSRR', {propiedad, 'P916'}}
	local IFCO	= argumentos{'IFCO', {propiedad, 'P7573'}}
	local Apple	= argumentos{'Apple'} -- propiedad solicitada

	--:: Valores
	return enVariasLineas({
		evaluar('PEGI', PEGI , Imagenes['PEGI']),
		evaluar('ESRB', ESRB, Imagenes['ESRB']),
		evaluar('CERO', CERO, Imagenes['CERO']),
		evaluar('Unterhaltungssoftware Selbstkontrolle|USK', USK, Imagenes['USK']),
		evaluar('IFCO', IFCO, Imagenes['IFCO']),
		evaluar('BBFC', BBFC, Imagenes['BBFC']),
		evaluar('OFLC', OFLC, Imagenes['OFLC']),
		evaluar('BARS', BARS, Imagenes['BARS']),
		evaluar('RARS', RARS, Imagenes['RARS']),
		evaluar('GRAC', GRAC, Imagenes['GRAC']),
		evaluar('GSRR', GSRR, Imagenes['GSRR']),
		evaluar('App Store|Apple', Apple, Imagenes['Apple']),
		evaluar('Calificación de videojuegos (Chile)|CVGCL', CVGCL, Imagenes['CVGCL']),
	})
end

function evaluar(literal, valor, imagenes, nota)
	if not valor or valor == '' or valor == nil then
		return ''
	end

	local imagen

	if imagenes then
		imagen = imagenes[valor]
	end

	if imagen and nota then
		return  '<div style="display:table-row"><div style="display:table-cell;font-weight:bold">  [[' .. literal .. ']] </div><div style="display:table-cell">' .. imagen .. '<small>' .. nota .. '</small></div></div>'
		--return  '<b>  [[' .. literal .. ']] <b>' .. imagen .. '<small>' .. nota .. '</small>'
	elseif imagen then
		return '<div style="display:table-row"><div style="display:table-cell;font-weight:bold">  [[' .. literal .. ']] </div><div style="display:table-cell">' .. imagen .. '</div></div>'
		--return '<b>  [[' .. literal .. ']] </b>' .. imagen .. ''
	else
		return '<div style="display:table-row"><div style="display:table-cell;font-weight:bold">  [[' .. literal .. ']] </div><div style="display:table-cell">' .. valor .. '</div></div>'
		--return '<b>  [[' .. literal .. ']] </b>' .. valor .. ''
	end
end

function enVariasLineas(lista)
	local resultado
	local copia={}
	require('Módulo:Tablas').insertarElementosConValor(lista, copia)
	
	-- Solo devolver algo si hay al menos un elemento
	if copia[1] then
		return '<div style="display:table">' .. table.concat(copia) .. '</div>'
	end
end

function propiedad(idPropiedad)
	if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then
		return require('Módulo:Tablas').elemento(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue', 'value', 'id')
	end
end

return z