2021-11-04 15:50:40 +01:00
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _ _generator = ( this && this . _ _generator ) || function ( thisArg , body ) {
var _ = { label : 0 , sent : function ( ) { if ( t [ 0 ] & 1 ) throw t [ 1 ] ; return t [ 1 ] ; } , trys : [ ] , ops : [ ] } , f , y , t , g ;
return g = { next : verb ( 0 ) , "throw" : verb ( 1 ) , "return" : verb ( 2 ) } , typeof Symbol === "function" && ( g [ Symbol . iterator ] = function ( ) { return this ; } ) , g ;
function verb ( n ) { return function ( v ) { return step ( [ n , v ] ) ; } ; }
function step ( op ) {
if ( f ) throw new TypeError ( "Generator is already executing." ) ;
while ( _ ) try {
if ( f = 1 , y && ( t = op [ 0 ] & 2 ? y [ "return" ] : op [ 0 ] ? y [ "throw" ] || ( ( t = y [ "return" ] ) && t . call ( y ) , 0 ) : y . next ) && ! ( t = t . call ( y , op [ 1 ] ) ) . done ) return t ;
if ( y = 0 , t ) op = [ op [ 0 ] & 2 , t . value ] ;
switch ( op [ 0 ] ) {
case 0 : case 1 : t = op ; break ;
case 4 : _ . label ++ ; return { value : op [ 1 ] , done : false } ;
case 5 : _ . label ++ ; y = op [ 1 ] ; op = [ 0 ] ; continue ;
case 7 : op = _ . ops . pop ( ) ; _ . trys . pop ( ) ; continue ;
default :
if ( ! ( t = _ . trys , t = t . length > 0 && t [ t . length - 1 ] ) && ( op [ 0 ] === 6 || op [ 0 ] === 2 ) ) { _ = 0 ; continue ; }
if ( op [ 0 ] === 3 && ( ! t || ( op [ 1 ] > t [ 0 ] && op [ 1 ] < t [ 3 ] ) ) ) { _ . label = op [ 1 ] ; break ; }
if ( op [ 0 ] === 6 && _ . label < t [ 1 ] ) { _ . label = t [ 1 ] ; t = op ; break ; }
if ( t && _ . label < t [ 2 ] ) { _ . label = t [ 2 ] ; _ . ops . push ( op ) ; break ; }
if ( t [ 2 ] ) _ . ops . pop ( ) ;
_ . trys . pop ( ) ; continue ;
}
op = body . call ( thisArg , _ ) ;
} catch ( e ) { op = [ 6 , e ] ; y = 0 ; } finally { f = t = 0 ; }
if ( op [ 0 ] & 5 ) throw op [ 1 ] ; return { value : op [ 0 ] ? op [ 1 ] : void 0 , done : true } ;
}
} ;
import { FreeDatas2HTML , Pagination , Render , SearchEngine , SortingField } from "../FreeDatas2HTML" ;
var initialise = function ( ) {
try {
var dataDisplayElt _1 = document . getElementById ( "datas" ) ;
var dataDisplayOptionsElt _1 = document . getElementById ( "displayOptions" ) ;
var myFile _1 = document . getElementById ( "myFile" ) ;
var myForm = document . getElementById ( "userSettings" ) ;
var pagesElt _1 = document . getElementById ( "pages" ) ;
var paginationElt _1 = document . getElementById ( "paginationOptions" ) ;
var searchElt _1 = document . getElementById ( "search" ) ;
if ( dataDisplayElt _1 === null || dataDisplayOptionsElt _1 === null || myFile _1 === null || myForm === null || pagesElt _1 === null || paginationElt _1 === null || searchElt _1 === null )
throw new Error ( "Tous les éléments HTML nécessaires au fonctionnement n'ont pas été trouvés dans la page;" ) ;
2021-11-09 16:49:36 +01:00
var converter _1 ;
var myRender _1 = new Render ( ) ;
myRender _1 . settings . allBegining = "<table class='table-hover'><caption>Nombre de résultats : <span id='counter'></span></caption>" ;
myFile _1 . addEventListener ( "change" , function ( e ) {
2021-11-04 15:50:40 +01:00
dataDisplayElt _1 . innerHTML = "" ;
dataDisplayOptionsElt _1 . innerHTML = "" ;
pagesElt _1 . innerHTML = "" ;
paginationElt _1 . innerHTML = "" ;
searchElt _1 . innerHTML = "" ;
converter _1 = new FreeDatas2HTML ( "CSV" ) ;
converter _1 . datasRender = myRender _1 ;
var selectedFiles = myFile _1 . files ;
if ( selectedFiles !== null && selectedFiles . length === 1 ) {
if ( selectedFiles [ 0 ] . type !== "text/csv" )
dataDisplayOptionsElt _1 . innerHTML = "<p class='text-danger'>Le document que vous avez s\u00E9lectionn\u00E9 ne semble pas \u00EAtre un fichier CSV valide.</p>" ;
else {
var reader _1 = new FileReader ( ) ;
reader _1 . onload = function ( e ) {
return _ _awaiter ( this , void 0 , void 0 , function ( ) {
var fieldsSelectorHTML , i ;
return _ _generator ( this , function ( _a ) {
switch ( _a . label ) {
case 0 :
converter _1 . parser . datas2Parse = reader _1 . result ;
return [ 4 , converter _1 . run ( ) ] ;
case 1 :
_a . sent ( ) ;
fieldsSelectorHTML = "<fieldset class=\"form-group\"><legend>Quels champs souhaitez-vous afficher ?</legend>" ;
for ( i = 0 ; i < converter _1 . fields . length ; i ++ )
fieldsSelectorHTML += "<label for=\"selectedField_" + i + "\" class=\"paper-check\"> <input type=\"checkbox\" class=\"selectedFields\" id=\"selectedField_" + i + "\" name=\"selectedField_" + i + "\" value=" + i + " checked> <span>" + converter _1 . fields [ i ] + "</span></label>" ;
fieldsSelectorHTML += "</fieldset>" ;
dataDisplayOptionsElt _1 . innerHTML = fieldsSelectorHTML + "<button type=\"submit\" class=\"btn-success\">Valider</button>" ;
return [ 2 ] ;
}
} ) ;
} ) ;
} ;
reader _1 . readAsText ( selectedFiles [ 0 ] ) ;
}
}
} ) ;
myForm . addEventListener ( "submit" , function ( e ) {
e . preventDefault ( ) ;
dataDisplayElt _1 . innerHTML = "" ;
var fields2Rend = [ ] ;
var checkBox ;
for ( var i = 0 ; i < converter _1 . fields . length ; i ++ ) {
checkBox = document . getElementById ( "selectedField_" + i ) ;
if ( checkBox !== null ) {
if ( checkBox . checked )
fields2Rend . push ( i ) ;
}
}
if ( fields2Rend . length === 0 )
2021-11-09 16:49:36 +01:00
dataDisplayElt _1 . innerHTML = "<p class='text-danger'>Merci de s\u00E9lectionner les champs que vous souhaitez afficher !</p>" ;
2021-11-04 15:50:40 +01:00
else {
converter _1 . fields2Rend = fields2Rend ;
converter _1 . datasViewElt = { id : "datas" } ;
var mySearch = new SearchEngine ( converter _1 , { id : "search" } ) ;
mySearch . label = "Qui cherche trouve ?" ;
mySearch . btnTxt = "Va chercher !" ;
mySearch . automaticSearch = true ;
mySearch . nbCharsForSearch = 2 ;
mySearch . placeholder = "Saisir un moins 2 caractères" ;
mySearch . filter2HTML ( ) ;
converter _1 . datasFilters = [ mySearch ] ;
var pagination = new Pagination ( converter _1 , { id : "pages" } , "Page à afficher :" ) ;
2021-11-09 16:49:36 +01:00
pagination . options = { displayElement : { id : "paginationOptions" } , values : [ 10 , 20 , 50 , 100 , 500 ] , name : "Choix de pagination :" } ;
pagination . selectedValue = 20 ;
2021-11-04 15:50:40 +01:00
converter _1 . pagination = pagination ;
pagination . options2HTML ( ) ;
converter _1 . datasCounterElt = { id : "counter" } ;
var sortingField = void 0 ;
converter _1 . datasSortingFields = [ ] ;
for ( var i = 0 ; i < converter _1 . fields2Rend . length ; i ++ ) {
sortingField = new SortingField ( converter _1 , converter _1 . fields2Rend [ i ] ) ;
converter _1 . datasSortingFields . push ( sortingField ) ;
}
converter _1 . refreshView ( ) ;
2021-11-09 16:49:36 +01:00
var here = window . location ;
if ( window . location . hash !== "" ) {
window . location . hash = "" ;
window . location . assign ( here + "paginationOptions" ) ;
}
else
window . location . assign ( here + "#paginationOptions" ) ;
2021-11-04 15:50:40 +01:00
}
} ) ;
}
catch ( e ) {
console . error ( e ) ;
2021-11-09 16:49:36 +01:00
document . getElementById ( "datas" ) . innerHTML = "<div class=\"alert alert-warning\">D\u00E9sol\u00E9, mais un probl\u00E8me technique emp\u00EAche le fonctionnement normal de cette page.</div>" ;
2021-11-04 15:50:40 +01:00
}
} ;
2021-11-09 16:49:36 +01:00
console . log ( "Hello, ami développeur :-)\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/exampleWithUserFile.ts\nUn bug ? Une suggestion ? => fabrice@le-fab-lab.com" ) ;
2021-11-04 15:50:40 +01:00
initialise ( ) ;