Ajout des couleurs, des noms, des sports sur le graph

pull/51/head
Thomas Chazot 1 year ago
parent 515a5e1407
commit a0e52457d8

@ -8,6 +8,10 @@
"name": "cryptide", "name": "cryptide",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-regular-svg-icons": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
"@fortawesome/react-fontawesome": "^0.2.0",
"@testing-library/jest-dom": "^5.17.0", "@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0", "@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0", "@testing-library/user-event": "^13.5.0",
@ -2598,6 +2602,63 @@
"tslib": "^2.4.0" "tslib": "^2.4.0"
} }
}, },
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz",
"integrity": "sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA==",
"hasInstallScript": true,
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz",
"integrity": "sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg==",
"hasInstallScript": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-regular-svg-icons": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz",
"integrity": "sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q==",
"hasInstallScript": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-solid-svg-icons": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz",
"integrity": "sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA==",
"hasInstallScript": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/react-fontawesome": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
"integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
"dependencies": {
"prop-types": "^15.8.1"
},
"peerDependencies": {
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
"react": ">=16.3"
}
},
"node_modules/@humanwhocodes/config-array": { "node_modules/@humanwhocodes/config-array": {
"version": "0.11.13", "version": "0.11.13",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",

@ -2,6 +2,10 @@
"name": "cryptide", "name": "cryptide",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-regular-svg-icons": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
"@fortawesome/react-fontawesome": "^0.2.0",
"@testing-library/jest-dom": "^5.17.0", "@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0", "@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0", "@testing-library/user-event": "^13.5.0",

@ -3,7 +3,9 @@ import { DataSet, Network} from "vis-network/standalone/esm/vis-network";
import EdgesCreator from "../source/EdgesCreator"; import EdgesCreator from "../source/EdgesCreator";
import GraphCreator from "../source/Graph/GraphCreator"; import GraphCreator from "../source/Graph/GraphCreator";
import IndiceChooser from "../source/IndiceChooser"; import IndiceChooser from "../source/IndiceChooser";
import SportIndice from "../source/Indices/SportIndice";
import NetworkGenerator from "../source/NetworkGenerator"; import NetworkGenerator from "../source/NetworkGenerator";
import Sport from "../source/Sport";
import Stub from "../source/Stub"; import Stub from "../source/Stub";
import "./GraphContainer.css"; import "./GraphContainer.css";
@ -24,8 +26,14 @@ edgesCreator.CreateAllEdges(network, person, choosenIndices)
const graph = GraphCreator.CreateGraph(network) const graph = GraphCreator.CreateGraph(network)
let indice = new SportIndice(12, [Sport.TENNIS, Sport.BASEBALL])
console.log(network) console.log(network)
console.log(graph) console.log(graph)
choosenIndices.forEach((indice) =>{
console.log(indice.ToString("fr"))
});
console.log(person)
const MyGraphComponent = () => { const MyGraphComponent = () => {

@ -26,5 +26,38 @@
"create_room" : "Create room", "create_room" : "Create room",
"play_solo" : "Single player", "play_solo" : "Single player",
"play" : "PLAY" "play" : "PLAY",
"football": "Football",
"basketball": "Basketball",
"baseball": "Baseball",
"tennis": "Tennis",
"bowling": "Bowling",
"white": "White",
"black": "Black",
"blond": "Blond",
"redhead": "Red",
"brown": "Brown",
"and": "and",
"or": "or",
"or_sport": "or",
"age_indice_start": "The suspect is between",
"age_indice_more_start": "The suspect is older than or",
"age_indice_end": "years old",
"color_edges_start": "The suspect has at least one friend with",
"color_edges_end": "hair",
"color_start": "The suspect has",
"color_end": "hair",
"nb_friends_indice_start": "The suspect has at least",
"nb_friends_indice_end": "friends",
"sport_start": "The suspect plays at least",
"sport_end": ""
} }

@ -26,5 +26,37 @@
"join" : "Rejoindre", "join" : "Rejoindre",
"create_room" : "Créer une partie", "create_room" : "Créer une partie",
"play_solo" : "Jouer seul", "play_solo" : "Jouer seul",
"play" : "JOUER" "play" : "JOUER",
"football": "Football",
"basketball": "Basketball",
"baseball": "Baseball",
"tennis": "Tennis",
"bowling": "Bowling",
"white": "Blanc",
"black": "Noir",
"blond": "Blond",
"redhead": "Roux",
"brown": "Brun",
"and": "et",
"or": "ou",
"or_sport": "ou du",
"age_indice_start": "Le suspect a entre",
"age_indice_more_start": "Le suspect a ou a plus de",
"age_indice_end": "ans",
"color_edges_start": "Le suspect a au moins un ami avec les cheveux",
"color_edges_end": "",
"color_start": "Le suspect a les cheveux",
"color_end": "",
"nb_friends_indice_start": "Le suspect a au moins",
"nb_friends_indice_end": "amis",
"sport_start": "Le suspect fait au moins du",
"sport_end": ""
} }

@ -0,0 +1,97 @@
{
"names": [
"Emma",
"Olivia",
"Sophia",
"Ava",
"Isabella",
"Mia",
"Amelia",
"Harper",
"Evelyn",
"Abigail",
"Emily",
"Charlotte",
"Scarlett",
"Grace",
"Lily",
"Aria",
"Chloe",
"Zoey",
"Penelope",
"Riley",
"Layla",
"Stella",
"Aurora",
"Natalie",
"Zoe",
"Lucy",
"Hannah",
"Leah",
"Victoria",
"Eleanor",
"Hazel",
"Violet",
"Aurora",
"Ruby",
"Ivy",
"Eleanor",
"Savannah",
"Alice",
"Claire",
"Nora",
"Lillian",
"Mila",
"Peyton",
"Aaliyah",
"Gabriella",
"Eliana",
"Bella",
"Sadie",
"Hailey",
"Aurora",
"Liam",
"Noah",
"Oliver",
"Elijah",
"William",
"James",
"Benjamin",
"Lucas",
"Henry",
"Alexander",
"Jackson",
"Aiden",
"Sebastian",
"Carter",
"Daniel",
"Matthew",
"Wyatt",
"Jack",
"Jayden",
"Owen",
"Noah",
"Ethan",
"Mason",
"Logan",
"Caden",
"Samuel",
"David",
"Joseph",
"Michael",
"Gabriel",
"Caleb",
"Ryan",
"Isaac",
"Luke",
"Andrew",
"Nathan",
"Dylan",
"Adam",
"Joshua",
"Connor",
"Brayden",
"Julian"
]
}

@ -1,9 +1,9 @@
enum Color { enum Color {
BLANC, WHITE,
NOIR, BLACK,
BLOND, BLOND,
ROUX, REDHEAD,
BRUN, BROWN,
} }
export default Color export default Color

@ -92,6 +92,7 @@ class EdgesCreator{
if (p != choosenPerson){ if (p != choosenPerson){
const rand = Math.floor(Math.random() * 4) const rand = Math.floor(Math.random() * 4)
test.set(p.getId(), tabEdgesSize[rand] + p.getFriends().length) test.set(p.getId(), tabEdgesSize[rand] + p.getFriends().length)
tabEdgesSize.splice(rand, 1)
} }
}); });
personNetwork.getPersons().forEach((p) => { personNetwork.getPersons().forEach((p) => {

@ -1,118 +1,99 @@
import Color from "./Color"; import Color from "./Color";
import Sport from "./Sport"; import Sport from "./Sport";
import React from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faFutbol, faBasketballBall } from '@fortawesome/free-solid-svg-icons';
import { parseJsonText } from "typescript";
function GetJsonFile(lang: string){
const response = require(`../Translations/${lang}.json`);
const data = response;
return data
}
function ColorToString(color: Color, lang: string): string{ function ColorToString(color: Color, lang: string): string{
let json = GetJsonFile(lang)
switch(color){ switch(color){
case Color.BLANC: case Color.WHITE:
switch(lang){ return json.white
case "en": case Color.BLACK:
return "White" return json.black
default:
return "Blanc"
}
case Color.NOIR:
switch(lang){
case "en":
return "Black"
default:
return "Noir"
}
case Color.BLOND: case Color.BLOND:
switch(lang){ return json.blond
case "en": case Color.REDHEAD:
return "Blond" return json.redhead
default: case Color.BROWN:
return "Blond" return json.brown
}
case Color.ROUX:
switch(lang){
case "en":
return "Redhead"
default:
return "Roux"
}
case Color.BRUN:
switch(lang){
case "en":
return "Brown"
default:
return "Brun"
}
} }
} }
function ColorToHexa(color: Color): string{ function ColorToHexa(color: Color): string{
switch(color){ switch(color){
case Color.BLANC: case Color.WHITE:
return "#FFFFFF" return "#FFFFFF"
case Color.NOIR: case Color.BLACK:
return "#000000" return "#000000"
case Color.BLOND: case Color.BLOND:
return "#E2BC74" return "#E2BC74"
case Color.ROUX: case Color.REDHEAD:
return "#FF8B00" return "#FF8B00"
case Color.BRUN: case Color.BROWN:
return "#5B3C11" return "#5B3C11"
} }
} }
function ColorToColorFont(color: Color): string{ function ColorToColorFont(color: Color): string{
switch(color){ switch(color){
case Color.BLANC: case Color.WHITE:
return "#000000" return "#000000"
case Color.NOIR: case Color.BLACK:
return "#FFFFFF" return "#FFFFFF"
case Color.BLOND: case Color.BLOND:
return "#000000" return "#000000"
case Color.ROUX: case Color.REDHEAD:
return "#000000" return "#000000"
case Color.BRUN: case Color.BROWN:
return "#FFFFFF" return "#FFFFFF"
} }
} }
function SportToString(sport: Sport, lang: string): string{ function SportToString(sport: Sport, lang: string): string{
let json = GetJsonFile(lang)
switch(sport){ switch(sport){
case Sport.FOOT: case Sport.FOOT:
switch(lang){ return json.football
case "en": case Sport.BASEBALL:
return "Football" return json.baseball
default:
return "Football"
}
case Sport.RUGBY:
switch(lang){
case "en":
return "Rugby"
default:
return "Rugby"
}
case Sport.BASKET: case Sport.BASKET:
switch(lang){ return json.basketball
case "en":
return "Basket"
default:
return "Basket"
}
case Sport.TENNIS: case Sport.TENNIS:
switch(lang){ return json.tennis
case "en": case Sport.BOWLING:
return "Tennis" return json.bowling
default:
return "Tennis"
}
case Sport.CURLING:
switch(lang){
case "en":
return "Curling"
default:
return "Curling"
}
case Sport.AUCUN: case Sport.AUCUN:
return "" return ""
} }
} }
export {ColorToString, SportToString, ColorToHexa, ColorToColorFont}
function SportToIcon(sport: Sport): string{
switch(sport){
case Sport.FOOT:
return "⚽"
case Sport.BASEBALL:
return "⚾"
case Sport.BASKET:
return "🏀"
case Sport.TENNIS:
return "🎾"
case Sport.BOWLING:
return "🎳"
case Sport.AUCUN:
return ""
}
}
export {ColorToString, SportToString, ColorToHexa, ColorToColorFont, SportToIcon, GetJsonFile}

@ -1,5 +1,5 @@
import Edge from "./Edge"; import Edge from "./Edge";
import { ColorToColorFont, ColorToHexa, SportToString } from "../EnumExtender"; import { ColorToColorFont, ColorToHexa, SportToIcon, SportToString } from "../EnumExtender";
import GraphPerson from "./GraphPerson"; import GraphPerson from "./GraphPerson";
import NodePerson from "./NodePerson"; import NodePerson from "./NodePerson";
import PersonNetwork from "../PersonsNetwork"; import PersonNetwork from "../PersonsNetwork";
@ -13,16 +13,11 @@ class GraphCreator{
network.getPersons().forEach((p) =>{ network.getPersons().forEach((p) =>{
let label = p.getName() + "\n" + p.getAge() + "\n" let label = p.getName() + "\n" + p.getAge() + "\n"
for (let i = 0; i<p.getSports().length; i++){ for (let i = 0; i<p.getSports().length; i++){
if (i==p.getSports().length -1 || p.getSports().length == 1){ label += SportToIcon(p.getSports()[i])
label += SportToString(p.getSports()[i], "fr")
}
else{
label += SportToString(p.getSports()[i], "fr") + "\n"
}
} }
const nodePerson = new NodePerson(p.getId(), label, p.getColor(), new Font(ColorToColorFont(p.getColor()), 14, 'center'), 'ellipse') const nodePerson = new NodePerson(p.getId(), label, p.getColor(), new Font(ColorToColorFont(p.getColor()), 14, 'center'), 'box')
nodesPerson.push(nodePerson) nodesPerson.push(nodePerson)
p.getFriends().forEach((f) =>{ p.getFriends().forEach((f) =>{
if(edges.some(edge => (edge.from === f.getId() && edge.to === p.getId()) || (edge.from === p.getId() && edge.to === f.getId()))){ if(edges.some(edge => (edge.from === f.getId() && edge.to === p.getId()) || (edge.from === p.getId() && edge.to === f.getId()))){

@ -1,3 +1,4 @@
import { GetJsonFile } from "../EnumExtender";
import Indice from "./Indice"; import Indice from "./Indice";
class AgeIndice extends Indice { class AgeIndice extends Indice {
@ -12,7 +13,11 @@ class AgeIndice extends Indice {
// Implémentation de la méthode abstraite // Implémentation de la méthode abstraite
ToString(lang: string): string { ToString(lang: string): string {
return "La personne a entre " + this.minimum + " et " + this.maximum + " ans" let json = GetJsonFile(lang)
if (this.maximum > 100){
return `${json.age_indice_more_start} ${this.minimum} ${json.age_indice_end}`
}
return `${json.age_indice_start} ${this.minimum} ${json.and} ${this.maximum} ${json.age_indice_end}`
} }

@ -1,5 +1,5 @@
import Color from "../Color"; import Color from "../Color";
import { ColorToString } from "../EnumExtender"; import { ColorToString, GetJsonFile } from "../EnumExtender";
import EdgesIndice from "./EdgesIndice"; import EdgesIndice from "./EdgesIndice";
class ColorEdgesIndice extends EdgesIndice { class ColorEdgesIndice extends EdgesIndice {
@ -17,16 +17,17 @@ class ColorEdgesIndice extends EdgesIndice {
// Implémentation de la méthode abstraite // Implémentation de la méthode abstraite
ToString(lang: string): string { ToString(lang: string): string {
let string = "La personne a au moins un ami avec les cheveux"; let json = GetJsonFile(lang)
let string = json.color_edges_start;
for (let i = 0; i<this.neighborsColors.length; i++){ for (let i = 0; i<this.neighborsColors.length; i++){
if (i==this.neighborsColors.length - 1 || this.neighborsColors.length == 1){ if (i==this.neighborsColors.length - 1 || this.neighborsColors.length == 1){
string = string + " " + ColorToString(this.neighborsColors[i], lang) string = `${string} ${ColorToString(this.neighborsColors[i], lang)}`
} }
else{ else{
string = string + " ou " + ColorToString(this.neighborsColors[i], lang) string = `${string} ${ColorToString(this.neighborsColors[i], lang)} ${json.or}`
} }
} }
return string return `${string} ${json.color_edges_end}`
} }
} }

@ -1,5 +1,5 @@
import Color from "../Color"; import Color from "../Color";
import { ColorToString } from "../EnumExtender"; import { ColorToString, GetJsonFile } from "../EnumExtender";
import Indice from "./Indice"; import Indice from "./Indice";
class ColorIndice extends Indice { class ColorIndice extends Indice {
@ -12,16 +12,17 @@ class ColorIndice extends Indice {
// Implémentation de la méthode abstraite // Implémentation de la méthode abstraite
ToString(lang: string): string { ToString(lang: string): string {
let string = "La personne a au moins un ami avec les cheveux"; let json = GetJsonFile(lang)
let string = json.color_start;
for (let i = 0; i<this.colors.length; i++){ for (let i = 0; i<this.colors.length; i++){
if (i==this.colors.length - 1 || this.colors.length == 1){ if (i==this.colors.length - 1 || this.colors.length == 1){
string = string + " " + ColorToString(this.colors[i], lang) string = `${string} ${ColorToString(this.colors[i], lang)}`
} }
else{ else{
string = string + " ou " + ColorToString(this.colors[i], lang) string = `${string} ${ColorToString(this.colors[i], lang)} ${json.or}`
} }
} }
return string return `${string} ${json.color_end}`
} }
getColors(): Color[]{ getColors(): Color[]{

@ -1,3 +1,4 @@
import { GetJsonFile } from "../EnumExtender";
import EdgesIndice from "./EdgesIndice"; import EdgesIndice from "./EdgesIndice";
class NbEdgesIndice extends EdgesIndice { class NbEdgesIndice extends EdgesIndice {
@ -14,7 +15,8 @@ class NbEdgesIndice extends EdgesIndice {
// Implémentation de la méthode abstraite // Implémentation de la méthode abstraite
ToString(lang: string): string { ToString(lang: string): string {
return "La personne a au moins " + this.nbNeighbors + " amis"; let json = GetJsonFile(lang)
return `${json.nb_friends_indice_start} ${this.nbNeighbors} ${json.nb_friends_indice_end}`;
} }
} }

@ -1,4 +1,4 @@
import { SportToString } from "../EnumExtender"; import { GetJsonFile, SportToString } from "../EnumExtender";
import Sport from "../Sport"; import Sport from "../Sport";
import Indice from "./Indice"; import Indice from "./Indice";
@ -12,16 +12,17 @@ class SportIndice extends Indice {
// Implémentation de la méthode abstraite // Implémentation de la méthode abstraite
ToString(lang: string): string { ToString(lang: string): string {
let string = "La personne pratique au moins un de ces sports: "; let json = GetJsonFile(lang)
let string = json.sport_start;
for (let i = 0; i<this.sports.length; i++){ for (let i = 0; i<this.sports.length; i++){
if (i==this.sports.length - 1 || this.sports.length == 1){ if (i==this.sports.length - 1 || this.sports.length == 1){
string = string + " " + SportToString(this.sports[i], lang) string = `${string} ${SportToString(this.sports[i], lang)}`
} }
else{ else{
string = string + " ou " + SportToString(this.sports[i], lang) string = `${string} ${SportToString(this.sports[i], lang)} ${json.or_sport}`
} }
} }
return string return `${string} ${json.sport_end}`
} }

@ -6,6 +6,7 @@ import Sport from "./Sport";
class NetworkGenerator{ class NetworkGenerator{
static GenerateNetwork(nbPerson: number): PersonNetwork{ static GenerateNetwork(nbPerson: number): PersonNetwork{
let json = require("../res/names.json")
const tabSports: Sport[] = [0, 1, 2, 3, 4, 5, 5, 5, 5] const tabSports: Sport[] = [0, 1, 2, 3, 4, 5, 5, 5, 5]
const tabColor: Color[] = [0, 1, 2, 3, 4] const tabColor: Color[] = [0, 1, 2, 3, 4]
const tabJeune: number[] = [] const tabJeune: number[] = []
@ -15,6 +16,8 @@ class NetworkGenerator{
const tabPerson: Person[] = [] const tabPerson: Person[] = []
const tabNames = json.names
let id = 0 let id = 0
for(let i = 0; i < nbPerson/4; i++){ for(let i = 0; i < nbPerson/4; i++){
const nombreAleatoire = Math.floor(Math.random() * 14) + 1; const nombreAleatoire = Math.floor(Math.random() * 14) + 1;
@ -38,6 +41,9 @@ class NetworkGenerator{
let tmpTabSport=[...tabSports] let tmpTabSport=[...tabSports]
let tmpTabColor = [...tabColor] let tmpTabColor = [...tabColor]
for (let i = 0; i<nbPerson; i++){ for (let i = 0; i<nbPerson; i++){
const randName = Math.floor(Math.random() * tabNames.length)
const name = tabNames[randName]
tabNames.splice(randName, 1)
if (tmpTabColor.length == 0){ if (tmpTabColor.length == 0){
tmpTabColor = [...tabColor] tmpTabColor = [...tabColor]
} }
@ -62,7 +68,7 @@ class NetworkGenerator{
if (tabAge[randAge].length == 0){ if (tabAge[randAge].length == 0){
tabAge.splice(randAge, 1) tabAge.splice(randAge, 1)
} }
tabPerson.push(new Person(i, i.toString(), age, color, sports, [])) tabPerson.push(new Person(i, name, age, color, sports, []))
} }
return new PersonNetwork(tabPerson) return new PersonNetwork(tabPerson)
} }

@ -1,9 +1,9 @@
enum Sport { enum Sport {
FOOT, FOOT,
RUGBY, BASEBALL,
BASKET, BASKET,
TENNIS, TENNIS,
CURLING, BOWLING,
AUCUN AUCUN
} }

@ -1,12 +1,13 @@
{ {
"compilerOptions": { "compilerOptions": {
"module": "commonjs",
// ... // ...
"resolveJsonModule": true, "resolveJsonModule": true,
"esModuleInterop": true, "esModuleInterop": true,
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"moduleResolution": "node", "moduleResolution": "node",
"target": "es5", "target": "es5",
"lib": ["dom", "es2015"], "lib": ["d"es2017""es2015"],
"jsx": "react", "jsx": "react",
"strict": true "strict": true
}, },

@ -1372,6 +1372,39 @@
"intl-messageformat" "10.5.5" "intl-messageformat" "10.5.5"
"tslib" "^2.4.0" "tslib" "^2.4.0"
"@fortawesome/fontawesome-common-types@6.4.2":
"integrity" "sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA=="
"resolved" "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz"
"version" "6.4.2"
"@fortawesome/fontawesome-svg-core@^6.4.2", "@fortawesome/fontawesome-svg-core@~1 || ~6":
"integrity" "sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg=="
"resolved" "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz"
"version" "6.4.2"
dependencies:
"@fortawesome/fontawesome-common-types" "6.4.2"
"@fortawesome/free-regular-svg-icons@^6.4.2":
"integrity" "sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q=="
"resolved" "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz"
"version" "6.4.2"
dependencies:
"@fortawesome/fontawesome-common-types" "6.4.2"
"@fortawesome/free-solid-svg-icons@^6.4.2":
"integrity" "sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA=="
"resolved" "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz"
"version" "6.4.2"
dependencies:
"@fortawesome/fontawesome-common-types" "6.4.2"
"@fortawesome/react-fontawesome@^0.2.0":
"integrity" "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw=="
"resolved" "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz"
"version" "0.2.0"
dependencies:
"prop-types" "^15.8.1"
"@humanwhocodes/config-array@^0.11.13": "@humanwhocodes/config-array@^0.11.13":
"integrity" "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==" "integrity" "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ=="
"resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz" "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz"
@ -8251,7 +8284,7 @@
"loose-envify" "^1.4.0" "loose-envify" "^1.4.0"
"prop-types" "^15.6.2" "prop-types" "^15.6.2"
"react@*", "react@^16.6.0 || 17 || 18", "react@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", "react@^18.0.0", "react@^18.2.0", "react@>= 16", "react@>=0.14.0", "react@>=15.0.0", "react@>=16.14.0", "react@>=16.6.0", "react@>=16.8", "react@>=16.8.0": "react@*", "react@^16.6.0 || 17 || 18", "react@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", "react@^18.0.0", "react@^18.2.0", "react@>= 16", "react@>=0.14.0", "react@>=15.0.0", "react@>=16.14.0", "react@>=16.3", "react@>=16.6.0", "react@>=16.8", "react@>=16.8.0":
"integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==" "integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="
"resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz" "resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
"version" "18.2.0" "version" "18.2.0"

Loading…
Cancel
Save