import { FreeDatas2HTML, Pagination, SearchEngine, Selector } from "../../src/FreeDatas2HTML"; import { MixedFieldsRender } from "../../src/extensions/MixedFieldsRender"; const initialise=async () => { try { // Création d'un convertisseur parsant des données transmises en JSON : const converter=new FreeDatas2HTML("CSV"); converter.parser.setRemoteSource({ url: "https://www.segal.bzh/data/medias/partenaires/partenaires.csv"}); // Parsage des données, qui ne sont pas encore affichées : await converter.run(); // Chaînes à utiliser par le moteur de rendu : const renderSettings= { allBegining: "", datasLinesDisplaying: `
  • ##0##

  • ` }; // Fonctions spécifiques pour créer les liens hypertextes : const rendName2HTML=(values: {[index: string]:string} ) : string => { if(values["Fiche partenaire"] !== undefined && values["Fiche partenaire"].trim() !== "") return `${values["Nom commercial"].trim()}`; else return values["Nom commercial"].trim(); }; const rendSSDomaine2HTML=(values: {[index: string]:string} ) : string => { if(values["Sous activités"] !== undefined && values["Sous activités"].trim() !== "") return `
  • ${values["Sous activités"].trim()}
  • `; else return ""; }; const rendLieuxVente2HTML=(values: {[index: string]:string} ) : string => { if(values["Ville (si adresse pertinente)"] !== undefined && values["Ville (si adresse pertinente)"].trim() !== "") return `${values["Adresse (si pertinente)"].trim()}, ${values["Ville (si adresse pertinente)"].trim()}`; else return ""; }; const rendTel2HTML=(values: {[index: string]:string} ) : string => { if(values["Téléphone"].trim() !== "") return `
  • ${values['Téléphone'].trim()}
  • `; else return ""; }; const rendEmail2HTML=(values: {[index: string]:string} ) : string => { if(values["Courriel"].trim() !== "") return `
  • 📧 Courriel
  • `; else return ""; }; const rendSite2HTML=(values: {[index: string]:string} ) : string => { if(values["www"].trim() !== "") return `
  • Sa page internet
  • `; else if(values["FB"].trim() !== "") return `
  • Sa page facebook
  • `; else if(values["IG"].trim() !== "") return `
  • Sa page instagram
  • `; else return ""; }; const myRender=new MixedFieldsRender(renderSettings); myRender.fieldRenders=[{ name:"Nom commercial", rend2HTML: rendName2HTML}, { name:"Sous activités", rend2HTML: rendSSDomaine2HTML}, { name:"Ville (si adresse pertinente)", rend2HTML: rendLieuxVente2HTML}, { name:"Téléphone", rend2HTML: rendTel2HTML}, { name:"Courriel", rend2HTML: rendEmail2HTML}, { name:"www", rend2HTML: rendSite2HTML} ]; converter.datasRender=myRender; // Création des filtres : const filtre1=new Selector(converter, 1, { id:"filtreActivites"} ); filtre1.filter2HTML("Domaine d'activité"); // Dont un moteur de recherche : const mySearch=new SearchEngine(converter, { id:"search" }); mySearch.label=""; mySearch.btnTxt="Chercher"; // La recherche se lance automatiquement, dès que 2 caractères sont saisis : mySearch.automaticSearch=true; mySearch.nbCharsForSearch=2; mySearch.placeholder="Exemples : crêperie Port-Louis, médecin Languidic..."; mySearch.filter2HTML(); converter.datasFilters=[filtre1,mySearch]; // Id de l'élément HTML devant afficher la liste de partenaires : converter.datasViewElt={ id:"partenaires" }; // Pas d'affichage initial, car il est généré en PHP côté backend. } 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 devs :-)\nLe code source de ce script est libre et vous pouvez le trouver à cette adresse :\n https://forge.chapril.org/Fab_Blab/freeDatas2HTML/src/branch/master/integrations/src/segal.ts"); initialise();