export interface Counter { displayElement?: DOMElement; // peut être undefined si on ne souhaite pas d'affichage automatique dans la page value?: number; // undefined jusqu'à recevoir sa première valeur } export interface DatasRenders // interface à respecter par toute alternative à la classe Render par défaut { rend2HTML(datas: any[]): string; } export interface DatasRendersSettings // interface spécifique à la classe Render par défaut. { allBegining: string; allEnding: string; fieldsBegining?: string; fieldsEnding?: string; fieldDisplaying?: string; linesBegining: string; linesEnding: string; lineBegining: string; lineEnding: string; dataDisplaying: string; } export interface DOMElement { id: string; eltDOM?: HTMLElement; } export interface Paginations { options?: PaginationsOptions; selectedValue?: number; // on peut utiliser une Pagination sans proposer d'options à l'utilisateur. pages: PaginationsPages; rend2HTML(): void; creaPageSelector(nbTotal:number) : void; } export interface PaginationsOptions { displayElement: DOMElement; name?: string; values: number[]; }; export interface PaginationsPages { displayElement: DOMElement; name: string; values?: number[]; selectedValue?: number; } export interface Datas { [key: string]: string; } export interface ParseErrors // erreurs non bloquantes rencontrées lors du parsage de données { code?: string; message: string; row: number; type?: string; } export interface ParseResults { datas: []; errors: ParseErrors[]; fields: string[]; } export interface Parsers { datasRemoteSource: RemoteSource|undefined; datas2Parse:string|undefined; parseResults:ParseResults|undefined; parse(): Promise; } export interface RemoteSource { url: string; headers?: { key:string, value:string|boolean|number }[] ;// revoir types possibles pour Headers ? withCredentials?:boolean; } export interface Selectors { datasViewElt: DOMElement; datasFieldNb: number; separator?: string|undefined; name?: string; values?: string[]; selector2HTML() : void; dataIsOk(data: any) : boolean; } export interface SortingFields { datasFieldNb: number; order?: "asc"|"desc"|undefined; field2HTML() : void; } export interface SortingFunctions { datasFieldNb: number; sort(a: any,b: any, order?: "asc"|"desc"): number; // cf. https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/sort }