Obtenha a API
A API é entregue a você pelo eventoll-quiz-init, em event.detail.llQuizApi. Guarde esse objeto e use-o sempre que precisar.
Seu script pode rodar antes ou depois de o quiz carregar. Se ele for registrado depois, o
ll-quiz-init é reenviado a ele automaticamente, então esse padrão sempre funciona.llQuizApi, então você também pode reagir a uma etapa ou a uma resposta e agir ali mesmo. Veja Eventos do quiz.
Etapas e blocos pelo nome
Todas as funções que recebem uma etapa ou um bloco aceitam o nome ou o ID. Os nomes são o que você digitou no construtor, então é o que você normalmente vai usar. Os IDs são gerados automaticamente e têm o formatoblock-3f9c….
Leia as respostas
getAnswers() retorna todas as respostas dadas até o momento, com uma entrada por bloco. getAnswersSimple() retorna as mesmas respostas em um objeto simples, usando o rótulo (label) como chave. Blocos ocultos e respostas vazias ficam de fora.
fields e fieldsSimple que os eventos trazem, então o código que trata um formato também trata o outro.
Saiba onde o visitante está
index começa em 0. isSubmitted passa a ser true assim que o quiz é enviado nesta visita.
Encontre blocos
As listas contêm apenas blocos que armazenam um valor. Títulos, parágrafos, imagens e afins nunca são listados. Além disso,
getBlock() também encontra botões (Continue, Previous, Submit, Button), para que você possa alterar o texto deles ou desativá-los.
Quais blocos armazenam um valor?
Quais blocos armazenam um valor?
Campos de entrada (text, email, phone, number, textarea, date, birth date, zip code, address, OTP), campos de escolha (multiple choice, image choice, select), checkbox, range slider, upload, signature e campos ocultos (hidden).Todo o resto é de exibição ou navegação: headline, paragraph, image, video, divider, list, loader, countdown, progress, accordion, links, custom code, tracking e os botões. Chamar
getValue(), setValue(), reset() ou validate() em um desses blocos lança um erro. Os contêineres são transparentes: os blocos dentro deles são listados como qualquer outro bloco.Leia e altere um bloco
Todo bloco retornado é o mesmo tipo de objeto, então os exemplos abaixo funcionam em qualquer bloco compatível com a chamada.Valor
ll-quiz-value-change com source: 'api', para que seus listeners consigam diferenciá-lo do que o visitante digita.
Formatos de valor por bloco
Formatos de valor por bloco
- Checkbox:
'checked'ou'unchecked' - Multiple choice, image choice, select: o valor da opção, por exemplo
'pro' - Multiple choice com várias seleções: os valores unidos pelo separador configurado no bloco
- Todos os outros: o texto que o visitante digitou
Rótulo e placeholder
setLabel() e getLabel() lançam um erro em blocos que não têm rótulo.
Opções
Os blocos multiple choice, image choice e select expõem suas opções:getOptions() em qualquer outro bloco lança um erro.
Erros e foco
Botões
enable() e disable() funcionam nos blocos Continue, Submit e Button e lançam um erro em qualquer outro.
Visibilidade
undefined significa que você nunca alterou a visibilidade, então o bloco segue as próprias configurações.
Valide
Quando uma etapa não passa na validação, o quiz também dispara o
ll-quiz-validation-error com cada bloco que falhou e a respectiva mensagem, marcado com source: 'api'. Assim, um único listener consegue tratar tanto as tentativas do visitante quanto as suas. Veja os detalhes na página de eventos.Navegue e envie
goNext(), goToStep() e submit() validam primeiro a etapa exibida na tela. Se ela for inválida, eles não avançam, registram um aviso e disparam o ll-quiz-validation-error. goBack() nunca valida.
submit() faz exatamente o que o botão Submit faz para o visitante: o lead é salvo, o ll-quiz-submit é disparado com a resposta do servidor, a proteção contra envios duplicados é aplicada e a ação pós-envio do botão Submit é executada. Em uma etapa sem botão Submit, o quiz é enviado e permanece na mesma etapa. A promise retornada é resolvida quando tudo isso termina.
Receitas
Preencher a partir da URL
Preencher a partir da URL
Mostrar um texto de progresso personalizado
Mostrar um texto de progresso personalizado
Ir para o primeiro campo com erro
Ir para o primeiro campo com erro
Segurar o botão Continue até a sua própria verificação passar
Segurar o botão Continue até a sua própria verificação passar
Mostrar um bloco apenas para uma resposta
Mostrar um bloco apenas para uma resposta
Enviar a partir do seu próprio botão
Enviar a partir do seu próprio botão
Enviar as respostas para o seu próprio endpoint
Enviar as respostas para o seu próprio endpoint
Todas as funções em resumo
Nomes de funções antigos (ainda compatíveis)
Nomes de funções antigos (ainda compatíveis)
As versões anteriores tinham uma função para cada tipo de busca. Elas continuam funcionando exatamente como antes, então nada do que você já escreveu precisa mudar. Em código novo, use as funções unificadas.