biblio-code

Démo en direct des modules de la bibliothèque. Tout ce que tu vois tourne avec le vrai code de github.com/gninoue-dev/biblio-code.

Banque

Montant & devises

argent.js · devises.js

formaterMontant(versUnitesMineures("1 234,56"), "EUR")

IBAN

iban.js · masquage.js · presse-papier.js

validerIban(iban) · formaterIban(iban) · masquer(iban)

Carte bancaire

carte-bancaire.js · aide à la saisie uniquement

validerLuhn(n) · detecterReseau(n) · formaterNumeroCarte(n)

Simulateur de prêt

pret.js

mensualite(capital, 3.5, 240) · tableauAmortissement(...)

Relevé de transactions

transactions.js · argent.js · telechargement.js. Montants en francs CFA.

regrouperParMois(filtrerTransactions(liste, { type: "debit", recherche })) · exporterCsv(liste)

Mobile money & montant en lettres

mobile-money.js · montant-en-lettres.js

operateurCI("07 07 12 34 56") · montantEnLettres(150000, "XOF")

Déconnexion après inactivité

inactivite.js · modale.js. Version courte : 15 s

Session inactive.
surveillerInactivite({ dureeMs, surAvertissement, surExpiration })

Formulaires

Inscription

validation.js · mot-de-passe.js

Force : —
validerFormulaire(donnees, { email: [[valider.email, "Email invalide"]] })

Code de vérification (SMS / 2FA)

champ-otp.js. Le bon code est 123456. Essaie de coller un code.

champOtp(conteneur, { surComplet: (code) => verifier(code) })

Appli web

Notifications & confirmation

toasts.js · modale.js

toast("Virement envoyé", { type: "succes" })
if (await confirmer("Supprimer ?")) …

Panier (état global)

store.js. Deux affichages abonnés au même état

Articles : 0
Panier vide
store.abonner(afficher) · store.modifier(e => ({ ...e, panier: [...] }))

Traductions

i18n.js

i18n.t("bonjour", { nom: "Awa" })

Routeur

routeur.js. Regarde l'adresse de la page

creerRouteur({ "/comptes/:id": ({ id }) => … })

Tableau de données

tableau-donnees.js · pagination.js. Recherche sans accents (« kone » trouve « Koné »)

paginer(trierPar(rechercher(clients, q, ["nom", "ville"]), champ, sens), page, 8)

Panier e-commerce

panier.js · -10 % dès 20 000 F, livraison offerte dès 50 000 F

calculerPanier(lignes, { remise, livraison: 2000, livraisonGratuiteDes: 50000, tauxTva: 18 })

Graphiques sans bibliothèque

graphiques.js · dépenses du relevé ci-dessus

sparkline(valeurs) · barres([{ libelle, valeur }])

Compression d'image

compression-image.js · choisis une photo lourde

Aucune image.
await compresserImage(fichier, { largeurMax: 1280, qualite: 0.75 })

Envoi de fichiers

upload-fichiers.js. Images uniquement, 5 Mo max

Glisse des images ici
ou clique pour choisir
zoneDepot(zone, { accepter: ["image/*"], tailleMaxMo: 5, surFichiers })

Défilement infini

defilement-infini.js. 60 éléments chargés par lots de 15

Chargement…
defilementInfini(sentinelle, charger, { racine: boite })

Utilitaires

Debounce vs throttle

debounce.js · throttle.js. Tape vite dans le champ

Frappes : 0 · throttle (300 ms) : 0 · debounce (400 ms) : 0
input.oninput = debounce(rechercher, 400)

Texte

texte.js

slugifier(t) · tronquer(t, 20) · echapperHtml(t)

Recherche tolérante aux fautes

recherche-floue.js · essaie « yamousokro », « bwake », « abijan »

suggestions("abijan", villes)

Compte à rebours

compte-a-rebours.js

compteARebours(30_000, { surTic, surFin })

Jours ouvrés & fériés

jours-ouvres.js · Côte d'Ivoire

ajouterJoursOuvres("2026-12-24", 2) · joursFeries(2026, "CI")

Dates

dates.js

dateRelative(date) · formaterDate(date)