import { FreeDatas2HTML, Pagination, Selector, SortingField } from "./freeDatas2HTML"; const initialise = async () => { try { // Fonction spécifique de classement utile pour les données du 4ième champs const mySort = (a: any, b: any, order: "asc"|"desc" = "asc") => { const values = [ "> 100000", "> 1 et < 100 000", "≤ 1", "Traces", "Inexistant"]; if(order === "desc") values.reverse(); if(values.indexOf(a) > values.indexOf(b)) return -1; else if(values.indexOf(a) < values.indexOf(b)) return 1; else return 0; }; // Création d'un convertisseur parsant les données d'un fichier CSV "distant" let converter=new FreeDatas2HTML(); converter.datasViewElt={ id:"datas" }; converter.datasSourceUrl="http://localhost:8080/datas/elements-chimiques.csv"; await converter.parse(); converter.datasSortingFunctions=[{ datasFieldNb: 4, sort:mySort }]; // Configuration de la pagination const pagination=new Pagination(converter, { id:"pages" }, "Page à afficher :"); pagination.options={ displayElement: { id:"paginationOptions" }, values: [10,20,50,500] , name: "Choix de pagination :" }; pagination.selectedValue=10; // revoir car n'est pas testé si déclaré avant les options converter.pagination=pagination; pagination.rend2HTML(); // Affichage initial await converter.run(); // Création d'outils permettant de filtrer les données des champs de données let filtre1=new Selector(converter); filtre1.datasViewElt={ id:"filtre1"}; filtre1.datasFieldNb=3; filtre1.selector2HTML(); let filtre2=new Selector(converter); filtre2.datasViewElt={ id:"filtre2"}; filtre2.datasFieldNb=4; filtre2.selector2HTML(); let filtre3=new Selector(converter); filtre3.datasViewElt={ id:"filtre3"}; filtre3.datasFieldNb=5; filtre3.separator=","; filtre3.selector2HTML(); // Injection des filtres dans le convertisseur converter.datasSelectors=[filtre1,filtre2,filtre3]; // Ajout de champs permettant de classer les données let sortingField1=new SortingField(converter); sortingField1.datasFieldNb=0; sortingField1.field2HTML(); let sortingField2=new SortingField(converter); sortingField2.datasFieldNb=1; sortingField2.field2HTML(); let sortingField3=new SortingField(converter); sortingField3.datasFieldNb=2; sortingField3.field2HTML(); let sortingField4=new SortingField(converter); sortingField4.datasFieldNb=4; sortingField4.field2HTML(); // Injection dans le convertisseur converter.datasSortingFields=[sortingField1,sortingField2,sortingField3,sortingField4]; } catch(e) { console.error(e); if(document.getElementById("datas")!==null) document.getElementById("datas")!.innerHTML="Désolé, mais un problème technique empêche l'affichage des données."; } } initialise();