export const Default: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: null,
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
],
multiple: false,
inline: false,
hint: undefined,
error: false,
errorMessages: undefined,
readonly: false,
},
render: (args) => {
return {
components: { SelectBtnField },
setup() {
return { args }
},
template: `
Choisissez votre moyen de contact :
`,
}
},
}
export const Multiple: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
Choisissez votre moyen de contact :
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: null,
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
],
multiple: true,
},
render: (args) => {
return {
components: { SelectBtnField },
setup() {
return { args }
},
template: `
Choisissez votre moyen de contact :
`,
}
},
}
export const inline: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
Choisissez votre moyen de contact :
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: null,
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
],
inline: true,
},
render: (args) => {
return {
components: { SelectBtnField },
setup() {
return { args }
},
template: `
Choisissez votre moyen de contact :
`,
}
},
}
export const itemUnique: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
Choisissez votre moyen de contact :
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: null,
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
{
text: 'Autre',
value: 'other',
unique: true,
},
],
multiple: true,
},
render: (args) => {
return {
components: { SelectBtnField },
setup() {
return { args }
},
template: `
Choisissez votre moyen de contact :
Les items marqués avec unique: true sont exclusifs : lorsqu’ils sont sélectionnés,
tous les autres items sont automatiquement désélectionnés.
`,
}
},
}
export const messageAide: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
Choisissez votre moyen de contact :
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: null,
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
],
hint: 'Par défaut, le moyen de contact est l’email.',
},
render: (args) => {
return {
components: { SelectBtnField },
setup() {
return { args }
},
template: `
Choisissez votre moyen de contact :
`,
}
},
}
export const erreur: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
Choisissez votre moyen de contact :
Réinitialiser
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: null,
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
],
error: true,
},
render: (args) => {
return {
components: { SelectBtnField, VBtn },
setup() {
const error = ref(args.error)
const value = ref(args.modelValue)
function resetExample() {
error.value = true
value.value = null
}
return { args, resetExample, error, value }
},
template: `
Choisissez votre moyen de contact :
Réinitialiser
`,
}
},
}
export const messageErreur: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
Choisissez votre moyen de contact :
Réinitialiser
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: null,
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
],
error: true,
errorMessages: [
'Le champ est requis.',
],
},
render: (args) => {
return {
components: { SelectBtnField, VBtn },
setup() {
const error = ref(args.error)
const value = ref(args.modelValue)
const errorMessages = ref(args.errorMessages)
function resetExample() {
error.value = true
value.value = null
errorMessages.value = ['Le champ est requis.']
}
return { args, resetExample, error, value, errorMessages }
},
template: `
Choisissez votre moyen de contact :
Réinitialiser
`,
}
},
}
export const readonly: Story = {
parameters: {
sourceCode: [
{
name: 'Template',
code: `
Choisissez votre moyen de contact :
`,
},
{
name: 'Script',
code: `
`,
},
],
},
args: {
modelValue: ['email'],
items: [
{
text: 'Email',
value: 'email',
},
{
text: 'Courrier',
value: 'courrier',
},
{
text: 'SMS',
value: 'sms',
},
],
label: 'Moyen de contact',
readonly: true,
},
render: (args) => {
return {
components: { SelectBtnField },
setup() {
return { args }
},
template: `
Choisissez votre moyen de contact :
`,
}
},
}
export const Info: Story = {
render: (args) => {
return {
components: { SyAlert },
setup() {
return { args }
},
template: `
Vous pouvez utiliser le modificateur v-model:error pour réinitialiser l’erreur lorsque l’utilisateur modifie la valeur du champ.
`,
}
},
tags: ['!dev'],
}