npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

normad

v1.4.2

Published

Normalisation d'adresse basée sur Open Data Gouvernementales

Downloads

26

Readme

Normad

Installation

npm install normad

Présentation

Ce module permet de normaliser une adresse postal française. Si plusieurs choix sont possibles, une modale s'ouvrira pour permettre à l'utilisateur de choisir la meilleure occurrence.

Le module utilise la modale de Bootstrap si ce dernier est utilisé dans le projet, sinon il ouvrira une modale construite dynamiquement. La CSS pourra être personnalisée.

Paramétrage

Le module nécessite l'instanciation d'une variable normaFields pour lui permettre de reconnaître les champs contenant la ligne adresse, le code postal et la localité :

  • address : Id du champ ligne adresse
  • postcode : Id du champ code postal
  • city : Id du champ commune
  • partial : Permet de définir si la normalisation / contrôle se fait sur toute l'adresse ou uniquement sur l'association Code Postal / Commune. true si contrôle partiel, false sinon, auquel cas le champ address est obligatoire.

Le module permet de gérer plusieurs formulaires sur une même page ; il suffit de définir les champs à auditer dans une structure au préalable de l'ajout du script :

<!-- Audit d'un formulaire -->
<script type="text/javascript">
    var normaFields = {
        address: null,
        postcode: 'cp',
        city: 'commune',
        partial: true
    };
</script>
<script type="text/javascript" src="/path/to/normad.min.js"></script>
<!-- Audit de plusieurs formulaires -->
<script type="text/javascript">
    var normaFields = [{
        address: 'adresse1',
        postcode: 'cp1',
        city: 'commune1',
        partial: false
    },
    {
        address: 'adresse2',
        postcode: 'cp2',
        city: 'commune2',
        partial: false
    }];
</script>
<script type="text/javascript" src="/path/to/normad.min.js"></script>

Personnalisation

La personnalisation des boutons se fait par l'ajout du script :

<!-- Audit d'un formulaire -->
<script type="text/javascript">
    var normaButtons = {
        cancel: {order: 1, label: 'Annuler'},
        submit: {order: 2, label: 'Valider mon choix'}
    };
</script>

Capture d'évènement

Vous pouvez dans un script externe capturer le fait que la mise à jour ait été effectuée par Normad :

<script type="text/javascript">
    document.getElementById('<Locality Input Id>').addEventListener('change', e => {
        if (Normad.normalized === true) {
            // Address was normalized
        } else if (Normad.error !== null) {
            // Erreur rencontrée à la normalisation
        } else if (Normad.cancel === true) {
            // Refus de la normalisation
        }
    });
</script>

Exemples

Pour chaque bouton (cancel ou submit), on pourra définir l'ordre d'affichage et le texte affiché

Versions

In the future...

  • Gestion multilingue
  • Configuration de la modale, du titre, etc.
  • Feuille de style personnalisée
  • and so on...

1.4.2 (Septebmre 2022)

  • Invalid shorthand property initializer

1.4.1 (Juillet 2022)

  • Flag Normad.cancel indique si l'utilisateur a cliqué sur le bouton Annuler (adresse non normalisée, volontaire)

1.4.0 (Juin 2022)

  • Flag Normad.normalized indique si l'adresse a été normalisée ou non

1.3.3 (Avril 2022)

  • Compatibilité Bootstrap < 4.x (nécessite JQuery pour la modale)

1.3.2 (Mars 2022)

  • Personnalisation des boutons

1.2.1 (Février 2022)

  • Compatibilité Bootstrap 4.0.x

1.2.0 (Novembre 2021)

  • Compatibilité Bootstrap 4.x + Event Handler

1.1.1 (Octobre 2021)

  • Compatibilité Bootstrap 5.x (Modale + Input-Group)

1.0.0 (Octobre 2021)

  • Native JS