diff --git a/package.json b/package.json
index 6addb89..924366c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "freedatas2html",
- "version": "0.7.2",
+ "version": "0.7.3",
"description": "Visualization of data from various sources (CSV, API, HTML...) with filters, classification, pagination, etc.",
"main": "index.js",
"scripts": {
diff --git a/src/freeDatas2HTML.ts b/src/freeDatas2HTML.ts
index 0a068e2..68c4dad 100644
--- a/src/freeDatas2HTML.ts
+++ b/src/freeDatas2HTML.ts
@@ -107,12 +107,12 @@ export class FreeDatas2HTML
set datasSortingFunctions(SortingFunctions: SortingFunctions[])
{
this._datasSortingFunctions=[];
- for(let i = 0; i < SortingFunctions.length; i++)
+ for(let checkedFunction of SortingFunctions)
{
- if(! this.checkFieldExist(SortingFunctions[i].datasFieldNb))
+ if(! this.checkFieldExist(checkedFunction.datasFieldNb))
throw new Error(errors.converterFieldNotFound);
else
- this._datasSortingFunctions.push(SortingFunctions[i]);
+ this._datasSortingFunctions.push(checkedFunction);
}
}
@@ -134,10 +134,10 @@ export class FreeDatas2HTML
// Retourne l'éventuelle fonction spécifique de classement associée à un champ
public getSortingFunctionForField(datasFieldNb: number): SortingFunctions|undefined
{
- for(let i in this._datasSortingFunctions)
+ for(let checkedFunction of this._datasSortingFunctions)
{
- if(this._datasSortingFunctions[i].datasFieldNb === datasFieldNb)
- return this._datasSortingFunctions[i];
+ if(checkedFunction.datasFieldNb === datasFieldNb)
+ return checkedFunction;
}
return undefined;
}
@@ -177,11 +177,8 @@ export class FreeDatas2HTML
this.datasHTML=this.createDatas2Display(this.fields, this.datas);
this._datasViewElt.eltDOM.innerHTML=this.datasHTML;
// On réactive les éventuels champs de classement qui ont été écrasés
- for(let i in this.datasSortingFields)
- {
- let field=this.datasSortingFields[i];
+ for(let field of this.datasSortingFields)
field.field2HTML();
- }
}
}
diff --git a/src/freeDatas2HTMLPagination.ts b/src/freeDatas2HTMLPagination.ts
index 07abf87..6ed50d4 100644
--- a/src/freeDatas2HTMLPagination.ts
+++ b/src/freeDatas2HTMLPagination.ts
@@ -51,9 +51,9 @@ export class Pagination implements Paginations
options.displayElement=FreeDatas2HTML.checkInDOMById(options.displayElement);
if(options.values.length === 0)
throw new Error(errors.paginationNeedOptionsValues);
- for(let i in options.values)
+ for(let option of options.values)
{
- if(!Pagination.isPositiveInteger(options.values[i]))
+ if(! Pagination.isPositiveInteger(option))
throw new Error(errors.needPositiveInteger);
}
if(this.selectedValue !== undefined && options.values.indexOf(this.selectedValue) === -1)
@@ -81,8 +81,8 @@ export class Pagination implements Paginations
else
{
let selectorsHTML="";
this._options.displayElement.eltDOM!.innerHTML=selectorsHTML; // initialiser dans le setter
let selectElement=document.getElementById("freeDatas2HTMLPaginationSelector") as HTMLInputElement;
diff --git a/src/freeDatas2HTMLParserForCSV.ts b/src/freeDatas2HTMLParserForCSV.ts
index 712210b..c2d44a2 100644
--- a/src/freeDatas2HTMLParserForCSV.ts
+++ b/src/freeDatas2HTMLParserForCSV.ts
@@ -109,8 +109,8 @@ export class ParserForCSV implements Parsers
if(parser._datasRemoteSource.headers !== undefined)
{
this._privateOptions.downloadRequestHeaders={};
- for (let i in parser._datasRemoteSource.headers)
- this._privateOptions.downloadRequestHeaders[""+parser._datasRemoteSource.headers[Number(i)].key+""]=parser._datasRemoteSource.headers[Number(i)].value;
+ for(let i=0; i< parser._datasRemoteSource.headers.length; i++)
+ this._privateOptions.downloadRequestHeaders[parser._datasRemoteSource.headers[i].key]=parser._datasRemoteSource.headers[i].value;
}
}
else if(parser._datas2Parse !== "")
@@ -132,10 +132,10 @@ export class ParserForCSV implements Parsers
{
// Attention, Papa Parse peut accepter un nom de champ vide
let realFields: string[]=[];
- for(let i in results.meta.fields)
+ for(let field of results.meta.fields)
{
- if(results.meta.fields[i].trim() !== "")
- realFields.push(results.meta.fields[i]);
+ if(field.trim() !== "")
+ realFields.push(field);
}
if(realFields.length === 0)
reject(new Error(errors.parserFail));
diff --git a/src/freeDatas2HTMLRender.ts b/src/freeDatas2HTMLRender.ts
index 814238a..3fd144d 100644
--- a/src/freeDatas2HTMLRender.ts
+++ b/src/freeDatas2HTMLRender.ts
@@ -40,7 +40,7 @@ export class Render implements DatasRenders
if(this.settings.fieldsBegining !== undefined && this.settings.fieldDisplaying !== undefined && this.settings.fieldsEnding !== undefined )
{
datasHTML+=this.settings.fieldsBegining;
- for (let field of this._converter.fields)
+ for(let field of this._converter.fields)
datasHTML+=this.settings.fieldDisplaying.replace("#FIELDNAME", field);
datasHTML+=this.settings.fieldsEnding;
}
@@ -49,7 +49,7 @@ export class Render implements DatasRenders
// Suivant les objets/lignes, les champs peuvent se trouver dans un ordre différent,
// ou encore des champs peuvent manquer ou être en trop.
// Seuls les champs de "fields" doivent être traités et en respectant l'ordre de ce tableau.
- for (let row of datas)
+ for(let row of datas)
{
datasHTML+=this.settings.lineBegining;
for(let field of this._converter.fields)
diff --git a/src/freeDatas2HTMLSelector.ts b/src/freeDatas2HTMLSelector.ts
index 9bacdab..9d34c56 100644
--- a/src/freeDatas2HTMLSelector.ts
+++ b/src/freeDatas2HTMLSelector.ts
@@ -60,34 +60,35 @@ export class Selector implements Selectors
else
{
this.name=this._converter.fields![this._datasFieldNb]; // this._converter.parse... ne peuvent être indéfinis si this._converter existe (cf constructeur)
- for (let row in this._converter.datas)
+ for (let row of this._converter.datas)
{
if(this._separator === undefined)
{
- let checkedValue=String(this._converter.datas[row][this.name]);
- if(checkedValue !== "" && this.values.indexOf(checkedValue) === -1)
- this.values.push(checkedValue);
+ if(row[this.name] !== "" && this.values.indexOf(row[this.name]) === -1)
+ this.values.push(row[this.name]);
}
else
{
- let checkedValues=String(this._converter.datas[row][this.name]).split(this._separator); // String() car les données peuvent être des chiffres, etc.
- for(let i in checkedValues)
+ let checkedValues=row[this.name].split(this._separator);
+ for(let value of checkedValues)
{
- let checkedValue=checkedValues[i];
- if(checkedValue !== "" && this.values.indexOf(checkedValue) === -1)
- this.values.push(checkedValue);
+ if(value !== "" && this.values.indexOf(value) === -1)
+ this.values.push(value);
}
}
}
if(this.values.length > 0)
{
+ // Classement des données à l'aide (ou non) d'une fonction spécifique :
if(this._converter.getSortingFunctionForField(this._datasFieldNb) !== undefined)
- this.values.sort(this._converter.getSortingFunctionForField(this._datasFieldNb)!.sort); // si une fonction est définie pour ce champ, sort() doit exister, cf. interface
+ this.values.sort(this._converter.getSortingFunctionForField(this._datasFieldNb)!.sort); // sans le "!" : TS2532: Object is possibly 'undefined' ??
else
this.values.sort(compare());
- let selectorsHTML="