Moduuli:Fr:Infobox/Hiukkanen


local general = require "Module:Fr:Infobox/Fonctions"
local localdata = require "Module:Fr:Infobox/Localdata"
local wd = require "Module:Fr:Interface Wikidata".fromLua

-- Localdata pitää sisällään mallineen parametrit
function row_example(localdata)
	ret = localdata.template_param or "row_example"
	return {
		type = 'row',
		label = "Esimerkki1",
		value = function() return ret end,
	}
end

local function col_example1()
	return "col_example1"
end

local function col_example2()
	return "col_example2"
end

-- Funktiossa käsitellään propertyn arvot yksi kerrallaan jolloin voidaan 
-- esimerkiksi suodattaa arvoja pois
local function wikidata_example_1(localdata)
	local paste_list = {}
	local claims = wd.getClaims({entity = localdata.id, property = 'P31'})
	if claims then
		for claim_key, claim_value in pairs(claims) do
			statement = wd.formatStatement(claim_value)
			table.insert(paste_list, statement)
		end
	end
	if #paste_list > 0 then
			return mw.text.listToText(paste_list, "<br />", "<br />")
	end
	return false
end

-- wd.formatStatements palauttaa saman asian kuin mitä malline:wikidata-fr ja käyttää samoja parametreja
local function wikidata_example_2(localdata)
   local ret=wd.formatStatements( {entity =localdata.id, property = 'P31'}	)
   return ret
end


return
	{
		maincolor = '#C0C0C0',
		parts =
		{
			general.title(),
			general.mainimage('Article à illustrer Particule'),
			{type = 'table', title = 'Esimerkit', rows = {
				{type = 'row', label = 'Wikidata esimerkki 1', value = "wikidata esimerkki 1", wikidata = function(localdata)  return wikidata_example_1(localdata) end  },		
				{type = 'row', label = 'Wikidata esimerkki 2', value = "wikidata esimerkki 2", wikidata = function(localdata)  return wikidata_example_2(localdata) end  },		
				
				row_example(localdata),
				{type = 'row', label = 'Esimerkki2', value = function()  return  col_example1() end },
				{type = 'row', label = 'Esimerkki3', value = "esimerkki2", wikidata = function()  return  col_example2() end },		
				
				
				}
			},			
			{type = 'table', title = 'Propriétés générales', rows = {
				{type = 'row', label = 'Classification', value = 'classification'},
				{type = 'row', label = 'Composition', value = 'composition'},
				{type = 'row', label = 'Famille', value = 'famille'},
				{type = 'row', label = 'Groupe', value = 'groupe'},
				{type = 'row', label = 'Génération', value = 'génération'},
				{type = 'row', label = 'Interaction(s)', value = 'interaction'},
				{type = 'row', label = 'Symbole', value = 'symbole'},
				{type = 'row', label = 'Nbr. de types', value = 'types'},
				{type = 'row', label = '[[Antiparticule]]', value = 'antiparticule'},
				}
			},
			{type = 'table', title = 'Propriétés physiques', rows = {
				{type = 'row', label = 'Masse', value = 'masse', property = 'P2067'},
				{type = 'row', label = '[[Charge électrique]]', value = 'charge électrique', property = 'P2200'},
				{type = 'row', label = '[[Rayon de charge]]', value = 'rayon de charge'},
				{type = 'row', label = '[[Dipôle électrostatique|Moment dipolaire]]', value = 'moment dipolaire'},
				{type = 'row', label = '[[Polarisabilité|Polarisabilité électrique]]', value = 'polarisabilité électrique'},
				{type = 'row', label = '[[Moment magnétique]]', value = 'moment magnétique'},
				{type = 'row', label = 'Polarisabilité magnétique', value = 'polarisabilité magnétique'},
				{type = 'row', label = '[[Charge de couleur]]', value = 'charge de couleur'},
				{type = 'row', label = '[[Spin]]', value = 'spin'},
				{type = 'row', label = '[[Isospin]]', value = 'isospin'},
				{type = 'row', label = '[[Parité (physique)|Parité]]', value = 'parité'},
				{type = 'row', label = '[[Durée de vie moyenne|Durée de vie]]', value = 'durée de vie'},
				{type = 'row', label = 'Forme condensée', value = 'isospin'},
				}
			},
			{type = 'table', title = 'Historique', rows = {
				{type = 'row', label = 'Prédiction', value = 'prédiction'},
				{type = 'row', label = 'Découverte', value = 'découverte'},
				{type = 'row', label = 'Découvreur', value = 'découvreur', property = 'P61'},
				}
			}
		}
	}