Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save wallace-sf/7c41895a03d1eec23ac707e3d7eea22f to your computer and use it in GitHub Desktop.
Save wallace-sf/7c41895a03d1eec23ac707e3d7eea22f to your computer and use it in GitHub Desktop.
Spec de Wizard funcional com enable de página
{
label: 'Formulário step by step de teste',
type: 'custom_form',
fields: [
{
type: 'FormWizard',
name: 'wizform',
label: 'Formulário step by step de teste',
enable: true,
fields: [
{
type: 'page',
name: 'page_one',
label: 'Dados Básicos',
validate: null,
initial: false,
enable: true,
fields: [
{
type: 'TextInput',
name: 'name',
label: 'Nome',
validate: {
$js: '({form}) => form.name ? null:"Nome obrigatório!"',
},
initial: '',
enable: true,
},
{
type: 'TextInput',
name: 'last_name',
label: 'Sobrenome',
validate: {
$js:
'({form}) => form.last_name ? null:"Sobrenome obrigatório!"',
},
initial: '',
enable: true,
},
{
type: 'NumberInput',
name: 'age',
label: 'Idade',
validate: {
$js: '({form}) => form.age ? null:"Idade obrigatório!"',
},
initial: '',
enable: true,
},
],
},
{
type: 'page',
name: 'page_two',
label: 'Familiares',
validate: null,
initial: false,
enable: true,
fields: [
{
type: 'TextInput',
name: 'mothers_name',
label: 'Nome da Mãe',
validate: {
$js:
'({form}) => form.mothers_name ? null:"Nome da mãe é obrigatório!"',
},
initial: '',
enable: true,
},
{
type: 'TextInput',
name: 'fathers_name',
label: 'Nome do Pai',
validate: {
$js:
'({form}) => form.fathers_name ? null:"Nome do pai é obrigatório!"',
},
initial: '',
enable: true,
},
],
},
{
type: 'page',
name: 'page_three',
label: 'Dados Adicionais',
validate: null,
initial: false,
enable: true,
fields: [
{
type: 'Checkbox',
name: 'has_children',
label: 'Tem filhos?',
validate: null,
initial: false,
enable: true,
},
{
type: 'NumberInput',
name: 'qtd_child',
label: 'Quantos filhos?',
validate: {
$js:
'({form}) => form.qtd_child ? null:"Quantidade obrigatório!"',
},
initial: '',
enable: {
$js: '({form}) => !!form.has_children',
},
},
{
type: 'FieldArray',
name: 'children',
label: 'Filhos',
enable: { $js: '({form}) => !!form.has_children' },
max: 5,
collapse: true,
fields: [
{
type: 'TextInput',
name: 'child',
label: 'Informe o nome:',
validate: {
$js:
'({form}) => form.children && form.children[0].child.length > 0 ? null:"Informe o nome do filho!"',
},
initial: '',
enable: true,
},
],
},
{
type: 'Checkbox',
name: 'has_brothers',
label: 'Tem irmãos?',
validate: null,
initial: false,
enable: true,
},
],
},
{
type: 'page',
name: 'page_four',
label: 'Dados dos irmãos',
validate: null,
initial: false,
enable: {
$js: '({form}) => form.page_three.has_brothers',
},
fields: [
{
type: 'NumberInput',
name: 'qtd_brothers',
label: 'Quantos irmãos?',
validate: null,
initial: 0,
enable: true,
},
{
type: 'FieldArray',
name: 'brothers',
label: 'Irmãos',
enable: { $js: '({form}) => !!form.has_brothers' },
max: {
$js:
'({form}) => form.qtd_brothers && form.qtd_brothers > 0 ? form.qtd_brothers:1',
},
collapse: true,
fields: [
{
type: 'TextInput',
name: 'brother',
label: 'Informe o nome:',
validate: {
$js:
'({form}) => form.brother.length > 0 ? "":"Informe o nome do irmão!"',
},
initial: '',
enable: true,
},
],
},
],
},
],
},
],
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment