import { FreeDatas2HTML, Pagination, Render, SearchEngine, 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("CSV"); converter.parser.setRemoteSource({ url:"http://localhost:8080/datas/elements-chimiques.csv" }); await converter.run(); // parsage // Adaptation du rendu suivant la taille de l'écran const myRender=new Render(); if(window.innerWidth < 800) { myRender.settings= { allBegining:"

Affichage petits écrans !

", allEnding:"", linesBegining:"", lineBegining:"
  • ", dataDisplaying:"
  • #FIELDNAME : #VALUE
  • ", }; converter.datasRender=myRender; } else { myRender.settings.allBegining=""; converter.datasRender=myRender; } // Ajout d'une fonction de classement spécifique 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; converter.pagination=pagination; pagination.options2HTML(); // Création d'outils permettant de filtrer les données des champs de données let filtre1=new Selector(converter, 3, { id:"filtre1"} ); filtre1.filter2HTML(); let filtre2=new Selector(converter, 4, { id:"filtre2"} ); filtre2.filter2HTML(); let filtre3=new Selector(converter, 5, { id:"filtre3"}, ","); filtre3.filter2HTML(); // + un moteur de recherche const mySearch=new SearchEngine(converter, { id:"search" }, [1,3,5]); mySearch.label="Qui cherche trouve ?"; mySearch.btnTxt="Va chercher !"; mySearch.automaticSearch=true; mySearch.nbCharsForSearch=2; mySearch.placeholder="Tapes en NB, chef !"; mySearch.filter2HTML(); // + Injection des filtres dans le convertisseur converter.datasFilters=[filtre1,filtre2,filtre3, mySearch]; // Ajout de champs permettant de classer les données // Uniquement avec un rendu tableau (grand écran), car entêtes de colonne nécessaires if(window.innerWidth >= 800) { let sortingField1=new SortingField(converter, 0); let sortingField2=new SortingField(converter, 1); let sortingField3=new SortingField(converter, 2); let sortingField4=new SortingField(converter, 4); converter.datasSortingFields=[sortingField1,sortingField2,sortingField3,sortingField4]; } // Affichage initial converter.datasViewElt={ id:"datas" }; converter.datasCounterElt={ id:"compteur" }; converter.refreshView(); } 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();