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
surveillerInactivite({ dureeMs, surAvertissement, surExpiration })
Formulaires
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
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
await compresserImage(fichier, { largeurMax: 1280, qualite: 0.75 })
Envoi de fichiers
upload-fichiers.js. Images uniquement, 5 Mo max
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
defilementInfini(sentinelle, charger, { racine: boite })
Utilitaires
Debounce vs throttle
debounce.js · throttle.js. Tape vite dans le champ
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)