import { FreeDatas2HTML, Pagination, Render, SearchEngine, Selector, SortingField } from "../FreeDatas2HTML"; const initialise=async () => { try { // Création d'un convertisseur parsant des données transmises en JSON : const converter=new FreeDatas2HTML("JSON"); // Exemple d'utilisation de headers (inutiles ici) : // converter.parser.setRemoteSource({ url: "https://freedatas2html.le-fab-lab.com/datas/posts2.json", withCredentials:true, headers: [{ key:"Authorization", value:"Token YWxhZGRpbjpvcGVuc2VzYW1l" }] }); converter.parser.setRemoteSource({ url: "https://freedatas2html.le-fab-lab.com/datas/posts2.json" }); // Parsage des données, qui ne sont pas encore affichées : await converter.run(); // 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 { // Ici, on adapte juste la balise encadrant l'ensemble des données pour passer une classe de paper.css : myRender.settings.allBegining=""; converter.datasRender=myRender; } // Configuration de la pagination : const pagination=new Pagination(converter, { id:"pages" }, "Page à afficher :"); pagination.options={ displayElement: { id:"paginationOptions" }, values: [15,30,90,150] , name: "Nombre de lignes par page :" }; pagination.selectedValue=15; converter.pagination=pagination; pagination.options2HTML(); // Désignation des champs permettant de classer les données : // Uniquement avec un rendu sous forme de tableau (grand écran), car des en-têtes de colonne sont nécessaires. if(window.innerWidth >= 800) { let sortingField1=new SortingField(converter, 0); let sortingField2=new SortingField(converter, 1); let sortingField3=new SortingField(converter, 2); converter.datasSortingFields=[sortingField1,sortingField2,sortingField3]; } // Création d'un filtre sur la premier champ : let filtre1=new Selector(converter, 0, { id:"filtre1"} ); filtre1.filter2HTML(); // + Un moteur de recherche, mais filtrant les données seulement sur les 2 derniers champs : const mySearch=new SearchEngine(converter, { id:"search" }, [2,3]); mySearch.label="Qui cherche trouve ?"; mySearch.btnTxt="Va chercher !"; // La recherche se lance automatiquement, dès que 2 caractères sont saisis : mySearch.automaticSearch=true; mySearch.nbCharsForSearch=2; mySearch.placeholder="Tapes en NB, chef !"; mySearch.filter2HTML(); // Injection des filtres dans le convertisseur : converter.datasFilters=[filtre1, mySearch]; // Affichage initial avec l'id de l'élément HTML devant afficher le compteur : converter.datasViewElt={ id:"datas" }; converter.datasCounterElt={ id:"compteur" }; converter.refreshView(); } catch(e) { console.error(e); document.getElementById("datas")!.innerHTML=`
    Désolé, mais un problème technique empêche l'affichage des données.
    `; } } console.log("Hello, les dev !\nLe code source TypeScript utilisé pour faire fonctionner cette page est lisible ici : :\nhttps://forge.chapril.org/Fab_Blab/FreeDatas2HTML/src/branch/master/src/demo/exampleWithJSON.ts"); initialise();