Skip to content

Commit

Permalink
Spécialisation des autocomplete
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidBruant committed Feb 20, 2024
1 parent 0018ab9 commit 6762e28
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 4 deletions.
4 changes: 2 additions & 2 deletions scripts/App.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
{id: '70'},
]
export let espèces;
export let espècesProtégéesParClassification;
/** @type { DescriptionMenaceEspèce[] } */
export let descriptionMenacesEspèces;
Expand Down Expand Up @@ -74,7 +74,7 @@
{/each}
<tr>
<td>
<AutocompleteEspeces {espèces}></AutocompleteEspeces>
<AutocompleteEspeces espèces={espècesProtégéesParClassification.get(classification)}></AutocompleteEspeces>
</td>
<td><input disabled type="number" min="0" step="1"></td>
{#if classification === "oiseau"}
Expand Down
30 changes: 28 additions & 2 deletions scripts/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import App from './App.svelte';
//@ts-check

import { dsv } from 'd3-fetch';

import App from './App.svelte';

import './types.js'

function getURL(selector){
const element = document.head.querySelector(selector)

Expand Down Expand Up @@ -28,10 +33,31 @@ data.forEach(d => {
})
console.log(dataMap)

/** @type { {REGNE: Règne, CLASSE: Classe, CD_NOM: string }[] } */
const listeEspècesProtégées = [...dataMap.values()]

const filtreParClassification = new Map([
["oiseau", ((/** @type {{REGNE: Règne, CLASSE: Classe}} */ {REGNE, CLASSE}) => {
return REGNE === 'Animalia' && CLASSE === 'Aves'
})],
["faune non-oiseau", ((/** @type {{REGNE: Règne, CLASSE: Classe}} */ {REGNE, CLASSE}) => {
return REGNE === 'Animalia' && CLASSE !== 'Aves'
})],
["flore", ((/** @type {{REGNE: Règne, CLASSE: Classe}} */ {REGNE}) => {
return REGNE === 'Plantae'
})]
])

const espècesProtégéesParClassification = new Map(
[...filtreParClassification].map(([classif, filtre]) => ([classif, listeEspècesProtégées.filter(filtre)]))
)

console.log('espècesProtégéesParClassification', espècesProtégéesParClassification)

const app = new App({
target: document.querySelector('.svelte-main'),
props: {
espèces: [...dataMap.values()],
espècesProtégéesParClassification,
descriptionMenacesEspèces: [
{
classification: "oiseau", // Type d'espèce menacée
Expand Down
3 changes: 3 additions & 0 deletions scripts/types.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
/** @typedef { 1 | 2 | 3 | 4 | 5 | 60 | 70 } ActivitéMenançante // tous */
/** @typedef { 0 | 1 | 2 | 10 | 11 | 12 | 13 | 14 } MéthodeMenançante // tous */
/** @typedef { 'Animalia' | 'Plantae' | 'Fungi' | 'Chromista' } Règne // incomplet */
/** @typedef { 'Amphibia' | 'Actinopterygii' | 'Malacostraca' | 'Mammalia' | 'Aves' | 'Anthozoa' | 'Equisetopsida' | 'Gastropoda' | 'Insecta' | 'Bivalvia' | 'Petromyzonti' | 'Lecanoromycetes' | 'Ulvophyceae' | 'Holothuroidea' | 'Elasmobranchii' | 'Arachnida' | 'Charophyceae' | 'Cephalopoda' | 'Echinoidea' | 'Phaeophyceae' } Classe // incomplet */


/**
* @typedef {"oiseau" | "faune non-oiseau" | "flore"} ClassificationEtreVivant
Expand Down

0 comments on commit 6762e28

Please sign in to comment.