SMoneyField <s-money-field>
Un champ numérique pour les montants. SMoneyField est le wrapper Vue 3 typé du web component <s-money-field> de Shopify Polaris.
ts
import { SMoneyField } from 'polaris-vue-elements'Bonnes pratiques
- Définissez
minetmaxsur des limites réalistes. Par exemple, un prix de produit peut utiliser unminde 0.01 pour ne pas pouvoir être nul, une remise peut aller de 0 au total de la commande et un remboursement peut être plafonné au montant payé. Vérifiez toujours aussi les valeurs par rapport à vos règles métier. - Indiquez la limite exacte dans
error. Au lieu de "Invalid amount", écrivez par exemple "Price must be at least $0.01" pour que les marchands sachent quelle contrainte ils n'ont pas respectée. - N'incluez pas de symbole monétaire dans
labelni dansplaceholder. Ajouter "$" ou un symbole similaire peut entrer en conflit avec le formatage monétaire que le champ gère déjà. - Nommez le montant selon son usage. "Product base price" ou "Discount amount" en dit plus aux marchands que "Amount" ou "Price".
- Préremplissez
valuelors d'une modification. Affichez le montant actuel pour les valeurs existantes ; pour les nouvelles saisies, envisagez une valeur par défaut raisonnable comme 0.00 ou un prix typique.
vue
<SMoneyField label="Product base price" :min="0.01" />Consultez les bonnes pratiques de Shopify pour <s-money-field> (en anglais) pour l'ensemble des recommandations.
Exemple
Value: (empty)
vue
<script setup>
import { ref } from 'vue'
import { SMoneyField } from 'polaris-vue-elements'
const value = ref('')
</script>
<template>
<SMoneyField label="Price" currencyCode="USD" placeholder="0.00" v-model="value" />
<p>Value: {{ value }}</p>
</template>v-model
v-model sur <SMoneyField> est lié à la propriété value et écoute l'event DOM input.
template
<SMoneyField v-model="value" />équivaut à :
template
<SMoneyField :value="value" @input="value = $event.target.value" />Props
| Prop | Type | Description |
|---|---|---|
autocomplete | string | Une indication sur le contenu attendu du champ. Lorsqu'elle vaut on (valeur par défaut), cette propriété indique que le champ doit prendre en charge le remplissage automatique, sans autre information sémantique sur le contenu attendu. Lorsqu'elle vaut off, vous indiquez que ce champ contient des informations sensibles ou des contenus jamais enregistrés, comme des codes à usage unique. Vous pouvez aussi fournir une valeur décrivant précisément les données que vous souhaitez voir saisies dans ce champ lors du remplissage automatique. |
currencyCode | "auto" | "USD" | "EUR" | "GBP" | "CAD" | "AFN" | "ALL" | "DZD" … (154 more) | Le code de devise du champ. Lorsqu'il vaut 'auto', le champ affiche le code de devise de la boutique. Si aucun code de devise n'est défini pour la boutique, la valeur explicite 'XXX' (aucune devise) est utilisée. Cette valeur correspond au code de devise global de la boutique ; si vous avez besoin de connaître le code de devise du champ, vous pouvez donc lire la valeur depuis ces API. |
defaultValue | string | La valeur par défaut du champ. |
details | any | Texte supplémentaire apportant du contexte ou des indications pour le champ. Ce texte est affiché avec le champ et son libellé afin de fournir davantage d'informations ou d'instructions à l'utilisateur. Il est également exposé aux utilisateurs de lecteurs d'écran. |
disabled | boolean | Désactive le champ, empêchant toute interaction. |
error | any | Signale une erreur à l'utilisateur. Le champ reçoit un traitement visuel spécifique pour signaler des problèmes à résoudre immédiatement. |
id | string | Un identifiant unique pour l'élément. |
label | any | Contenu à utiliser comme libellé du champ. |
labelAccessibilityVisibility | "visible" | "exclusive" | Modifie la visibilité du libellé du composant. - visible : le libellé est visible par tous les utilisateurs. - exclusive : le libellé est masqué visuellement mais reste dans l'arbre d'accessibilité. |
max | number | Le nombre décimal ou entier le plus élevé accepté par le champ. Utilisé avec step, la valeur est arrondie à l'inférieur au nombre max. Remarque : l'utilisateur pourra toujours saisir au clavier un nombre supérieur au max. Il appartient au développeur d'ajouter la validation appropriée. |
min | number | Le nombre décimal ou entier le plus bas accepté par le champ. Utilisé avec step, la valeur est arrondie au supérieur au nombre min. Remarque : l'utilisateur pourra toujours saisir au clavier un nombre inférieur au min. Il appartient au développeur d'ajouter la validation appropriée. |
name | string | Un identifiant du champ, unique au sein du formulaire parent le plus proche. |
placeholder | string | Une courte indication décrivant la valeur attendue du champ. |
readOnly | boolean | Le champ ne peut pas être modifié par l'utilisateur. Il reste focalisable et est annoncé par les lecteurs d'écran. |
required | boolean | Indique si le champ exige une valeur. Cette exigence ajoute une valeur sémantique au champ, mais n'affiche pas automatiquement d'erreur. Pour afficher une erreur lorsque ce champ est vide, utilisez la propriété error. |
value | string |
Certaines colonnes de type ci-dessus sont tronquées pour plus de lisibilité ; l'union complète est disponible dans les types TypeScript générés de la bibliothèque (
src/lib/generated/types.ts).
Events
| Event | Type |
|---|---|
blur | FocusEvent |
change | Event |
focus | FocusEvent |
input | Event |
Écoutez-les avec des listeners de la forme @blur sur <SMoneyField>.
Slots
| Slot | Description |
|---|---|
details | |
error |