From 0b3392cbd8dbafc4347262d72b3996c36f5f9374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Mon, 30 Aug 2021 17:42:09 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9placement=20interfaces=20dans=20script?= =?UTF-8?q?=20s=C3=A9par=C3=A9=20(suite).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/freeCSV2HTML.ts | 14 ++++++-------- src/freeCSV2HTMLInterfaces.ts | 11 +++++++++++ 2 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 src/freeCSV2HTMLInterfaces.ts diff --git a/src/freeCSV2HTML.ts b/src/freeCSV2HTML.ts index 5a8308d..7af6f70 100644 --- a/src/freeCSV2HTML.ts +++ b/src/freeCSV2HTML.ts @@ -14,7 +14,7 @@ export class freeCSV2HTML public parseDatas: papaParseDatas[] = []; public parseErrors: papaParseErrors[] = []; public datasHTML: string = ""; - public stopIfParseErrors : boolean = false; + public stopIfParseErrors: boolean = false; set datasViewElt(elt: domElement) { @@ -38,7 +38,7 @@ export class freeCSV2HTML set datasSelectors(selectionElts: selectors[]) { - this._datasSelectors=[]; // remise à zéro + this._datasSelectors=[]; let checkContainerExist: HTMLElement|null; for(let i = 0; i < selectionElts.length; i++) { @@ -108,7 +108,7 @@ export class freeCSV2HTML await this.parse(); - if(this.parseDatas.length === 0 || this.parseMeta!.fields === undefined) // je force avec "!", car l'existence de parseMeta certaine après parse(). + if(this.parseDatas.length === 0 || this.parseMeta!.fields === undefined) // je force avec "!", car l'existence de parseMeta est certaine après parse(). throw new Error(errors.datasNotFound); else if(this.stopIfParseErrors && this.parseErrors.length!==0) console.error(this.parseErrors); @@ -140,15 +140,14 @@ export class freeCSV2HTML } if(values.length > 0) { - values.sort(); - this._datasSelectors[i].name = colName; + values.sort(); // à revoir, car gère mal la casse, les nombres, etc. + this._datasSelectors[i].name=colName; this._datasSelectors[i].values=values; selectorsHTML[i]=""; this._datasSelectors[i].eltDOM!.innerHTML=selectorsHTML[i]; - // On recharge l'affichage des données lors de chaque choix de l'utilisateur : let selectElement = document.getElementById("CSVDatasSelector"+i) as HTMLInputElement; selectElement.addEventListener('change', function(e) { @@ -173,7 +172,7 @@ export class freeCSV2HTML checkSelectorExist=document.querySelector("#"+ this._datasSelectors[i].id+" select"); if(checkSelectorExist != null && checkSelectorExist.value != "0") filters.push({ field: this._datasSelectors[i].name, value: this._datasSelectors[i].values![checkSelectorExist.selectedIndex-1] }); - // Attention : si on récupère innerHTML du select, certains caractères peuvent être modifiés ! + // Attention : si on récupère innerHTML du select, certains caractères peuvent être modifiés ! } // Création du tableau de données : let datasHTML=""; @@ -206,5 +205,4 @@ export class freeCSV2HTML datasHTML+="
"; return datasHTML; } - } \ No newline at end of file diff --git a/src/freeCSV2HTMLInterfaces.ts b/src/freeCSV2HTMLInterfaces.ts new file mode 100644 index 0000000..d433d7c --- /dev/null +++ b/src/freeCSV2HTMLInterfaces.ts @@ -0,0 +1,11 @@ +export interface domElement +{ + id: string; + eltDOM?: HTMLElement; +} +export interface selectors extends domElement +{ + colCSV: number; + name?: string; + values? : string[]; +} \ No newline at end of file