export interface MatElement { class: string; symbol: string; elementNumber: string; } export const TABLE: Readonly = [ { class: 'element-non-metal', symbol: 'H', elementNumber: '1' }, { class: 'element-noble-gas', symbol: 'He', elementNumber: '2' }, { class: 'element-alkali-metal', symbol: 'Li', elementNumber: '3' }, { class: 'element-alkali-earth-metal', symbol: 'Be', elementNumber: '4' }, { class: 'element-metalloid', symbol: 'B', elementNumber: '5' }, { class: 'element-non-metal', symbol: 'C', elementNumber: '6' }, { class: 'element-non-metal', symbol: 'N', elementNumber: '7' }, { class: 'element-non-metal', symbol: 'O', elementNumber: '8' }, { class: 'element-halogen', symbol: 'F', elementNumber: '9' }, { class: 'element-noble-gas', symbol: 'Ne', elementNumber: '10' }, { class: 'element-alkali-metal', symbol: 'Na', elementNumber: '11' }, { class: 'element-alkali-earth-metal', symbol: 'Mg', elementNumber: '12' }, { class: 'element-metal', symbol: 'Al', elementNumber: '13' }, { class: 'element-metalloid', symbol: 'Si', elementNumber: '14' }, { class: 'element-non-metal', symbol: 'P', elementNumber: '15' }, { class: 'element-non-metal', symbol: 'S', elementNumber: '16' }, { class: 'element-halogen', symbol: 'Cl', elementNumber: '17' }, { class: 'element-noble-gas', symbol: 'Ar', elementNumber: '18' }, { class: 'element-alkali-metal', symbol: 'K', elementNumber: '19' }, { class: 'element-alkali-earth-metal', symbol: 'Ca', elementNumber: '20' }, { class: 'element-transition-metal', symbol: 'Sc', elementNumber: '21' }, { class: 'element-transition-metal', symbol: 'Ti', elementNumber: '22' }, { class: 'element-transition-metal', symbol: 'V', elementNumber: '23' }, { class: 'element-transition-metal', symbol: 'Cr', elementNumber: '24' }, { class: 'element-transition-metal', symbol: 'Mn', elementNumber: '25' }, { class: 'element-transition-metal', symbol: 'Fe', elementNumber: '26' }, { class: 'element-transition-metal', symbol: 'Co', elementNumber: '27' }, { class: 'element-transition-metal', symbol: 'Ni', elementNumber: '28' }, { class: 'element-transition-metal', symbol: 'Cu', elementNumber: '29' }, { class: 'element-metal', symbol: 'Zn', elementNumber: '30' }, { class: 'element-metal', symbol: 'Ga', elementNumber: '31' }, { class: 'element-metalloid', symbol: 'Ge', elementNumber: '32' }, { class: 'element-metalloid', symbol: 'As', elementNumber: '33' }, { class: 'element-non-metal', symbol: 'Se', elementNumber: '34' }, { class: 'element-halogen', symbol: 'Br', elementNumber: '35' }, { class: 'element-noble-gas', symbol: 'Kr', elementNumber: '36' }, { class: 'element-alkali-metal', symbol: 'Rb', elementNumber: '37' }, { class: 'element-alkali-earth-metal', symbol: 'Sr', elementNumber: '38' }, { class: 'element-transition-metal', symbol: 'Y', elementNumber: '39' }, { class: 'element-transition-metal', symbol: 'Zr', elementNumber: '40' }, { class: 'element-transition-metal', symbol: 'Nb', elementNumber: '41' }, { class: 'element-transition-metal', symbol: 'Mo', elementNumber: '42' }, { class: 'element-transition-metal', symbol: 'Tc', elementNumber: '43' }, { class: 'element-transition-metal', symbol: 'Ru', elementNumber: '44' }, { class: 'element-transition-metal', symbol: 'Rh', elementNumber: '45' }, { class: 'element-transition-metal', symbol: 'Pd', elementNumber: '46' }, { class: 'element-transition-metal', symbol: 'Ag', elementNumber: '47' }, { class: 'element-metal', symbol: 'Cd', elementNumber: '48' }, { class: 'element-metal', symbol: 'In', elementNumber: '49' }, { class: 'element-metal', symbol: 'Sn', elementNumber: '50' }, { class: 'element-metalloid', symbol: 'Sb', elementNumber: '51' }, { class: 'element-metalloid', symbol: 'Te', elementNumber: '52' }, { class: 'element-halogen', symbol: 'I', elementNumber: '53' }, { class: 'element-noble-gas', symbol: 'Xe', elementNumber: '54' }, { class: 'element-alkali-metal', symbol: 'Cs', elementNumber: '55' }, { class: 'element-alkali-earth-metal', symbol: 'Ba', elementNumber: '56' }, { class: 'element-lanthanoid-transitional-metal', symbol: 'La-Lu', elementNumber: '57-71' }, { class: 'element-transition-metal', symbol: 'Hf', elementNumber: '72' }, { class: 'element-transition-metal', symbol: 'Ta', elementNumber: '73' }, { class: 'element-transition-metal', symbol: 'W', elementNumber: '74' }, { class: 'element-transition-metal', symbol: 'Re', elementNumber: '75' }, { class: 'element-transition-metal', symbol: 'Os', elementNumber: '76' }, { class: 'element-transition-metal', symbol: 'Ir', elementNumber: '77' }, { class: 'element-transition-metal', symbol: 'Pt', elementNumber: '78' }, { class: 'element-transition-metal', symbol: 'Au', elementNumber: '79' }, { class: 'element-metal', symbol: 'Hg', elementNumber: '80' }, { class: 'element-metal', symbol: 'Tl', elementNumber: '81' }, { class: 'element-metal', symbol: 'Pb', elementNumber: '82' }, { class: 'element-metalloid', symbol: 'Bi', elementNumber: '83' }, { class: 'element-metalloid', symbol: 'Po', elementNumber: '84' }, { class: 'element-halogen', symbol: 'At', elementNumber: '85' }, { class: 'element-noble-gas', symbol: 'Rn', elementNumber: '86' }, { class: 'element-alkali-metal', symbol: 'Fr', elementNumber: '87' }, { class: 'element-alkali-earth-metal', symbol: 'Ra', elementNumber: '88' }, { class: 'element-actinoid-transitional-metal', symbol: 'Ac-Lr', elementNumber: '89-103' }, { class: 'element-transition-metal', symbol: 'Rf', elementNumber: '104' }, { class: 'element-transition-metal', symbol: 'Db', elementNumber: '105' }, { class: 'element-transition-metal', symbol: 'Sg', elementNumber: '106' }, { class: 'element-transition-metal', symbol: 'Bh', elementNumber: '107' }, { class: 'element-transition-metal', symbol: 'Hs', elementNumber: '108' }, { class: 'element-transition-metal', symbol: 'Mt', elementNumber: '109' }, { class: 'element-transition-metal', symbol: 'Ds', elementNumber: '110' }, { class: 'element-transition-metal', symbol: 'Rg', elementNumber: '111' }, { class: 'element-transition-metal', symbol: 'Cn', elementNumber: '112' }, { class: 'element-lanthoid', symbol: 'La', elementNumber: '57' }, { class: 'element-lanthoid', symbol: 'Ce', elementNumber: '58' }, { class: 'element-lanthoid', symbol: 'Pr', elementNumber: '59' }, { class: 'element-lanthoid', symbol: 'Nd', elementNumber: '60' }, { class: 'element-lanthoid', symbol: 'Pm', elementNumber: '61' }, { class: 'element-lanthoid', symbol: 'Sm', elementNumber: '62' }, { class: 'element-lanthoid', symbol: 'Eu', elementNumber: '63' }, { class: 'element-lanthoid', symbol: 'Gd', elementNumber: '64' }, { class: 'element-lanthoid', symbol: 'Tb', elementNumber: '65' }, { class: 'element-lanthoid', symbol: 'Dy', elementNumber: '66' }, { class: 'element-lanthoid', symbol: 'Ho', elementNumber: '67' }, { class: 'element-lanthoid', symbol: 'Er', elementNumber: '68' }, { class: 'element-lanthoid', symbol: 'Tm', elementNumber: '69' }, { class: 'element-lanthoid', symbol: 'Yb', elementNumber: '70' }, { class: 'element-lanthoid', symbol: 'Lu', elementNumber: '71' }, { class: 'element-actinoid', symbol: 'Ac', elementNumber: '89' }, { class: 'element-actinoid', symbol: 'Th', elementNumber: '90' }, { class: 'element-actinoid', symbol: 'Pa', elementNumber: '91' }, { class: 'element-actinoid', symbol: 'U', elementNumber: '92' }, { class: 'element-actinoid', symbol: 'Np', elementNumber: '93' }, { class: 'element-actinoid', symbol: 'Pu', elementNumber: '94' }, { class: 'element-actinoid', symbol: 'Am', elementNumber: '95' }, { class: 'element-actinoid', symbol: 'Cm', elementNumber: '96' }, { class: 'element-actinoid', symbol: 'Bk', elementNumber: '97' }, { class: 'element-actinoid', symbol: 'Cf', elementNumber: '98' }, { class: 'element-actinoid', symbol: 'Es', elementNumber: '99' }, { class: 'element-actinoid', symbol: 'Fm', elementNumber: '100' }, { class: 'element-actinoid', symbol: 'Md', elementNumber: '101' }, { class: 'element-actinoid', symbol: 'No', elementNumber: '102' }, { class: 'element-actinoid', symbol: 'Lr', elementNumber: '103' } ]; Object.seal(TABLE); export const TABLE_DICO_CLASS: Readonly<{ [element: string]: string }> = TABLE.reduce( (acc: any, el) => { acc[el.symbol] = el.class; return acc; }, {} ); Object.seal(TABLE_DICO_CLASS);