@designliquido/foles 0.9.5 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/execucao.js +9 -2
- package/execucao.js.map +1 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico-reverso.d.ts +2 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico-reverso.js +342 -105
- package/fontes/avaliador-sintatico/avaliador-sintatico-reverso.js.map +1 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +6 -4
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +170 -115
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/declaracoes/declaracao-variavel.d.ts +2 -3
- package/fontes/declaracoes/declaracao-variavel.js +2 -3
- package/fontes/declaracoes/declaracao-variavel.js.map +1 -1
- package/fontes/foles.d.ts +4 -4
- package/fontes/foles.js +12 -11
- package/fontes/foles.js.map +1 -1
- package/fontes/gerador-mapa/index.js +6 -4
- package/fontes/gerador-mapa/index.js.map +1 -1
- package/fontes/lexador/palavras-reservadas/css.d.ts +21 -13
- package/fontes/lexador/palavras-reservadas/css.js +21 -13
- package/fontes/lexador/palavras-reservadas/css.js.map +1 -1
- package/fontes/lexador/palavras-reservadas/foles.d.ts +368 -0
- package/fontes/lexador/palavras-reservadas/foles.js +386 -306
- package/fontes/lexador/palavras-reservadas/foles.js.map +1 -1
- package/fontes/modificadores/agrupar-palavra.d.ts +2 -1
- package/fontes/modificadores/agrupar-palavra.js +5 -4
- package/fontes/modificadores/agrupar-palavra.js.map +1 -1
- package/fontes/modificadores/agrupar-vazamento.d.ts +2 -1
- package/fontes/modificadores/agrupar-vazamento.js +5 -4
- package/fontes/modificadores/agrupar-vazamento.js.map +1 -1
- package/fontes/modificadores/ajustar-objeto.d.ts +2 -1
- package/fontes/modificadores/ajustar-objeto.js +5 -4
- package/fontes/modificadores/ajustar-objeto.js.map +1 -1
- package/fontes/modificadores/ajustar-tamanho-fonte.d.ts +2 -1
- package/fontes/modificadores/ajustar-tamanho-fonte.js +7 -10
- package/fontes/modificadores/ajustar-tamanho-fonte.js.map +1 -1
- package/fontes/modificadores/ajuste-cor-forcado.d.ts +2 -1
- package/fontes/modificadores/ajuste-cor-forcado.js +5 -4
- package/fontes/modificadores/ajuste-cor-forcado.js.map +1 -1
- package/fontes/modificadores/alinhar-conteudo.d.ts +2 -1
- package/fontes/modificadores/alinhar-conteudo.js +6 -4
- package/fontes/modificadores/alinhar-conteudo.js.map +1 -1
- package/fontes/modificadores/alinhar-encaixe-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/alinhar-encaixe-rolagem-mouse.js +6 -4
- package/fontes/modificadores/alinhar-encaixe-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/alinhar-itens.d.ts +2 -1
- package/fontes/modificadores/alinhar-itens.js +6 -4
- package/fontes/modificadores/alinhar-itens.js.map +1 -1
- package/fontes/modificadores/alinhar-se.d.ts +2 -1
- package/fontes/modificadores/alinhar-se.js +6 -4
- package/fontes/modificadores/alinhar-se.js.map +1 -1
- package/fontes/modificadores/alinhar-texto.d.ts +2 -1
- package/fontes/modificadores/alinhar-texto.js +6 -4
- package/fontes/modificadores/alinhar-texto.js.map +1 -1
- package/fontes/modificadores/alinhar-ultimo-item.d.ts +2 -1
- package/fontes/modificadores/alinhar-ultimo-item.js +6 -6
- package/fontes/modificadores/alinhar-ultimo-item.js.map +1 -1
- package/fontes/modificadores/alinhar-vertical.d.ts +2 -1
- package/fontes/modificadores/alinhar-vertical.js +5 -9
- package/fontes/modificadores/alinhar-vertical.js.map +1 -1
- package/fontes/modificadores/altura-linha.d.ts +2 -1
- package/fontes/modificadores/altura-linha.js +5 -10
- package/fontes/modificadores/altura-linha.js.map +1 -1
- package/fontes/modificadores/altura-maxima.d.ts +2 -1
- package/fontes/modificadores/altura-maxima.js +5 -9
- package/fontes/modificadores/altura-maxima.js.map +1 -1
- package/fontes/modificadores/altura-minima.d.ts +2 -1
- package/fontes/modificadores/altura-minima.js +5 -9
- package/fontes/modificadores/altura-minima.js.map +1 -1
- package/fontes/modificadores/altura.d.ts +2 -1
- package/fontes/modificadores/altura.js +5 -9
- package/fontes/modificadores/altura.js.map +1 -1
- package/fontes/modificadores/animacao.d.ts +2 -1
- package/fontes/modificadores/animacao.js +7 -7
- package/fontes/modificadores/animacao.js.map +1 -1
- package/fontes/modificadores/ao-mudar.d.ts +2 -1
- package/fontes/modificadores/ao-mudar.js +7 -6
- package/fontes/modificadores/ao-mudar.js.map +1 -1
- package/fontes/modificadores/aparencia.d.ts +2 -1
- package/fontes/modificadores/aparencia.js +10 -6
- package/fontes/modificadores/aparencia.js.map +1 -1
- package/fontes/modificadores/area-mascara.d.ts +2 -1
- package/fontes/modificadores/area-mascara.js +7 -6
- package/fontes/modificadores/area-mascara.js.map +1 -1
- package/fontes/modificadores/atraso-animacao.d.ts +2 -1
- package/fontes/modificadores/atraso-animacao.js +5 -9
- package/fontes/modificadores/atraso-animacao.js.map +1 -1
- package/fontes/modificadores/atraso-transicao.d.ts +2 -1
- package/fontes/modificadores/atraso-transicao.js +7 -11
- package/fontes/modificadores/atraso-transicao.js.map +1 -1
- package/fontes/modificadores/atributos/cores.js +171 -171
- package/fontes/modificadores/atributos/cores.js.map +1 -1
- package/fontes/modificadores/atributos/gerais.js +126 -121
- package/fontes/modificadores/atributos/gerais.js.map +1 -1
- package/fontes/modificadores/atributos/posicoes.js +1 -1
- package/fontes/modificadores/atributos/posicoes.js.map +1 -1
- package/fontes/modificadores/borda-direita.d.ts +2 -1
- package/fontes/modificadores/borda-direita.js +7 -11
- package/fontes/modificadores/borda-direita.js.map +1 -1
- package/fontes/modificadores/borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/borda-em-bloco.js +7 -11
- package/fontes/modificadores/borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/borda-em-linha.js +7 -11
- package/fontes/modificadores/borda-em-linha.js.map +1 -1
- package/fontes/modificadores/borda-esquerda.d.ts +2 -1
- package/fontes/modificadores/borda-esquerda.js +7 -11
- package/fontes/modificadores/borda-esquerda.js.map +1 -1
- package/fontes/modificadores/borda-inferior.d.ts +2 -1
- package/fontes/modificadores/borda-inferior.js +7 -11
- package/fontes/modificadores/borda-inferior.js.map +1 -1
- package/fontes/modificadores/borda-mascara.d.ts +2 -1
- package/fontes/modificadores/borda-mascara.js +11 -20
- package/fontes/modificadores/borda-mascara.js.map +1 -1
- package/fontes/modificadores/borda-superior.d.ts +2 -1
- package/fontes/modificadores/borda-superior.js +7 -11
- package/fontes/modificadores/borda-superior.js.map +1 -1
- package/fontes/modificadores/borda.d.ts +2 -1
- package/fontes/modificadores/borda.js +7 -11
- package/fontes/modificadores/borda.js.map +1 -1
- package/fontes/modificadores/calha-barra-rolagem.d.ts +2 -1
- package/fontes/modificadores/calha-barra-rolagem.js +5 -4
- package/fontes/modificadores/calha-barra-rolagem.js.map +1 -1
- package/fontes/modificadores/caminho-recorte.d.ts +8 -0
- package/fontes/modificadores/caminho-recorte.js +29 -0
- package/fontes/modificadores/caminho-recorte.js.map +1 -0
- package/fontes/modificadores/celulas-vazias.d.ts +2 -1
- package/fontes/modificadores/celulas-vazias.js +5 -4
- package/fontes/modificadores/celulas-vazias.js.map +1 -1
- package/fontes/modificadores/citacoes.d.ts +2 -1
- package/fontes/modificadores/citacoes.js +11 -8
- package/fontes/modificadores/citacoes.js.map +1 -1
- package/fontes/modificadores/coluna-em-grade.d.ts +2 -1
- package/fontes/modificadores/coluna-em-grade.js +8 -6
- package/fontes/modificadores/coluna-em-grade.js.map +1 -1
- package/fontes/modificadores/colunas.d.ts +2 -1
- package/fontes/modificadores/colunas.js +7 -11
- package/fontes/modificadores/colunas.js.map +1 -1
- package/fontes/modificadores/combinar-texto-vertical.d.ts +2 -1
- package/fontes/modificadores/combinar-texto-vertical.js +6 -4
- package/fontes/modificadores/combinar-texto-vertical.js.map +1 -1
- package/fontes/modificadores/comportamento-em-bloco-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/comportamento-em-bloco-rolagem-mouse.js +6 -4
- package/fontes/modificadores/comportamento-em-bloco-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/comportamento-em-linha-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/comportamento-em-linha-rolagem-mouse.js +6 -4
- package/fontes/modificadores/comportamento-em-linha-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/comportamento-horizontal-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/comportamento-horizontal-rolagem-mouse.js +6 -4
- package/fontes/modificadores/comportamento-horizontal-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/comportamento-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/comportamento-rolagem-mouse.js +7 -6
- package/fontes/modificadores/comportamento-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/comportamento-rolagem.d.ts +2 -1
- package/fontes/modificadores/comportamento-rolagem.js +5 -4
- package/fontes/modificadores/comportamento-rolagem.js.map +1 -1
- package/fontes/modificadores/comportamento-vertical-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/comportamento-vertical-rolagem-mouse.js +6 -4
- package/fontes/modificadores/comportamento-vertical-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/composicao-mascara.d.ts +2 -1
- package/fontes/modificadores/composicao-mascara.js +5 -4
- package/fontes/modificadores/composicao-mascara.js.map +1 -1
- package/fontes/modificadores/configuracoes-variacao-fonte.d.ts +2 -1
- package/fontes/modificadores/configuracoes-variacao-fonte.js +11 -10
- package/fontes/modificadores/configuracoes-variacao-fonte.js.map +1 -1
- package/fontes/modificadores/contar-coluna.d.ts +2 -1
- package/fontes/modificadores/contar-coluna.js +5 -7
- package/fontes/modificadores/contar-coluna.js.map +1 -1
- package/fontes/modificadores/contem.d.ts +2 -1
- package/fontes/modificadores/contem.js +5 -4
- package/fontes/modificadores/contem.js.map +1 -1
- package/fontes/modificadores/conteudo.d.ts +2 -3
- package/fontes/modificadores/conteudo.js +7 -17
- package/fontes/modificadores/conteudo.js.map +1 -1
- package/fontes/modificadores/contorno.d.ts +2 -1
- package/fontes/modificadores/contorno.js +7 -11
- package/fontes/modificadores/contorno.js.map +1 -1
- package/fontes/modificadores/coordenadas.d.ts +2 -1
- package/fontes/modificadores/coordenadas.js +5 -9
- package/fontes/modificadores/coordenadas.js.map +1 -1
- package/fontes/modificadores/cor-barra-rolagem.d.ts +2 -1
- package/fontes/modificadores/cor-barra-rolagem.js +5 -5
- package/fontes/modificadores/cor-barra-rolagem.js.map +1 -1
- package/fontes/modificadores/cor-borda-direita.d.ts +2 -1
- package/fontes/modificadores/cor-borda-direita.js +5 -4
- package/fontes/modificadores/cor-borda-direita.js.map +1 -1
- package/fontes/modificadores/cor-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/cor-borda-em-bloco.js +5 -4
- package/fontes/modificadores/cor-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/cor-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/cor-borda-em-linha.js +5 -4
- package/fontes/modificadores/cor-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/cor-borda-esquerda.d.ts +2 -1
- package/fontes/modificadores/cor-borda-esquerda.js +5 -4
- package/fontes/modificadores/cor-borda-esquerda.js.map +1 -1
- package/fontes/modificadores/cor-borda-inferior.d.ts +2 -1
- package/fontes/modificadores/cor-borda-inferior.js +5 -4
- package/fontes/modificadores/cor-borda-inferior.js.map +1 -1
- package/fontes/modificadores/cor-borda-superior.d.ts +2 -1
- package/fontes/modificadores/cor-borda-superior.js +5 -4
- package/fontes/modificadores/cor-borda-superior.js.map +1 -1
- package/fontes/modificadores/cor-borda.d.ts +2 -1
- package/fontes/modificadores/cor-borda.js +7 -6
- package/fontes/modificadores/cor-borda.js.map +1 -1
- package/fontes/modificadores/cor-contorno.d.ts +2 -1
- package/fontes/modificadores/cor-contorno.js +5 -4
- package/fontes/modificadores/cor-contorno.js.map +1 -1
- package/fontes/modificadores/cor-cursor.d.ts +2 -1
- package/fontes/modificadores/cor-cursor.js +5 -4
- package/fontes/modificadores/cor-cursor.js.map +1 -1
- package/fontes/modificadores/cor-destaque.d.ts +2 -1
- package/fontes/modificadores/cor-destaque.js +5 -4
- package/fontes/modificadores/cor-destaque.js.map +1 -1
- package/fontes/modificadores/cor-enfase-texto.d.ts +2 -1
- package/fontes/modificadores/cor-enfase-texto.js +5 -4
- package/fontes/modificadores/cor-enfase-texto.js.map +1 -1
- package/fontes/modificadores/cor-fim-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/cor-fim-borda-em-bloco.js +5 -4
- package/fontes/modificadores/cor-fim-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/cor-fim-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/cor-fim-borda-em-linha.js +5 -4
- package/fontes/modificadores/cor-fim-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/cor-fundo.d.ts +2 -1
- package/fontes/modificadores/cor-fundo.js +5 -4
- package/fontes/modificadores/cor-fundo.js.map +1 -1
- package/fontes/modificadores/cor-inicio-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/cor-inicio-borda-em-bloco.js +5 -4
- package/fontes/modificadores/cor-inicio-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/cor-inicio-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/cor-inicio-borda-em-linha.js +5 -4
- package/fontes/modificadores/cor-inicio-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/cor.d.ts +2 -1
- package/fontes/modificadores/cor.js +5 -4
- package/fontes/modificadores/cor.js.map +1 -1
- package/fontes/modificadores/cursor.d.ts +2 -1
- package/fontes/modificadores/cursor.js +5 -4
- package/fontes/modificadores/cursor.js.map +1 -1
- package/fontes/modificadores/{decoracao-cor-texto .d.ts → decoracao-cor-texto.d.ts} +2 -1
- package/fontes/modificadores/{decoracao-cor-texto .js → decoracao-cor-texto.js} +6 -5
- package/fontes/modificadores/decoracao-cor-texto.js.map +1 -0
- package/fontes/modificadores/decoracao-espessura-texto.d.ts +2 -1
- package/fontes/modificadores/decoracao-espessura-texto.js +5 -9
- package/fontes/modificadores/decoracao-espessura-texto.js.map +1 -1
- package/fontes/modificadores/decoracao-estilo-texto.d.ts +2 -1
- package/fontes/modificadores/decoracao-estilo-texto.js +6 -4
- package/fontes/modificadores/decoracao-estilo-texto.js.map +1 -1
- package/fontes/modificadores/decoracao-linha-texto.d.ts +2 -1
- package/fontes/modificadores/decoracao-linha-texto.js +5 -4
- package/fontes/modificadores/decoracao-linha-texto.js.map +1 -1
- package/fontes/modificadores/decoracao-texto-sublinhado.d.ts +2 -1
- package/fontes/modificadores/decoracao-texto-sublinhado.js +6 -4
- package/fontes/modificadores/decoracao-texto-sublinhado.js.map +1 -1
- package/fontes/modificadores/decoracao-texto.d.ts +2 -1
- package/fontes/modificadores/decoracao-texto.js +8 -7
- package/fontes/modificadores/decoracao-texto.js.map +1 -1
- package/fontes/modificadores/definir-contador.d.ts +2 -1
- package/fontes/modificadores/definir-contador.js +7 -6
- package/fontes/modificadores/definir-contador.js.map +1 -1
- package/fontes/modificadores/design-tabela.d.ts +2 -1
- package/fontes/modificadores/design-tabela.js +5 -4
- package/fontes/modificadores/design-tabela.js.map +1 -1
- package/fontes/modificadores/deslocamento-em-ancora.d.ts +2 -1
- package/fontes/modificadores/deslocamento-em-ancora.js +5 -9
- package/fontes/modificadores/deslocamento-em-ancora.js.map +1 -1
- package/fontes/modificadores/deslocamento-texto-sublinhado.d.ts +2 -1
- package/fontes/modificadores/deslocamento-texto-sublinhado.js +5 -9
- package/fontes/modificadores/deslocamento-texto-sublinhado.js.map +1 -1
- package/fontes/modificadores/deslocamento.d.ts +2 -1
- package/fontes/modificadores/deslocamento.js +9 -12
- package/fontes/modificadores/deslocamento.js.map +1 -1
- package/fontes/modificadores/deslocar-contorno.d.ts +2 -1
- package/fontes/modificadores/deslocar-contorno.js +5 -9
- package/fontes/modificadores/deslocar-contorno.js.map +1 -1
- package/fontes/modificadores/deslocar-pontuacao.d.ts +2 -1
- package/fontes/modificadores/deslocar-pontuacao.js +5 -4
- package/fontes/modificadores/deslocar-pontuacao.js.map +1 -1
- package/fontes/modificadores/dicionario/dicionario-modificadores.js +3 -1
- package/fontes/modificadores/dicionario/dicionario-modificadores.js.map +1 -1
- package/fontes/modificadores/dicionario/dicionario-reverso-modificadores.js +30 -19
- package/fontes/modificadores/dicionario/dicionario-reverso-modificadores.js.map +1 -1
- package/fontes/modificadores/direcao-animacao.d.ts +2 -1
- package/fontes/modificadores/direcao-animacao.js +5 -4
- package/fontes/modificadores/direcao-animacao.js.map +1 -1
- package/fontes/modificadores/direcao.d.ts +2 -1
- package/fontes/modificadores/direcao.js +5 -4
- package/fontes/modificadores/direcao.js.map +1 -1
- package/fontes/modificadores/distancia-deslocamento.d.ts +2 -1
- package/fontes/modificadores/distancia-deslocamento.js +5 -11
- package/fontes/modificadores/distancia-deslocamento.js.map +1 -1
- package/fontes/modificadores/duracao-animacao.d.ts +2 -1
- package/fontes/modificadores/duracao-animacao.js +7 -11
- package/fontes/modificadores/duracao-animacao.js.map +1 -1
- package/fontes/modificadores/duracao-transicao.d.ts +2 -1
- package/fontes/modificadores/duracao-transicao.js +5 -9
- package/fontes/modificadores/duracao-transicao.js.map +1 -1
- package/fontes/modificadores/enfase-texto.d.ts +2 -1
- package/fontes/modificadores/enfase-texto.js +14 -10
- package/fontes/modificadores/enfase-texto.js.map +1 -1
- package/fontes/modificadores/escala.d.ts +2 -1
- package/fontes/modificadores/escala.js +5 -9
- package/fontes/modificadores/escala.js.map +1 -1
- package/fontes/modificadores/espacamento-coluna-em-grade.d.ts +2 -1
- package/fontes/modificadores/espacamento-coluna-em-grade.js +5 -9
- package/fontes/modificadores/espacamento-coluna-em-grade.js.map +1 -1
- package/fontes/modificadores/espacamento-coluna.d.ts +2 -1
- package/fontes/modificadores/espacamento-coluna.js +5 -9
- package/fontes/modificadores/espacamento-coluna.js.map +1 -1
- package/fontes/modificadores/espacamento-em-grade.d.ts +2 -1
- package/fontes/modificadores/espacamento-em-grade.js +5 -9
- package/fontes/modificadores/espacamento-em-grade.js.map +1 -1
- package/fontes/modificadores/espacamento-fonte.d.ts +2 -1
- package/fontes/modificadores/espacamento-fonte.js +5 -4
- package/fontes/modificadores/espacamento-fonte.js.map +1 -1
- package/fontes/modificadores/espacamento-letras.d.ts +2 -1
- package/fontes/modificadores/espacamento-letras.js +5 -18
- package/fontes/modificadores/espacamento-letras.js.map +1 -1
- package/fontes/modificadores/espacamento-linha-em-grade.d.ts +2 -1
- package/fontes/modificadores/espacamento-linha-em-grade.js +5 -9
- package/fontes/modificadores/espacamento-linha-em-grade.js.map +1 -1
- package/fontes/modificadores/espacamento-linhas.d.ts +2 -1
- package/fontes/modificadores/espacamento-linhas.js +5 -9
- package/fontes/modificadores/espacamento-linhas.js.map +1 -1
- package/fontes/modificadores/espacamento-palavras.d.ts +2 -1
- package/fontes/modificadores/espacamento-palavras.js +5 -9
- package/fontes/modificadores/espacamento-palavras.js.map +1 -1
- package/fontes/modificadores/espacamento.d.ts +2 -1
- package/fontes/modificadores/espacamento.js +7 -11
- package/fontes/modificadores/espacamento.js.map +1 -1
- package/fontes/modificadores/espaco-borda.d.ts +2 -1
- package/fontes/modificadores/espaco-borda.js +5 -9
- package/fontes/modificadores/espaco-borda.js.map +1 -1
- package/fontes/modificadores/espaco-em-branco.d.ts +2 -1
- package/fontes/modificadores/espaco-em-branco.js +5 -4
- package/fontes/modificadores/espaco-em-branco.js.map +1 -1
- package/fontes/modificadores/espessura-fonte.d.ts +2 -1
- package/fontes/modificadores/espessura-fonte.js +6 -7
- package/fontes/modificadores/espessura-fonte.js.map +1 -1
- package/fontes/modificadores/esquema-cor.d.ts +2 -1
- package/fontes/modificadores/esquema-cor.js +5 -4
- package/fontes/modificadores/esquema-cor.js.map +1 -1
- package/fontes/modificadores/estender-borda-imagem.d.ts +2 -1
- package/fontes/modificadores/estender-borda-imagem.js +5 -9
- package/fontes/modificadores/estender-borda-imagem.js.map +1 -1
- package/fontes/modificadores/estender-coluna.d.ts +2 -1
- package/fontes/modificadores/estender-coluna.js +5 -4
- package/fontes/modificadores/estender-coluna.js.map +1 -1
- package/fontes/modificadores/esticar-fonte.d.ts +2 -1
- package/fontes/modificadores/esticar-fonte.js +5 -9
- package/fontes/modificadores/esticar-fonte.js.map +1 -1
- package/fontes/modificadores/estilo-borda-direita.d.ts +2 -1
- package/fontes/modificadores/estilo-borda-direita.js +5 -4
- package/fontes/modificadores/estilo-borda-direita.js.map +1 -1
- package/fontes/modificadores/estilo-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/estilo-borda-em-bloco.js +5 -4
- package/fontes/modificadores/estilo-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/estilo-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/estilo-borda-em-linha.js +5 -4
- package/fontes/modificadores/estilo-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/estilo-borda-esquerda.d.ts +2 -1
- package/fontes/modificadores/estilo-borda-esquerda.js +5 -4
- package/fontes/modificadores/estilo-borda-esquerda.js.map +1 -1
- package/fontes/modificadores/estilo-borda-inferior.d.ts +2 -1
- package/fontes/modificadores/estilo-borda-inferior.js +5 -4
- package/fontes/modificadores/estilo-borda-inferior.js.map +1 -1
- package/fontes/modificadores/estilo-borda-superior.d.ts +2 -1
- package/fontes/modificadores/estilo-borda-superior.js +5 -4
- package/fontes/modificadores/estilo-borda-superior.js.map +1 -1
- package/fontes/modificadores/estilo-borda.d.ts +2 -1
- package/fontes/modificadores/estilo-borda.js +8 -7
- package/fontes/modificadores/estilo-borda.js.map +1 -1
- package/fontes/modificadores/estilo-contorno.d.ts +2 -1
- package/fontes/modificadores/estilo-contorno.js +6 -4
- package/fontes/modificadores/estilo-contorno.js.map +1 -1
- package/fontes/modificadores/estilo-enfase-texto.d.ts +2 -1
- package/fontes/modificadores/estilo-enfase-texto.js +12 -8
- package/fontes/modificadores/estilo-enfase-texto.js.map +1 -1
- package/fontes/modificadores/estilo-fim-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/estilo-fim-borda-em-bloco.js +6 -4
- package/fontes/modificadores/estilo-fim-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/estilo-fim-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/estilo-fim-borda-em-linha.js +6 -4
- package/fontes/modificadores/estilo-fim-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/estilo-fonte.d.ts +2 -1
- package/fontes/modificadores/estilo-fonte.js +7 -11
- package/fontes/modificadores/estilo-fonte.js.map +1 -1
- package/fontes/modificadores/estilo-inicio-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/estilo-inicio-borda-em-bloco.js +6 -4
- package/fontes/modificadores/estilo-inicio-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/estilo-inicio-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/estilo-inicio-borda-em-linha.js +6 -4
- package/fontes/modificadores/estilo-inicio-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/estilo-lista-imagem.d.ts +2 -3
- package/fontes/modificadores/estilo-lista-imagem.js +5 -15
- package/fontes/modificadores/estilo-lista-imagem.js.map +1 -1
- package/fontes/modificadores/estilo-lista-posicao.d.ts +2 -1
- package/fontes/modificadores/estilo-lista-posicao.js +5 -4
- package/fontes/modificadores/estilo-lista-posicao.js.map +1 -1
- package/fontes/modificadores/estilo-lista-tipo.d.ts +2 -1
- package/fontes/modificadores/estilo-lista-tipo.js +3 -3
- package/fontes/modificadores/estilo-lista-tipo.js.map +1 -1
- package/fontes/modificadores/estilo-lista.d.ts +2 -1
- package/fontes/modificadores/estilo-lista.js +7 -11
- package/fontes/modificadores/estilo-lista.js.map +1 -1
- package/fontes/modificadores/eventos-ponteiro.d.ts +2 -1
- package/fontes/modificadores/eventos-ponteiro.js +5 -4
- package/fontes/modificadores/eventos-ponteiro.js.map +1 -1
- package/fontes/modificadores/exibicao.d.ts +2 -1
- package/fontes/modificadores/exibicao.js +5 -4
- package/fontes/modificadores/exibicao.js.map +1 -1
- package/fontes/modificadores/fatiar-borda-mascara.d.ts +2 -1
- package/fontes/modificadores/fatiar-borda-mascara.js +5 -9
- package/fontes/modificadores/fatiar-borda-mascara.js.map +1 -1
- package/fontes/modificadores/fatiar-imagem-borda.d.ts +2 -1
- package/fontes/modificadores/fatiar-imagem-borda.js +5 -9
- package/fontes/modificadores/fatiar-imagem-borda.js.map +1 -1
- package/fontes/modificadores/filtro-fundo.d.ts +2 -3
- package/fontes/modificadores/filtro-fundo.js +5 -15
- package/fontes/modificadores/filtro-fundo.js.map +1 -1
- package/fontes/modificadores/filtro.d.ts +2 -3
- package/fontes/modificadores/filtro.js +5 -16
- package/fontes/modificadores/filtro.js.map +1 -1
- package/fontes/modificadores/fim-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/fim-borda-em-bloco.js +7 -11
- package/fontes/modificadores/fim-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/fim-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/fim-borda-em-linha.js +7 -11
- package/fontes/modificadores/fim-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/fim-coluna-em-grade.d.ts +2 -1
- package/fontes/modificadores/fim-coluna-em-grade.js +7 -8
- package/fontes/modificadores/fim-coluna-em-grade.js.map +1 -1
- package/fontes/modificadores/fim-linha-em-grade.d.ts +2 -1
- package/fontes/modificadores/fim-linha-em-grade.js +7 -8
- package/fontes/modificadores/fim-linha-em-grade.js.map +1 -1
- package/fontes/modificadores/fixar-fundo.d.ts +2 -1
- package/fontes/modificadores/fixar-fundo.js +5 -4
- package/fontes/modificadores/fixar-fundo.js.map +1 -1
- package/fontes/modificadores/flex-agrupar.d.ts +2 -1
- package/fontes/modificadores/flex-agrupar.js +5 -4
- package/fontes/modificadores/flex-agrupar.js.map +1 -1
- package/fontes/modificadores/flex-comprimento.d.ts +2 -1
- package/fontes/modificadores/flex-comprimento.js +5 -9
- package/fontes/modificadores/flex-comprimento.js.map +1 -1
- package/fontes/modificadores/flex-crescimento.d.ts +2 -1
- package/fontes/modificadores/flex-crescimento.js +5 -6
- package/fontes/modificadores/flex-crescimento.js.map +1 -1
- package/fontes/modificadores/flex-direcao.d.ts +2 -1
- package/fontes/modificadores/flex-direcao.js +5 -4
- package/fontes/modificadores/flex-direcao.js.map +1 -1
- package/fontes/modificadores/flex-fluxo.d.ts +2 -1
- package/fontes/modificadores/flex-fluxo.js +7 -6
- package/fontes/modificadores/flex-fluxo.js.map +1 -1
- package/fontes/modificadores/flex-reduzir.d.ts +2 -1
- package/fontes/modificadores/flex-reduzir.js +5 -6
- package/fontes/modificadores/flex-reduzir.js.map +1 -1
- package/fontes/modificadores/flex.d.ts +2 -1
- package/fontes/modificadores/flex.js +7 -11
- package/fontes/modificadores/flex.js.map +1 -1
- package/fontes/modificadores/flutuar.d.ts +2 -1
- package/fontes/modificadores/flutuar.js +5 -4
- package/fontes/modificadores/flutuar.js.map +1 -1
- package/fontes/modificadores/fluxo-em-grade.d.ts +2 -1
- package/fontes/modificadores/fluxo-em-grade.js +5 -4
- package/fontes/modificadores/fluxo-em-grade.js.map +1 -1
- package/fontes/modificadores/fluxo.d.ts +2 -1
- package/fontes/modificadores/fluxo.js +5 -4
- package/fontes/modificadores/fluxo.js.map +1 -1
- package/fontes/modificadores/fonte-texto.d.ts +2 -1
- package/fontes/modificadores/fonte-texto.js +8 -12
- package/fontes/modificadores/fonte-texto.js.map +1 -1
- package/fontes/modificadores/fonte.d.ts +2 -1
- package/fontes/modificadores/fonte.js +9 -12
- package/fontes/modificadores/fonte.js.map +1 -1
- package/fontes/modificadores/forma-externa.d.ts +2 -3
- package/fontes/modificadores/forma-externa.js +5 -15
- package/fontes/modificadores/forma-externa.js.map +1 -1
- package/fontes/modificadores/forma-margem.d.ts +2 -1
- package/fontes/modificadores/forma-margem.js +5 -9
- package/fontes/modificadores/forma-margem.js.map +1 -1
- package/fontes/modificadores/fundo.d.ts +2 -1
- package/fontes/modificadores/fundo.js +8 -13
- package/fontes/modificadores/fundo.js.map +1 -1
- package/fontes/modificadores/girar.d.ts +2 -1
- package/fontes/modificadores/girar.js +5 -9
- package/fontes/modificadores/girar.js.map +1 -1
- package/fontes/modificadores/grade.d.ts +2 -3
- package/fontes/modificadores/grade.js +14 -20
- package/fontes/modificadores/grade.js.map +1 -1
- package/fontes/modificadores/hifens.d.ts +2 -1
- package/fontes/modificadores/hifens.js +5 -4
- package/fontes/modificadores/hifens.js.map +1 -1
- package/fontes/modificadores/imagem-borda.d.ts +2 -3
- package/fontes/modificadores/imagem-borda.js +8 -13
- package/fontes/modificadores/imagem-borda.js.map +1 -1
- package/fontes/modificadores/imagem-fundo.d.ts +2 -2
- package/fontes/modificadores/imagem-fundo.js +5 -10
- package/fontes/modificadores/imagem-fundo.js.map +1 -1
- package/fontes/modificadores/imagem-mascara.d.ts +2 -3
- package/fontes/modificadores/imagem-mascara.js +6 -16
- package/fontes/modificadores/imagem-mascara.js.map +1 -1
- package/fontes/modificadores/impressao-ajuste-cor.d.ts +2 -1
- package/fontes/modificadores/impressao-ajuste-cor.js +5 -4
- package/fontes/modificadores/impressao-ajuste-cor.js.map +1 -1
- package/fontes/modificadores/incrementar-contador.d.ts +2 -1
- package/fontes/modificadores/incrementar-contador.js +7 -6
- package/fontes/modificadores/incrementar-contador.js.map +1 -1
- package/fontes/modificadores/indentacao-texto.d.ts +2 -1
- package/fontes/modificadores/indentacao-texto.js +5 -9
- package/fontes/modificadores/indentacao-texto.js.map +1 -1
- package/fontes/modificadores/index.d.ts +1 -1
- package/fontes/modificadores/index.js +1 -1
- package/fontes/modificadores/index.js.map +1 -1
- package/fontes/modificadores/indice-z.d.ts +2 -1
- package/fontes/modificadores/indice-z.js +6 -4
- package/fontes/modificadores/indice-z.js.map +1 -1
- package/fontes/modificadores/inicio-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/inicio-borda-em-bloco.js +7 -11
- package/fontes/modificadores/inicio-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/inicio-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/inicio-borda-em-linha.js +7 -11
- package/fontes/modificadores/inicio-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/inicio-borda-mascara.d.ts +2 -1
- package/fontes/modificadores/inicio-borda-mascara.js +5 -9
- package/fontes/modificadores/inicio-borda-mascara.js.map +1 -1
- package/fontes/modificadores/inicio-coluna-em-grade.d.ts +2 -1
- package/fontes/modificadores/inicio-coluna-em-grade.js +7 -8
- package/fontes/modificadores/inicio-coluna-em-grade.js.map +1 -1
- package/fontes/modificadores/inicio-insercao-em-bloco.d.ts +2 -1
- package/fontes/modificadores/inicio-insercao-em-bloco.js +5 -9
- package/fontes/modificadores/inicio-insercao-em-bloco.js.map +1 -1
- package/fontes/modificadores/inicio-insercao-em-linha.d.ts +2 -1
- package/fontes/modificadores/inicio-insercao-em-linha.js +5 -9
- package/fontes/modificadores/inicio-insercao-em-linha.js.map +1 -1
- package/fontes/modificadores/inicio-linha-em-grade.d.ts +2 -1
- package/fontes/modificadores/inicio-linha-em-grade.js +7 -8
- package/fontes/modificadores/inicio-linha-em-grade.js.map +1 -1
- package/fontes/modificadores/inicio-margem-em-bloco.d.ts +2 -1
- package/fontes/modificadores/inicio-margem-em-bloco.js +5 -9
- package/fontes/modificadores/inicio-margem-em-bloco.js.map +1 -1
- package/fontes/modificadores/inicio-margem-em-linha.d.ts +2 -1
- package/fontes/modificadores/inicio-margem-em-linha.js +5 -9
- package/fontes/modificadores/inicio-margem-em-linha.js.map +1 -1
- package/fontes/modificadores/inicio-recuo-em-bloco.d.ts +2 -1
- package/fontes/modificadores/inicio-recuo-em-bloco.js +5 -9
- package/fontes/modificadores/inicio-recuo-em-bloco.js.map +1 -1
- package/fontes/modificadores/inicio-recuo-em-linha.d.ts +2 -1
- package/fontes/modificadores/inicio-recuo-em-linha.js +5 -9
- package/fontes/modificadores/inicio-recuo-em-linha.js.map +1 -1
- package/fontes/modificadores/insercao-em-bloco-fim.d.ts +2 -1
- package/fontes/modificadores/insercao-em-bloco-fim.js +5 -9
- package/fontes/modificadores/insercao-em-bloco-fim.js.map +1 -1
- package/fontes/modificadores/insercao-em-bloco.d.ts +2 -1
- package/fontes/modificadores/insercao-em-bloco.js +5 -9
- package/fontes/modificadores/insercao-em-bloco.js.map +1 -1
- package/fontes/modificadores/insercao-em-linha-fim.d.ts +2 -1
- package/fontes/modificadores/insercao-em-linha-fim.js +5 -9
- package/fontes/modificadores/insercao-em-linha-fim.js.map +1 -1
- package/fontes/modificadores/insercao-em-linha.d.ts +2 -1
- package/fontes/modificadores/insercao-em-linha.js +5 -9
- package/fontes/modificadores/insercao-em-linha.js.map +1 -1
- package/fontes/modificadores/insercao.d.ts +2 -1
- package/fontes/modificadores/insercao.js +7 -11
- package/fontes/modificadores/insercao.js.map +1 -1
- package/fontes/modificadores/isolamento.d.ts +2 -1
- package/fontes/modificadores/isolamento.js +5 -4
- package/fontes/modificadores/isolamento.js.map +1 -1
- package/fontes/modificadores/justificar-conteudo.d.ts +2 -1
- package/fontes/modificadores/justificar-conteudo.js +6 -4
- package/fontes/modificadores/justificar-conteudo.js.map +1 -1
- package/fontes/modificadores/justificar-itens.d.ts +2 -1
- package/fontes/modificadores/justificar-itens.js +6 -4
- package/fontes/modificadores/justificar-itens.js.map +1 -1
- package/fontes/modificadores/justificar-se.d.ts +2 -1
- package/fontes/modificadores/justificar-se.js +6 -4
- package/fontes/modificadores/justificar-se.js.map +1 -1
- package/fontes/modificadores/justificar-texto.d.ts +2 -1
- package/fontes/modificadores/justificar-texto.js +5 -4
- package/fontes/modificadores/justificar-texto.js.map +1 -1
- package/fontes/modificadores/largura-barra-rolagem.d.ts +2 -1
- package/fontes/modificadores/largura-barra-rolagem.js +5 -4
- package/fontes/modificadores/largura-barra-rolagem.js.map +1 -1
- package/fontes/modificadores/largura-borda-direita.d.ts +2 -1
- package/fontes/modificadores/largura-borda-direita.js +5 -9
- package/fontes/modificadores/largura-borda-direita.js.map +1 -1
- package/fontes/modificadores/largura-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/largura-borda-em-bloco.js +5 -9
- package/fontes/modificadores/largura-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/largura-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/largura-borda-em-linha.js +5 -9
- package/fontes/modificadores/largura-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/largura-borda-esquerda.d.ts +2 -1
- package/fontes/modificadores/largura-borda-esquerda.js +5 -9
- package/fontes/modificadores/largura-borda-esquerda.js.map +1 -1
- package/fontes/modificadores/largura-borda-inferior.d.ts +2 -1
- package/fontes/modificadores/largura-borda-inferior.js +5 -9
- package/fontes/modificadores/largura-borda-inferior.js.map +1 -1
- package/fontes/modificadores/largura-borda-mascara.d.ts +2 -1
- package/fontes/modificadores/largura-borda-mascara.js +5 -10
- package/fontes/modificadores/largura-borda-mascara.js.map +1 -1
- package/fontes/modificadores/largura-borda-superior.d.ts +2 -1
- package/fontes/modificadores/largura-borda-superior.js +5 -9
- package/fontes/modificadores/largura-borda-superior.js.map +1 -1
- package/fontes/modificadores/largura-borda.d.ts +2 -1
- package/fontes/modificadores/largura-borda.js +7 -11
- package/fontes/modificadores/largura-borda.js.map +1 -1
- package/fontes/modificadores/largura-coluna.d.ts +2 -1
- package/fontes/modificadores/largura-coluna.js +5 -9
- package/fontes/modificadores/largura-coluna.js.map +1 -1
- package/fontes/modificadores/largura-contorno.d.ts +2 -1
- package/fontes/modificadores/largura-contorno.js +5 -9
- package/fontes/modificadores/largura-contorno.js.map +1 -1
- package/fontes/modificadores/largura-fim-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/largura-fim-borda-em-bloco.js +5 -9
- package/fontes/modificadores/largura-fim-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/largura-fim-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/largura-fim-borda-em-linha.js +5 -9
- package/fontes/modificadores/largura-fim-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/largura-imagem-borda.d.ts +2 -1
- package/fontes/modificadores/largura-imagem-borda.js +5 -9
- package/fontes/modificadores/largura-imagem-borda.js.map +1 -1
- package/fontes/modificadores/largura-inicio-borda-em-bloco.d.ts +2 -1
- package/fontes/modificadores/largura-inicio-borda-em-bloco.js +5 -9
- package/fontes/modificadores/largura-inicio-borda-em-bloco.js.map +1 -1
- package/fontes/modificadores/largura-inicio-borda-em-linha.d.ts +2 -1
- package/fontes/modificadores/largura-inicio-borda-em-linha.js +5 -9
- package/fontes/modificadores/largura-inicio-borda-em-linha.js.map +1 -1
- package/fontes/modificadores/largura-maxima.d.ts +2 -1
- package/fontes/modificadores/largura-maxima.js +5 -9
- package/fontes/modificadores/largura-maxima.js.map +1 -1
- package/fontes/modificadores/largura-minima.d.ts +2 -1
- package/fontes/modificadores/largura-minima.js +5 -9
- package/fontes/modificadores/largura-minima.js.map +1 -1
- package/fontes/modificadores/largura.d.ts +2 -1
- package/fontes/modificadores/largura.js +5 -9
- package/fontes/modificadores/largura.js.map +1 -1
- package/fontes/modificadores/limite-forma-imagem.d.ts +2 -1
- package/fontes/modificadores/limite-forma-imagem.js +16 -9
- package/fontes/modificadores/limite-forma-imagem.js.map +1 -1
- package/fontes/modificadores/linha-em-grade.d.ts +2 -1
- package/fontes/modificadores/linha-em-grade.js +7 -6
- package/fontes/modificadores/linha-em-grade.js.map +1 -1
- package/fontes/modificadores/linhas-inferiores.d.ts +2 -1
- package/fontes/modificadores/linhas-inferiores.js +5 -6
- package/fontes/modificadores/linhas-inferiores.js.map +1 -1
- package/fontes/modificadores/linhas-superiores.d.ts +2 -1
- package/fontes/modificadores/linhas-superiores.js +5 -6
- package/fontes/modificadores/linhas-superiores.js.map +1 -1
- package/fontes/modificadores/margem-direita-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/margem-direita-rolagem-mouse.js +5 -9
- package/fontes/modificadores/margem-direita-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/margem-direita.d.ts +2 -1
- package/fontes/modificadores/margem-direita.js +5 -9
- package/fontes/modificadores/margem-direita.js.map +1 -1
- package/fontes/modificadores/margem-em-bloco-fim.d.ts +2 -1
- package/fontes/modificadores/margem-em-bloco-fim.js +5 -9
- package/fontes/modificadores/margem-em-bloco-fim.js.map +1 -1
- package/fontes/modificadores/margem-em-bloco-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/margem-em-bloco-rolagem-mouse.js +5 -9
- package/fontes/modificadores/margem-em-bloco-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/margem-em-bloco.d.ts +2 -1
- package/fontes/modificadores/margem-em-bloco.js +7 -11
- package/fontes/modificadores/margem-em-bloco.js.map +1 -1
- package/fontes/modificadores/margem-em-linha-fim.d.ts +2 -1
- package/fontes/modificadores/margem-em-linha-fim.js +5 -9
- package/fontes/modificadores/margem-em-linha-fim.js.map +1 -1
- package/fontes/modificadores/margem-em-linha-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/margem-em-linha-rolagem-mouse.js +5 -9
- package/fontes/modificadores/margem-em-linha-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/margem-em-linha.d.ts +2 -1
- package/fontes/modificadores/margem-em-linha.js +7 -11
- package/fontes/modificadores/margem-em-linha.js.map +1 -1
- package/fontes/modificadores/margem-esquerda-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/margem-esquerda-rolagem-mouse.js +5 -9
- package/fontes/modificadores/margem-esquerda-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/margem-esquerda.d.ts +2 -1
- package/fontes/modificadores/margem-esquerda.js +5 -9
- package/fontes/modificadores/margem-esquerda.js.map +1 -1
- package/fontes/modificadores/margem-inferior-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/margem-inferior-rolagem-mouse.js +5 -9
- package/fontes/modificadores/margem-inferior-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/margem-inferior.d.ts +2 -1
- package/fontes/modificadores/margem-inferior.js +5 -9
- package/fontes/modificadores/margem-inferior.js.map +1 -1
- package/fontes/modificadores/margem-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/margem-rolagem-mouse.js +7 -11
- package/fontes/modificadores/margem-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/margem-superior-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/margem-superior-rolagem-mouse.js +5 -9
- package/fontes/modificadores/margem-superior-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/margem-superior.d.ts +2 -1
- package/fontes/modificadores/margem-superior.js +5 -9
- package/fontes/modificadores/margem-superior.js.map +1 -1
- package/fontes/modificadores/margem.d.ts +2 -1
- package/fontes/modificadores/margem.js +7 -11
- package/fontes/modificadores/margem.js.map +1 -1
- package/fontes/modificadores/mascara.d.ts +2 -1
- package/fontes/modificadores/mascara.js +7 -6
- package/fontes/modificadores/mascara.js.map +1 -1
- package/fontes/modificadores/mesclar-fundo.d.ts +2 -1
- package/fontes/modificadores/mesclar-fundo.js +5 -4
- package/fontes/modificadores/mesclar-fundo.js.map +1 -1
- package/fontes/modificadores/modelo-colunas-em-grade.d.ts +2 -1
- package/fontes/modificadores/modelo-colunas-em-grade.js +6 -9
- package/fontes/modificadores/modelo-colunas-em-grade.js.map +1 -1
- package/fontes/modificadores/modelo-em-grade.d.ts +2 -1
- package/fontes/modificadores/modelo-em-grade.js +8 -11
- package/fontes/modificadores/modelo-em-grade.js.map +1 -1
- package/fontes/modificadores/modelo-geral-em-grade.d.ts +2 -1
- package/fontes/modificadores/modelo-geral-em-grade.js +5 -4
- package/fontes/modificadores/modelo-geral-em-grade.js.map +1 -1
- package/fontes/modificadores/modelo-linhas-em-grade.d.ts +2 -1
- package/fontes/modificadores/modelo-linhas-em-grade.js +6 -9
- package/fontes/modificadores/modelo-linhas-em-grade.js.map +1 -1
- package/fontes/modificadores/modo-borda-mascara.d.ts +2 -1
- package/fontes/modificadores/modo-borda-mascara.js +5 -4
- package/fontes/modificadores/modo-borda-mascara.js.map +1 -1
- package/fontes/modificadores/modo-escrita.d.ts +2 -1
- package/fontes/modificadores/modo-escrita.js +5 -4
- package/fontes/modificadores/modo-escrita.js.map +1 -1
- package/fontes/modificadores/modo-mascara.d.ts +2 -1
- package/fontes/modificadores/modo-mascara.js +5 -4
- package/fontes/modificadores/modo-mascara.js.map +1 -1
- package/fontes/modificadores/modo-mescla.d.ts +2 -1
- package/fontes/modificadores/modo-mescla.js +5 -4
- package/fontes/modificadores/modo-mescla.js.map +1 -1
- package/fontes/modificadores/modo-preenchimento-animacao.d.ts +2 -1
- package/fontes/modificadores/modo-preenchimento-animacao.js +6 -4
- package/fontes/modificadores/modo-preenchimento-animacao.js.map +1 -1
- package/fontes/modificadores/nome-animacao.d.ts +2 -1
- package/fontes/modificadores/nome-animacao.js +14 -9
- package/fontes/modificadores/nome-animacao.js.map +1 -1
- package/fontes/modificadores/opacidade.d.ts +2 -1
- package/fontes/modificadores/opacidade.js +20 -11
- package/fontes/modificadores/opacidade.js.map +1 -1
- package/fontes/modificadores/ordem-pintura.d.ts +2 -1
- package/fontes/modificadores/ordem-pintura.js +5 -4
- package/fontes/modificadores/ordem-pintura.js.map +1 -1
- package/fontes/modificadores/ordenar.d.ts +2 -1
- package/fontes/modificadores/ordenar.js +5 -6
- package/fontes/modificadores/ordenar.js.map +1 -1
- package/fontes/modificadores/orientacao-imagem.d.ts +2 -1
- package/fontes/modificadores/orientacao-imagem.js +5 -4
- package/fontes/modificadores/orientacao-imagem.js.map +1 -1
- package/fontes/modificadores/orientacao-texto.d.ts +2 -1
- package/fontes/modificadores/orientacao-texto.js +5 -4
- package/fontes/modificadores/orientacao-texto.js.map +1 -1
- package/fontes/modificadores/origem-borda-mascara.d.ts +2 -3
- package/fontes/modificadores/origem-borda-mascara.js +5 -15
- package/fontes/modificadores/origem-borda-mascara.js.map +1 -1
- package/fontes/modificadores/origem-fundo.d.ts +2 -1
- package/fontes/modificadores/origem-fundo.js +5 -4
- package/fontes/modificadores/origem-fundo.js.map +1 -1
- package/fontes/modificadores/origem-imagem-borda.d.ts +2 -3
- package/fontes/modificadores/origem-imagem-borda.js +5 -15
- package/fontes/modificadores/origem-imagem-borda.js.map +1 -1
- package/fontes/modificadores/origem-mascara.d.ts +2 -1
- package/fontes/modificadores/origem-mascara.js +5 -4
- package/fontes/modificadores/origem-mascara.js.map +1 -1
- package/fontes/modificadores/origem-perspectiva.d.ts +2 -1
- package/fontes/modificadores/origem-perspectiva.js +5 -11
- package/fontes/modificadores/origem-perspectiva.js.map +1 -1
- package/fontes/modificadores/parar-encaixe-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/parar-encaixe-rolagem-mouse.js +6 -4
- package/fontes/modificadores/parar-encaixe-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/perspectiva.d.ts +2 -1
- package/fontes/modificadores/perspectiva.js +5 -8
- package/fontes/modificadores/perspectiva.js.map +1 -1
- package/fontes/modificadores/posicao-deslocamento.d.ts +2 -1
- package/fontes/modificadores/posicao-deslocamento.js +26 -9
- package/fontes/modificadores/posicao-deslocamento.js.map +1 -1
- package/fontes/modificadores/posicao-direita.d.ts +2 -1
- package/fontes/modificadores/posicao-direita.js +6 -12
- package/fontes/modificadores/posicao-direita.js.map +1 -1
- package/fontes/modificadores/posicao-enfase-texto.d.ts +2 -1
- package/fontes/modificadores/posicao-enfase-texto.js +5 -4
- package/fontes/modificadores/posicao-enfase-texto.js.map +1 -1
- package/fontes/modificadores/posicao-esquerda.d.ts +2 -1
- package/fontes/modificadores/posicao-esquerda.js +5 -9
- package/fontes/modificadores/posicao-esquerda.js.map +1 -1
- package/fontes/modificadores/posicao-fundo.d.ts +2 -1
- package/fontes/modificadores/posicao-fundo.js +12 -16
- package/fontes/modificadores/posicao-fundo.js.map +1 -1
- package/fontes/modificadores/posicao-horizontal-fundo.d.ts +2 -1
- package/fontes/modificadores/posicao-horizontal-fundo.js +5 -9
- package/fontes/modificadores/posicao-horizontal-fundo.js.map +1 -1
- package/fontes/modificadores/posicao-inferior.d.ts +2 -1
- package/fontes/modificadores/posicao-inferior.js +5 -9
- package/fontes/modificadores/posicao-inferior.js.map +1 -1
- package/fontes/modificadores/posicao-legenda.d.ts +2 -1
- package/fontes/modificadores/posicao-legenda.js +5 -4
- package/fontes/modificadores/posicao-legenda.js.map +1 -1
- package/fontes/modificadores/posicao-mascara.d.ts +2 -1
- package/fontes/modificadores/posicao-mascara.js +5 -4
- package/fontes/modificadores/posicao-mascara.js.map +1 -1
- package/fontes/modificadores/posicao-objeto.d.ts +2 -1
- package/fontes/modificadores/posicao-objeto.js +5 -4
- package/fontes/modificadores/posicao-objeto.js.map +1 -1
- package/fontes/modificadores/posicao-superior.d.ts +2 -1
- package/fontes/modificadores/posicao-superior.js +5 -9
- package/fontes/modificadores/posicao-superior.js.map +1 -1
- package/fontes/modificadores/posicao-texto-sublinhado.d.ts +2 -1
- package/fontes/modificadores/posicao-texto-sublinhado.js +6 -4
- package/fontes/modificadores/posicao-texto-sublinhado.js.map +1 -1
- package/fontes/modificadores/posicao-vertical-fundo.d.ts +2 -1
- package/fontes/modificadores/posicao-vertical-fundo.js +5 -9
- package/fontes/modificadores/posicao-vertical-fundo.js.map +1 -1
- package/fontes/modificadores/posicao.d.ts +2 -1
- package/fontes/modificadores/posicao.js +5 -4
- package/fontes/modificadores/posicao.js.map +1 -1
- package/fontes/modificadores/posicionar-conteudo.d.ts +2 -1
- package/fontes/modificadores/posicionar-conteudo.js +7 -6
- package/fontes/modificadores/posicionar-conteudo.js.map +1 -1
- package/fontes/modificadores/posicionar-itens.d.ts +2 -1
- package/fontes/modificadores/posicionar-itens.js +7 -6
- package/fontes/modificadores/posicionar-itens.js.map +1 -1
- package/fontes/modificadores/posicionar-se.d.ts +2 -1
- package/fontes/modificadores/posicionar-se.js +7 -6
- package/fontes/modificadores/posicionar-se.js.map +1 -1
- package/fontes/modificadores/preencher-coluna.d.ts +2 -1
- package/fontes/modificadores/preencher-coluna.js +5 -4
- package/fontes/modificadores/preencher-coluna.js.map +1 -1
- package/fontes/modificadores/proporcao-tela.d.ts +2 -1
- package/fontes/modificadores/proporcao-tela.js +7 -6
- package/fontes/modificadores/proporcao-tela.js.map +1 -1
- package/fontes/modificadores/propriedade-transicao.d.ts +2 -1
- package/fontes/modificadores/propriedade-transicao.js +7 -6
- package/fontes/modificadores/propriedade-transicao.js.map +1 -1
- package/fontes/modificadores/quebra-decoracao-caixa.d.ts +2 -1
- package/fontes/modificadores/quebra-decoracao-caixa.js +6 -4
- package/fontes/modificadores/quebra-decoracao-caixa.js.map +1 -1
- package/fontes/modificadores/quebrar-antes.d.ts +2 -1
- package/fontes/modificadores/quebrar-antes.js +5 -4
- package/fontes/modificadores/quebrar-antes.js.map +1 -1
- package/fontes/modificadores/quebrar-apos.d.ts +2 -1
- package/fontes/modificadores/quebrar-apos.js +5 -4
- package/fontes/modificadores/quebrar-apos.js.map +1 -1
- package/fontes/modificadores/quebrar-dentro.d.ts +2 -1
- package/fontes/modificadores/quebrar-dentro.js +5 -4
- package/fontes/modificadores/quebrar-dentro.js.map +1 -1
- package/fontes/modificadores/quebrar-linha.d.ts +2 -1
- package/fontes/modificadores/quebrar-linha.js +5 -4
- package/fontes/modificadores/quebrar-linha.js.map +1 -1
- package/fontes/modificadores/quebrar-pagina-antes.d.ts +2 -1
- package/fontes/modificadores/quebrar-pagina-antes.js +5 -4
- package/fontes/modificadores/quebrar-pagina-antes.js.map +1 -1
- package/fontes/modificadores/quebrar-pagina-apos.d.ts +2 -1
- package/fontes/modificadores/quebrar-pagina-apos.js +5 -4
- package/fontes/modificadores/quebrar-pagina-apos.js.map +1 -1
- package/fontes/modificadores/quebrar-pagina-dentro.d.ts +2 -1
- package/fontes/modificadores/quebrar-pagina-dentro.js +5 -4
- package/fontes/modificadores/quebrar-pagina-dentro.js.map +1 -1
- package/fontes/modificadores/quebrar-palavra.d.ts +2 -1
- package/fontes/modificadores/quebrar-palavra.js +5 -4
- package/fontes/modificadores/quebrar-palavra.js.map +1 -1
- package/fontes/modificadores/raio-borda.d.ts +2 -1
- package/fontes/modificadores/raio-borda.js +7 -11
- package/fontes/modificadores/raio-borda.js.map +1 -1
- package/fontes/modificadores/raio-direito-borda-inferior.d.ts +2 -1
- package/fontes/modificadores/raio-direito-borda-inferior.js +5 -9
- package/fontes/modificadores/raio-direito-borda-inferior.js.map +1 -1
- package/fontes/modificadores/raio-direito-borda-superior.d.ts +2 -1
- package/fontes/modificadores/raio-direito-borda-superior.js +5 -9
- package/fontes/modificadores/raio-direito-borda-superior.js.map +1 -1
- package/fontes/modificadores/raio-esquerdo-borda-inferior.d.ts +2 -1
- package/fontes/modificadores/raio-esquerdo-borda-inferior.js +5 -9
- package/fontes/modificadores/raio-esquerdo-borda-inferior.js.map +1 -1
- package/fontes/modificadores/raio-esquerdo-borda-superior.d.ts +2 -1
- package/fontes/modificadores/raio-esquerdo-borda-superior.js +5 -9
- package/fontes/modificadores/raio-esquerdo-borda-superior.js.map +1 -1
- package/fontes/modificadores/recolher-borda.d.ts +2 -1
- package/fontes/modificadores/recolher-borda.js +5 -4
- package/fontes/modificadores/recolher-borda.js.map +1 -1
- package/fontes/modificadores/recortar-fundo.d.ts +2 -1
- package/fontes/modificadores/recortar-fundo.js +5 -4
- package/fontes/modificadores/recortar-fundo.js.map +1 -1
- package/fontes/modificadores/recortar-margem-vazada.d.ts +2 -1
- package/fontes/modificadores/recortar-margem-vazada.js +5 -9
- package/fontes/modificadores/recortar-margem-vazada.js.map +1 -1
- package/fontes/modificadores/recortar.d.ts +2 -1
- package/fontes/modificadores/recortar.js +5 -4
- package/fontes/modificadores/recortar.js.map +1 -1
- package/fontes/modificadores/recuo-direito-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/recuo-direito-rolagem-mouse.js +5 -9
- package/fontes/modificadores/recuo-direito-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/recuo-direito.d.ts +2 -1
- package/fontes/modificadores/recuo-direito.js +5 -11
- package/fontes/modificadores/recuo-direito.js.map +1 -1
- package/fontes/modificadores/recuo-em-bloco-fim.d.ts +2 -1
- package/fontes/modificadores/recuo-em-bloco-fim.js +5 -9
- package/fontes/modificadores/recuo-em-bloco-fim.js.map +1 -1
- package/fontes/modificadores/recuo-em-bloco-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/recuo-em-bloco-rolagem-mouse.js +7 -11
- package/fontes/modificadores/recuo-em-bloco-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/recuo-em-bloco.d.ts +2 -1
- package/fontes/modificadores/recuo-em-bloco.js +7 -11
- package/fontes/modificadores/recuo-em-bloco.js.map +1 -1
- package/fontes/modificadores/recuo-em-linha-fim.d.ts +2 -1
- package/fontes/modificadores/recuo-em-linha-fim.js +5 -9
- package/fontes/modificadores/recuo-em-linha-fim.js.map +1 -1
- package/fontes/modificadores/recuo-em-linha-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/recuo-em-linha-rolagem-mouse.js +7 -11
- package/fontes/modificadores/recuo-em-linha-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/recuo-em-linha.d.ts +2 -1
- package/fontes/modificadores/recuo-em-linha.js +7 -11
- package/fontes/modificadores/recuo-em-linha.js.map +1 -1
- package/fontes/modificadores/recuo-esquerdo-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/recuo-esquerdo-rolagem-mouse.js +5 -9
- package/fontes/modificadores/recuo-esquerdo-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/recuo-esquerdo.d.ts +2 -1
- package/fontes/modificadores/recuo-esquerdo.js +5 -11
- package/fontes/modificadores/recuo-esquerdo.js.map +1 -1
- package/fontes/modificadores/recuo-inferior-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/recuo-inferior-rolagem-mouse.js +5 -9
- package/fontes/modificadores/recuo-inferior-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/recuo-inferior.d.ts +2 -1
- package/fontes/modificadores/recuo-inferior.js +5 -11
- package/fontes/modificadores/recuo-inferior.js.map +1 -1
- package/fontes/modificadores/recuo-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/recuo-rolagem-mouse.js +7 -11
- package/fontes/modificadores/recuo-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/recuo-superior-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/recuo-superior-rolagem-mouse.js +5 -9
- package/fontes/modificadores/recuo-superior-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/recuo-superior.d.ts +2 -1
- package/fontes/modificadores/recuo-superior.js +5 -11
- package/fontes/modificadores/recuo-superior.js.map +1 -1
- package/fontes/modificadores/recuo.d.ts +2 -1
- package/fontes/modificadores/recuo.js +8 -11
- package/fontes/modificadores/recuo.js.map +1 -1
- package/fontes/modificadores/recursos-fonte.d.ts +2 -1
- package/fontes/modificadores/recursos-fonte.js +15 -24
- package/fontes/modificadores/recursos-fonte.js.map +1 -1
- package/fontes/modificadores/redimensionar.d.ts +2 -1
- package/fontes/modificadores/redimensionar.js +5 -4
- package/fontes/modificadores/redimensionar.js.map +1 -1
- package/fontes/modificadores/regras-coluna.d.ts +2 -1
- package/fontes/modificadores/regras-coluna.js +7 -11
- package/fontes/modificadores/regras-coluna.js.map +1 -1
- package/fontes/modificadores/regras-cor-coluna.d.ts +2 -1
- package/fontes/modificadores/regras-cor-coluna.js +5 -4
- package/fontes/modificadores/regras-cor-coluna.js.map +1 -1
- package/fontes/modificadores/regras-estilo-coluna.d.ts +2 -1
- package/fontes/modificadores/regras-estilo-coluna.js +5 -4
- package/fontes/modificadores/regras-estilo-coluna.js.map +1 -1
- package/fontes/modificadores/regras-largura-coluna.d.ts +2 -1
- package/fontes/modificadores/regras-largura-coluna.js +5 -9
- package/fontes/modificadores/regras-largura-coluna.js.map +1 -1
- package/fontes/modificadores/reiniciar-contador.d.ts +2 -1
- package/fontes/modificadores/reiniciar-contador.js +5 -4
- package/fontes/modificadores/reiniciar-contador.js.map +1 -1
- package/fontes/modificadores/reiniciar-tudo.d.ts +2 -1
- package/fontes/modificadores/reiniciar-tudo.js +6 -9
- package/fontes/modificadores/reiniciar-tudo.js.map +1 -1
- package/fontes/modificadores/renderizacao-imagem.d.ts +2 -1
- package/fontes/modificadores/renderizacao-imagem.js +5 -4
- package/fontes/modificadores/renderizacao-imagem.js.map +1 -1
- package/fontes/modificadores/renderizacao-texto.d.ts +2 -1
- package/fontes/modificadores/renderizacao-texto.js +5 -4
- package/fontes/modificadores/renderizacao-texto.js.map +1 -1
- package/fontes/modificadores/repeticao-borda-mascara.d.ts +2 -1
- package/fontes/modificadores/repeticao-borda-mascara.js +6 -4
- package/fontes/modificadores/repeticao-borda-mascara.js.map +1 -1
- package/fontes/modificadores/repetir-animacao.d.ts +2 -1
- package/fontes/modificadores/repetir-animacao.js +5 -6
- package/fontes/modificadores/repetir-animacao.js.map +1 -1
- package/fontes/modificadores/repetir-fundo.d.ts +2 -1
- package/fontes/modificadores/repetir-fundo.js +5 -4
- package/fontes/modificadores/repetir-fundo.js.map +1 -1
- package/fontes/modificadores/repetir-imagem-borda.d.ts +2 -1
- package/fontes/modificadores/repetir-imagem-borda.js +5 -4
- package/fontes/modificadores/repetir-imagem-borda.js.map +1 -1
- package/fontes/modificadores/repetir-mascara.d.ts +2 -1
- package/fontes/modificadores/repetir-mascara.js +5 -4
- package/fontes/modificadores/repetir-mascara.js.map +1 -1
- package/fontes/modificadores/rotacao-deslocamento.d.ts +2 -1
- package/fontes/modificadores/rotacao-deslocamento.js +5 -10
- package/fontes/modificadores/rotacao-deslocamento.js.map +1 -1
- package/fontes/modificadores/selecao-usuario.d.ts +2 -1
- package/fontes/modificadores/selecao-usuario.js +5 -4
- package/fontes/modificadores/selecao-usuario.js.map +1 -1
- package/fontes/modificadores/sintetizar-fonte.d.ts +2 -1
- package/fontes/modificadores/sintetizar-fonte.js +10 -9
- package/fontes/modificadores/sintetizar-fonte.js.map +1 -1
- package/fontes/modificadores/sombra-caixa.d.ts +2 -3
- package/fontes/modificadores/sombra-caixa.js +5 -10
- package/fontes/modificadores/sombra-caixa.js.map +1 -1
- package/fontes/modificadores/sombra-texto.d.ts +2 -1
- package/fontes/modificadores/sombra-texto.js +5 -9
- package/fontes/modificadores/sombra-texto.js.map +1 -1
- package/fontes/modificadores/status-animacao.d.ts +2 -1
- package/fontes/modificadores/status-animacao.js +5 -4
- package/fontes/modificadores/status-animacao.js.map +1 -1
- package/fontes/modificadores/substituir-idioma-fonte.d.ts +2 -1
- package/fontes/modificadores/substituir-idioma-fonte.js +12 -7
- package/fontes/modificadores/substituir-idioma-fonte.js.map +1 -1
- package/fontes/modificadores/superclasse/modificador.d.ts +6 -3
- package/fontes/modificadores/superclasse/modificador.js +1 -0
- package/fontes/modificadores/superclasse/modificador.js.map +1 -1
- package/fontes/modificadores/superclasse/seletor-modificador.d.ts +2 -2
- package/fontes/modificadores/superclasse/seletor-modificador.js +2 -2
- package/fontes/modificadores/superclasse/seletor-modificador.js.map +1 -1
- package/fontes/modificadores/superclasse/seletor-reverso-modificador.d.ts +1 -1
- package/fontes/modificadores/superclasse/seletor-reverso-modificador.js +2 -2
- package/fontes/modificadores/superclasse/seletor-reverso-modificador.js.map +1 -1
- package/fontes/modificadores/tabulacao.d.ts +2 -1
- package/fontes/modificadores/tabulacao.js +5 -9
- package/fontes/modificadores/tabulacao.js.map +1 -1
- package/fontes/modificadores/tamanho-caixa.d.ts +2 -1
- package/fontes/modificadores/tamanho-caixa.js +5 -4
- package/fontes/modificadores/tamanho-caixa.js.map +1 -1
- package/fontes/modificadores/tamanho-colunas-em-grade.d.ts +2 -1
- package/fontes/modificadores/tamanho-colunas-em-grade.js +6 -10
- package/fontes/modificadores/tamanho-colunas-em-grade.js.map +1 -1
- package/fontes/modificadores/tamanho-em-bloco.d.ts +2 -1
- package/fontes/modificadores/tamanho-em-bloco.js +5 -9
- package/fontes/modificadores/tamanho-em-bloco.js.map +1 -1
- package/fontes/modificadores/tamanho-em-linha.d.ts +2 -1
- package/fontes/modificadores/tamanho-em-linha.js +5 -9
- package/fontes/modificadores/tamanho-em-linha.js.map +1 -1
- package/fontes/modificadores/tamanho-fonte.d.ts +2 -1
- package/fontes/modificadores/tamanho-fonte.js +5 -9
- package/fontes/modificadores/tamanho-fonte.js.map +1 -1
- package/fontes/modificadores/tamanho-fundo.d.ts +2 -1
- package/fontes/modificadores/tamanho-fundo.js +5 -9
- package/fontes/modificadores/tamanho-fundo.js.map +1 -1
- package/fontes/modificadores/tamanho-grade.d.ts +2 -1
- package/fontes/modificadores/tamanho-grade.js +7 -6
- package/fontes/modificadores/tamanho-grade.js.map +1 -1
- package/fontes/modificadores/tamanho-linhas-em-grade.d.ts +2 -1
- package/fontes/modificadores/tamanho-linhas-em-grade.js +6 -10
- package/fontes/modificadores/tamanho-linhas-em-grade.js.map +1 -1
- package/fontes/modificadores/tamanho-mascara.d.ts +2 -1
- package/fontes/modificadores/tamanho-mascara.js +5 -9
- package/fontes/modificadores/tamanho-mascara.js.map +1 -1
- package/fontes/modificadores/tamanho-maximo-em-bloco.d.ts +2 -1
- package/fontes/modificadores/tamanho-maximo-em-bloco.js +5 -9
- package/fontes/modificadores/tamanho-maximo-em-bloco.js.map +1 -1
- package/fontes/modificadores/tamanho-maximo-em-linha.d.ts +2 -1
- package/fontes/modificadores/tamanho-maximo-em-linha.js +5 -9
- package/fontes/modificadores/tamanho-maximo-em-linha.js.map +1 -1
- package/fontes/modificadores/tamanho-minimo-em-bloco.d.ts +2 -1
- package/fontes/modificadores/tamanho-minimo-em-bloco.js +5 -9
- package/fontes/modificadores/tamanho-minimo-em-bloco.js.map +1 -1
- package/fontes/modificadores/tamanho-minimo-em-linha.d.ts +2 -1
- package/fontes/modificadores/tamanho-minimo-em-linha.js +5 -9
- package/fontes/modificadores/tamanho-minimo-em-linha.js.map +1 -1
- package/fontes/modificadores/tamanho-optico-fonte.d.ts +2 -1
- package/fontes/modificadores/tamanho-optico-fonte.js +5 -4
- package/fontes/modificadores/tamanho-optico-fonte.js.map +1 -1
- package/fontes/modificadores/tempo-transicao.d.ts +2 -3
- package/fontes/modificadores/tempo-transicao.js +5 -15
- package/fontes/modificadores/tempo-transicao.js.map +1 -1
- package/fontes/modificadores/texto-bidirecional.d.ts +2 -1
- package/fontes/modificadores/texto-bidirecional.js +5 -4
- package/fontes/modificadores/texto-bidirecional.js.map +1 -1
- package/fontes/modificadores/tipo-encaixe-rolagem-mouse.d.ts +2 -1
- package/fontes/modificadores/tipo-encaixe-rolagem-mouse.js +6 -4
- package/fontes/modificadores/tipo-encaixe-rolagem-mouse.js.map +1 -1
- package/fontes/modificadores/tipo-mascara.d.ts +2 -1
- package/fontes/modificadores/tipo-mascara.js +5 -4
- package/fontes/modificadores/tipo-mascara.js.map +1 -1
- package/fontes/modificadores/toque-tela.d.ts +2 -1
- package/fontes/modificadores/toque-tela.js +5 -4
- package/fontes/modificadores/toque-tela.js.map +1 -1
- package/fontes/modificadores/trajeto-deslocamento.d.ts +2 -3
- package/fontes/modificadores/trajeto-deslocamento.js +5 -15
- package/fontes/modificadores/trajeto-deslocamento.js.map +1 -1
- package/fontes/modificadores/transformar-caixa.d.ts +2 -1
- package/fontes/modificadores/transformar-caixa.js +5 -4
- package/fontes/modificadores/transformar-caixa.js.map +1 -1
- package/fontes/modificadores/transformar-estilo.d.ts +2 -1
- package/fontes/modificadores/transformar-estilo.js +5 -4
- package/fontes/modificadores/transformar-estilo.js.map +1 -1
- package/fontes/modificadores/transformar-origem.d.ts +2 -1
- package/fontes/modificadores/transformar-origem.js +5 -10
- package/fontes/modificadores/transformar-origem.js.map +1 -1
- package/fontes/modificadores/transformar-texto.d.ts +2 -1
- package/fontes/modificadores/transformar-texto.js +5 -4
- package/fontes/modificadores/transformar-texto.js.map +1 -1
- package/fontes/modificadores/transformar.d.ts +2 -3
- package/fontes/modificadores/transformar.js +6 -15
- package/fontes/modificadores/transformar.js.map +1 -1
- package/fontes/modificadores/transicao.d.ts +2 -1
- package/fontes/modificadores/transicao.js +7 -11
- package/fontes/modificadores/transicao.js.map +1 -1
- package/fontes/modificadores/validacoes/atribuicao-abreviada.d.ts +5 -2
- package/fontes/modificadores/validacoes/atribuicao-abreviada.js +35 -45
- package/fontes/modificadores/validacoes/atribuicao-abreviada.js.map +1 -1
- package/fontes/modificadores/validacoes/capturar-valor.d.ts +6 -0
- package/fontes/modificadores/validacoes/capturar-valor.js +35 -0
- package/fontes/modificadores/validacoes/capturar-valor.js.map +1 -0
- package/fontes/modificadores/validacoes/comum.d.ts +2 -1
- package/fontes/modificadores/validacoes/comum.js +14 -11
- package/fontes/modificadores/validacoes/comum.js.map +1 -1
- package/fontes/modificadores/validacoes/condicao-extra.d.ts +2 -1
- package/fontes/modificadores/validacoes/condicao-extra.js +10 -8
- package/fontes/modificadores/validacoes/condicao-extra.js.map +1 -1
- package/fontes/modificadores/validacoes/cor.d.ts +2 -4
- package/fontes/modificadores/validacoes/cor.js +19 -19
- package/fontes/modificadores/validacoes/cor.js.map +1 -1
- package/fontes/modificadores/validacoes/fonte.d.ts +3 -2
- package/fontes/modificadores/validacoes/fonte.js +7 -5
- package/fontes/modificadores/validacoes/fonte.js.map +1 -1
- package/fontes/modificadores/validacoes/identificacao-personalizada.d.ts +4 -1
- package/fontes/modificadores/validacoes/identificacao-personalizada.js +28 -7
- package/fontes/modificadores/validacoes/identificacao-personalizada.js.map +1 -1
- package/fontes/modificadores/validacoes/multiplos-qualitativos.d.ts +6 -1
- package/fontes/modificadores/validacoes/multiplos-qualitativos.js +34 -20
- package/fontes/modificadores/validacoes/multiplos-qualitativos.js.map +1 -1
- package/fontes/modificadores/validacoes/numerica.d.ts +5 -2
- package/fontes/modificadores/validacoes/numerica.js +34 -20
- package/fontes/modificadores/validacoes/numerica.js.map +1 -1
- package/fontes/modificadores/validacoes/proibir-quantificador.d.ts +1 -1
- package/fontes/modificadores/validacoes/proibir-quantificador.js +2 -2
- package/fontes/modificadores/validacoes/proibir-quantificador.js.map +1 -1
- package/fontes/modificadores/validacoes/quantificador.d.ts +1 -1
- package/fontes/modificadores/validacoes/quantificador.js +4 -15
- package/fontes/modificadores/validacoes/quantificador.js.map +1 -1
- package/fontes/modificadores/validacoes/string.d.ts +2 -1
- package/fontes/modificadores/validacoes/string.js +1 -1
- package/fontes/modificadores/validacoes/string.js.map +1 -1
- package/fontes/modificadores/variacao-fonte-alternativa.d.ts +2 -1
- package/fontes/modificadores/variacao-fonte-alternativa.js +7 -4
- package/fontes/modificadores/variacao-fonte-alternativa.js.map +1 -1
- package/fontes/modificadores/variacao-fonte-asiatica.d.ts +2 -1
- package/fontes/modificadores/variacao-fonte-asiatica.js +6 -4
- package/fontes/modificadores/variacao-fonte-asiatica.js.map +1 -1
- package/fontes/modificadores/variacao-fonte-ligacao.d.ts +2 -1
- package/fontes/modificadores/variacao-fonte-ligacao.js +6 -4
- package/fontes/modificadores/variacao-fonte-ligacao.js.map +1 -1
- package/fontes/modificadores/variacao-fonte-maiuscula.d.ts +2 -1
- package/fontes/modificadores/variacao-fonte-maiuscula.js +6 -4
- package/fontes/modificadores/variacao-fonte-maiuscula.js.map +1 -1
- package/fontes/modificadores/variacao-fonte-numerica.d.ts +2 -1
- package/fontes/modificadores/variacao-fonte-numerica.js +6 -4
- package/fontes/modificadores/variacao-fonte-numerica.js.map +1 -1
- package/fontes/modificadores/variacao-fonte-posicao.d.ts +2 -1
- package/fontes/modificadores/variacao-fonte-posicao.js +6 -4
- package/fontes/modificadores/variacao-fonte-posicao.js.map +1 -1
- package/fontes/modificadores/variacao-fonte.d.ts +2 -1
- package/fontes/modificadores/variacao-fonte.js +7 -6
- package/fontes/modificadores/variacao-fonte.js.map +1 -1
- package/fontes/modificadores/vazamento-em-ancora.d.ts +2 -1
- package/fontes/modificadores/vazamento-em-ancora.js +5 -4
- package/fontes/modificadores/vazamento-em-ancora.js.map +1 -1
- package/fontes/modificadores/vazamento-em-bloco.d.ts +2 -1
- package/fontes/modificadores/vazamento-em-bloco.js +6 -5
- package/fontes/modificadores/vazamento-em-bloco.js.map +1 -1
- package/fontes/modificadores/vazamento-em-linha.d.ts +2 -1
- package/fontes/modificadores/vazamento-em-linha.js +6 -5
- package/fontes/modificadores/vazamento-em-linha.js.map +1 -1
- package/fontes/modificadores/vazamento-horizontal.d.ts +2 -1
- package/fontes/modificadores/vazamento-horizontal.js +6 -5
- package/fontes/modificadores/vazamento-horizontal.js.map +1 -1
- package/fontes/modificadores/vazamento-texto.d.ts +2 -1
- package/fontes/modificadores/vazamento-texto.js +13 -9
- package/fontes/modificadores/vazamento-texto.js.map +1 -1
- package/fontes/modificadores/vazamento-vertical.d.ts +2 -1
- package/fontes/modificadores/vazamento-vertical.js +6 -5
- package/fontes/modificadores/vazamento-vertical.js.map +1 -1
- package/fontes/modificadores/vazamento.d.ts +2 -1
- package/fontes/modificadores/vazamento.js +8 -7
- package/fontes/modificadores/vazamento.js.map +1 -1
- package/fontes/modificadores/velocidade-animacao.d.ts +2 -3
- package/fontes/modificadores/velocidade-animacao.js +5 -15
- package/fontes/modificadores/velocidade-animacao.js.map +1 -1
- package/fontes/modificadores/visibilidade-conteudo.d.ts +2 -1
- package/fontes/modificadores/visibilidade-conteudo.js +5 -4
- package/fontes/modificadores/visibilidade-conteudo.js.map +1 -1
- package/fontes/modificadores/visibilidade-fundo.d.ts +2 -1
- package/fontes/modificadores/visibilidade-fundo.js +5 -4
- package/fontes/modificadores/visibilidade-fundo.js.map +1 -1
- package/fontes/modificadores/visibilidade.d.ts +2 -1
- package/fontes/modificadores/visibilidade.js +5 -4
- package/fontes/modificadores/visibilidade.js.map +1 -1
- package/fontes/resolvedores/index.d.ts +2 -0
- package/fontes/{serializadores → resolvedores}/index.js +2 -2
- package/fontes/resolvedores/index.js.map +1 -0
- package/fontes/resolvedores/resolvedor-reverso.d.ts +14 -0
- package/fontes/{serializadores/serializador-reverso.js → resolvedores/resolvedor-reverso.js} +25 -25
- package/fontes/resolvedores/resolvedor-reverso.js.map +1 -0
- package/fontes/resolvedores/resolvedor.d.ts +39 -0
- package/fontes/resolvedores/resolvedor.js +181 -0
- package/fontes/resolvedores/resolvedor.js.map +1 -0
- package/fontes/tradutores/tradutor-reverso.js +1 -4
- package/fontes/tradutores/tradutor-reverso.js.map +1 -1
- package/fontes/tradutores/tradutor.js +4 -2
- package/fontes/tradutores/tradutor.js.map +1 -1
- package/fontes/valores/dicionario-valores.js +18 -0
- package/fontes/valores/dicionario-valores.js.map +1 -1
- package/fontes/valores/index.d.ts +6 -0
- package/fontes/valores/index.js +23 -0
- package/fontes/valores/index.js.map +1 -0
- package/fontes/valores/metodos/css/annotation.d.ts +8 -0
- package/fontes/valores/metodos/css/annotation.js +25 -0
- package/fontes/valores/metodos/css/annotation.js.map +1 -0
- package/fontes/valores/metodos/css/character-variant.d.ts +8 -0
- package/fontes/valores/metodos/css/character-variant.js +19 -0
- package/fontes/valores/metodos/css/character-variant.js.map +1 -0
- package/fontes/valores/metodos/css/counter.d.ts +10 -0
- package/fontes/valores/metodos/css/counter.js +55 -0
- package/fontes/valores/metodos/css/counter.js.map +1 -0
- package/fontes/valores/metodos/css/ornaments.d.ts +8 -0
- package/fontes/valores/metodos/css/ornaments.js +25 -0
- package/fontes/valores/metodos/css/ornaments.js.map +1 -0
- package/fontes/valores/metodos/css/rotate3d.d.ts +12 -0
- package/fontes/valores/metodos/css/rotate3d.js +26 -0
- package/fontes/valores/metodos/css/rotate3d.js.map +1 -0
- package/fontes/valores/metodos/css/styleset.d.ts +10 -0
- package/fontes/valores/metodos/css/styleset.js +29 -0
- package/fontes/valores/metodos/css/styleset.js.map +1 -0
- package/fontes/valores/metodos/css/stylistic.d.ts +8 -0
- package/fontes/valores/metodos/css/stylistic.js +19 -0
- package/fontes/valores/metodos/css/stylistic.js.map +1 -0
- package/fontes/valores/metodos/css/swash.d.ts +8 -0
- package/fontes/valores/metodos/css/swash.js +19 -0
- package/fontes/valores/metodos/css/swash.js.map +1 -0
- package/fontes/valores/metodos/foles/anotacao.d.ts +8 -0
- package/fontes/valores/metodos/foles/anotacao.js +25 -0
- package/fontes/valores/metodos/foles/anotacao.js.map +1 -0
- package/fontes/valores/metodos/foles/conjunto-estilos.d.ts +10 -0
- package/fontes/valores/metodos/foles/conjunto-estilos.js +29 -0
- package/fontes/valores/metodos/foles/conjunto-estilos.js.map +1 -0
- package/fontes/valores/metodos/foles/contador.d.ts +10 -0
- package/fontes/valores/metodos/foles/contador.js +70 -0
- package/fontes/valores/metodos/foles/contador.js.map +1 -0
- package/fontes/valores/metodos/foles/espirrar.d.ts +8 -0
- package/fontes/valores/metodos/foles/espirrar.js +19 -0
- package/fontes/valores/metodos/foles/espirrar.js.map +1 -0
- package/fontes/valores/metodos/foles/estilistico.d.ts +8 -0
- package/fontes/valores/metodos/foles/estilistico.js +19 -0
- package/fontes/valores/metodos/foles/estilistico.js.map +1 -0
- package/fontes/valores/metodos/foles/ornamentos.d.ts +8 -0
- package/fontes/valores/metodos/foles/ornamentos.js +25 -0
- package/fontes/valores/metodos/foles/ornamentos.js.map +1 -0
- package/fontes/valores/metodos/foles/rotacionar-3d.d.ts +12 -0
- package/fontes/valores/metodos/foles/rotacionar-3d.js +29 -0
- package/fontes/valores/metodos/foles/rotacionar-3d.js.map +1 -0
- package/fontes/valores/metodos/foles/variar-caractere.d.ts +8 -0
- package/fontes/valores/metodos/foles/variar-caractere.js +19 -0
- package/fontes/valores/metodos/foles/variar-caractere.js.map +1 -0
- package/fontes/valores/referencia-variavel.d.ts +6 -0
- package/fontes/valores/referencia-variavel.js +15 -0
- package/fontes/valores/referencia-variavel.js.map +1 -0
- package/fontes/valores/valor-abreviacao.d.ts +4 -0
- package/fontes/valores/valor-abreviacao.js +11 -0
- package/fontes/valores/valor-abreviacao.js.map +1 -0
- package/fontes/valores/valor-numerico.d.ts +7 -0
- package/fontes/valores/valor-numerico.js +20 -0
- package/fontes/valores/valor-numerico.js.map +1 -0
- package/fontes/valores/valor-qualitativo.d.ts +6 -0
- package/fontes/valores/valor-qualitativo.js +15 -0
- package/fontes/valores/valor-qualitativo.js.map +1 -0
- package/fontes/valores/valor-texto.d.ts +6 -0
- package/fontes/valores/valor-texto.js +15 -0
- package/fontes/valores/valor-texto.js.map +1 -0
- package/fontes/valores/valor-virgula.d.ts +4 -0
- package/fontes/valores/valor-virgula.js +11 -0
- package/fontes/valores/valor-virgula.js.map +1 -0
- package/fontes/valores/valor.d.ts +1 -0
- package/fontes/valores/valor.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/testes/avaliador-sintatico.test.js +16 -13
- package/testes/avaliador-sintatico.test.js.map +1 -1
- package/testes/listas/atribuicao-abreviada.js +51 -5
- package/testes/listas/atribuicao-abreviada.js.map +1 -1
- package/testes/listas/valores-numericos.d.ts +4 -0
- package/testes/listas/{valor-numerico.js → valores-numericos.js} +6 -6
- package/testes/listas/valores-numericos.js.map +1 -0
- package/testes/listas/valores-personalizados.d.ts +1 -0
- package/testes/listas/valores-personalizados.js +51 -18
- package/testes/listas/valores-personalizados.js.map +1 -1
- package/testes/listas/{valor-quantificador.d.ts → valores-quantificadores.d.ts} +1 -1
- package/testes/listas/{valor-quantificador.js → valores-quantificadores.js} +3 -3
- package/testes/listas/valores-quantificadores.js.map +1 -0
- package/testes/modificadores/atribuicao-abreviada.test.js +45 -44
- package/testes/modificadores/atribuicao-abreviada.test.js.map +1 -1
- package/testes/modificadores/cores.test.js +35 -34
- package/testes/modificadores/cores.test.js.map +1 -1
- package/testes/modificadores/estilo.test.js +18 -17
- package/testes/modificadores/estilo.test.js.map +1 -1
- package/testes/modificadores/metodos-reversos.test.js +165 -96
- package/testes/modificadores/metodos-reversos.test.js.map +1 -1
- package/testes/modificadores/metodos.test.js +2347 -1804
- package/testes/modificadores/metodos.test.js.map +1 -1
- package/testes/modificadores/palavras-reservadas.test.js +12 -11
- package/testes/modificadores/palavras-reservadas.test.js.map +1 -1
- package/testes/modificadores/posicao.test.js +126 -127
- package/testes/modificadores/posicao.test.js.map +1 -1
- package/testes/modificadores/pseudoclasses.test.js +4 -4
- package/testes/modificadores/pseudoclasses.test.js.map +1 -1
- package/testes/modificadores/status.test.js +22 -25
- package/testes/modificadores/status.test.js.map +1 -1
- package/testes/modificadores/suporte-variaveis.test.js +29 -36
- package/testes/modificadores/suporte-variaveis.test.js.map +1 -1
- package/testes/modificadores/url.test.js +4 -4
- package/testes/modificadores/url.test.js.map +1 -1
- package/testes/modificadores/validacoes-modificadores.test.js +31 -32
- package/testes/modificadores/validacoes-modificadores.test.js.map +1 -1
- package/testes/modificadores/valor-global.test.js +20 -19
- package/testes/modificadores/valor-global.test.js.map +1 -1
- package/testes/modificadores/valor-numerico.test.js +251 -222
- package/testes/modificadores/valor-numerico.test.js.map +1 -1
- package/testes/modificadores/valor-quantificador.test.js +65 -64
- package/testes/modificadores/valor-quantificador.test.js.map +1 -1
- package/testes/modificadores/valor-string.test.js +66 -67
- package/testes/modificadores/valor-string.test.js.map +1 -1
- package/testes/modificadores/valores-especificos.test.js +71 -65
- package/testes/modificadores/valores-especificos.test.js.map +1 -1
- package/testes/{serializador-reverso.test.js → resolvedor-reverso.test.js} +23 -22
- package/testes/resolvedor-reverso.test.js.map +1 -0
- package/testes/resolvedor.test.js +193 -0
- package/testes/resolvedor.test.js.map +1 -0
- package/testes/seletores-estruturas.test.js +7 -7
- package/testes/seletores-estruturas.test.js.map +1 -1
- package/testes/tradutor.test.js +1 -1
- package/testes/tradutor.test.js.map +1 -1
- package/fontes/modificadores/decoracao-cor-texto .js.map +0 -1
- package/fontes/serializadores/index.d.ts +0 -2
- package/fontes/serializadores/index.js.map +0 -1
- package/fontes/serializadores/serializador-reverso.d.ts +0 -12
- package/fontes/serializadores/serializador-reverso.js.map +0 -1
- package/fontes/serializadores/serializador.d.ts +0 -27
- package/fontes/serializadores/serializador.js +0 -219
- package/fontes/serializadores/serializador.js.map +0 -1
- package/testes/listas/valor-numerico.d.ts +0 -4
- package/testes/listas/valor-numerico.js.map +0 -1
- package/testes/listas/valor-quantificador.js.map +0 -1
- package/testes/serializador-reverso.test.js.map +0 -1
- package/testes/serializador.test.js +0 -96
- package/testes/serializador.test.js.map +0 -1
- /package/testes/{serializador-reverso.test.d.ts → resolvedor-reverso.test.d.ts} +0 -0
- /package/testes/{serializador.test.d.ts → resolvedor.test.d.ts} +0 -0
|
@@ -7,137 +7,43 @@ const avaliador_sintatico_1 = require("../../fontes/avaliador-sintatico");
|
|
|
7
7
|
const importador_1 = require("../../fontes/importador");
|
|
8
8
|
const lexador_1 = require("../../fontes/lexador");
|
|
9
9
|
const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
|
|
10
|
-
const
|
|
10
|
+
const resolvedores_1 = require("../../fontes/resolvedores");
|
|
11
11
|
const metodos_1 = require("../listas/metodos");
|
|
12
12
|
const declaracoes_1 = require("../../fontes/declaracoes");
|
|
13
13
|
const seletor_valor_1 = require("../../fontes/valores/seletor-valor");
|
|
14
|
+
const contador_1 = require("../../fontes/valores/metodos/foles/contador");
|
|
14
15
|
describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Lexador
|
|
31
|
-
const resultadoLexador = lexador.mapear([
|
|
32
|
-
"lmht {",
|
|
33
|
-
`${metodos_1.MetodoBorrar[index]}: borrar(${valoresAceitos[valIndex]});`,
|
|
34
|
-
"}"
|
|
35
|
-
]);
|
|
36
|
-
// O Lexador não deve encontrar erros
|
|
37
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
38
|
-
// O valor recebido deve ser mapeado como METODO
|
|
39
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
40
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
41
|
-
]));
|
|
42
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
43
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
44
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
45
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
46
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
47
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
48
|
-
]));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
52
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
53
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
54
|
-
]));
|
|
55
|
-
}
|
|
56
|
-
// Avaliador Sintático
|
|
57
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
58
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
59
|
-
// TODO @Vitor: Alterei um caso para você.
|
|
60
|
-
// Os demais podem seguir a mesma lógica.
|
|
61
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
62
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
63
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
64
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
65
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
66
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBorrar[index]]);
|
|
67
|
-
// Tradutor
|
|
68
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
69
|
-
// O Tradutor deve serializar de acordo e traduzir borrar para blur
|
|
70
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBorrar[index]]);
|
|
71
|
-
expect(resultadoTradutor).toContain(`blur(${valoresAceitos[valIndex]});`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
it('Atribuindo Método "brilho()"', () => {
|
|
76
|
-
for (let index = 0; index < metodos_1.MetodoBrilho.length; index += 1) {
|
|
77
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
78
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
79
|
-
// Lexador
|
|
80
|
-
const resultadoLexador = lexador.mapear([
|
|
81
|
-
"lmht {",
|
|
82
|
-
`${metodos_1.MetodoBrilho[index]}: brilho(${valoresAceitos[valIndex]});`,
|
|
83
|
-
"}"
|
|
84
|
-
]);
|
|
85
|
-
// O Lexador não deve encontrar erros
|
|
86
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
87
|
-
// O valor recebido deve ser mapeado como METODO
|
|
88
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
89
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
90
|
-
]));
|
|
91
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
92
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
93
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
94
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
95
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
96
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
97
|
-
]));
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
101
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
102
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
103
|
-
]));
|
|
104
|
-
}
|
|
105
|
-
// Avaliador Sintático
|
|
106
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
107
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
108
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
109
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
110
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
111
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
112
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
113
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBrilho[index]]);
|
|
114
|
-
// Tradutor
|
|
115
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
116
|
-
// O Tradutor deve serializar de acordo e traduzir brilho para brightness
|
|
117
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBrilho[index]]);
|
|
118
|
-
expect(resultadoTradutor).toContain(`brightness(${valoresAceitos[valIndex]});`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
it('Atribuindo Método "calcular()"', () => {
|
|
123
|
-
for (let index = 0; index < metodos_1.MetodoCalcular.length; index += 1) {
|
|
16
|
+
let lexador;
|
|
17
|
+
let importador;
|
|
18
|
+
let avaliador;
|
|
19
|
+
let resolvedor;
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
lexador = new lexador_1.Lexador();
|
|
22
|
+
importador = new importador_1.Importador(lexador);
|
|
23
|
+
avaliador = new avaliador_sintatico_1.AvaliadorSintatico(importador);
|
|
24
|
+
resolvedor = new resolvedores_1.Resolvedor();
|
|
25
|
+
});
|
|
26
|
+
it('Atribuindo Método "anotação()" com valor numérico - caso de sucesso', () => {
|
|
27
|
+
const formasAceitas = ['anotação', 'anotacao'];
|
|
28
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
29
|
+
for (let valIndex = 0; valIndex < formasAceitas.length; valIndex += 1) {
|
|
30
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
124
31
|
// Lexador
|
|
125
32
|
const resultadoLexador = lexador.mapear([
|
|
126
33
|
"lmht {",
|
|
127
|
-
|
|
34
|
+
`variacao-fonte-alternativa: ${formasAceitas[valIndex]}(${valoresAceitos[index]});`,
|
|
128
35
|
"}"
|
|
129
36
|
]);
|
|
130
|
-
// O Lexador deve
|
|
131
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
37
|
+
// O Lexador não deve encontrar erros
|
|
132
38
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
133
39
|
// O valor recebido deve ser mapeado como METODO
|
|
134
40
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
135
41
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
136
42
|
]));
|
|
137
|
-
// O Lexador
|
|
43
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
44
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
138
45
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
139
46
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
140
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
141
47
|
]));
|
|
142
48
|
// Avaliador Sintático
|
|
143
49
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
@@ -147,78 +53,49 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
147
53
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
148
54
|
const primeiroResultadoTipado = primeiroResultado;
|
|
149
55
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
150
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(
|
|
151
|
-
//
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
expect(
|
|
155
|
-
|
|
156
|
-
});
|
|
157
|
-
it('Atribuindo Método "contraste()"', () => {
|
|
158
|
-
for (let index = 0; index < metodos_1.MetodoContraste.length; index += 1) {
|
|
159
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
160
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
161
|
-
// Lexador
|
|
162
|
-
const resultadoLexador = lexador.mapear([
|
|
163
|
-
"lmht {",
|
|
164
|
-
`${metodos_1.MetodoContraste[index]}: contraste(${valoresAceitos[valIndex]});`,
|
|
165
|
-
"}"
|
|
166
|
-
]);
|
|
167
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
168
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
169
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
170
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
171
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
172
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
173
|
-
]));
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
177
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
178
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
179
|
-
]));
|
|
180
|
-
}
|
|
181
|
-
// O Lexador não deve encontrar erros
|
|
182
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
183
|
-
// O valor recebido deve ser mapeado como METODO
|
|
184
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
185
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
186
|
-
]));
|
|
187
|
-
// Avaliador Sintático
|
|
188
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
189
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
190
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
191
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
192
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
193
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
194
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
195
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoContraste[index]]);
|
|
196
|
-
// Tradutor
|
|
197
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
198
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoContraste[index]]);
|
|
199
|
-
expect(resultadoTradutor).toContain(`contrast(${valoresAceitos[valIndex]});`);
|
|
200
|
-
}
|
|
56
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
57
|
+
// Resolvedor
|
|
58
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
59
|
+
// O Resolvedor deve resolver de acordo e traduzir anotação para annotation
|
|
60
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
61
|
+
expect(resultadoResolvedor).toContain(`annotation(${valoresAceitos[index]});`);
|
|
201
62
|
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
it('Atribuindo Método "anotação()" com valor numérico - caso de falha', () => {
|
|
66
|
+
const valoresAceitos = ['0', '100', '300'];
|
|
67
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
68
|
+
// Lexador
|
|
69
|
+
const resultadoLexador = lexador.mapear([
|
|
70
|
+
"lmht {",
|
|
71
|
+
`variacao-fonte-alternativa: anotação(${valoresAceitos[index]});`,
|
|
72
|
+
"}"
|
|
73
|
+
]);
|
|
74
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
75
|
+
expect(() => {
|
|
76
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
77
|
+
}).toThrow('O valor da função anotação() deve estar entre 1 e 99');
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
it('Atribuindo Método "anotação()" com valor string - caso de sucesso', () => {
|
|
81
|
+
const formasAceitas = ['anotação', 'anotacao'];
|
|
82
|
+
const valoresAceitos = ['floral', 'ruby', 'circle'];
|
|
83
|
+
for (let valIndex = 0; valIndex < formasAceitas.length; valIndex += 1) {
|
|
84
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
205
85
|
// Lexador
|
|
206
86
|
const resultadoLexador = lexador.mapear([
|
|
207
87
|
"lmht {",
|
|
208
|
-
|
|
88
|
+
`variacao-fonte-alternativa: ${formasAceitas[valIndex]}('${valoresAceitos[index]}');`,
|
|
209
89
|
"}"
|
|
210
90
|
]);
|
|
211
|
-
// O Lexador deve
|
|
212
|
-
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
91
|
+
// O Lexador não deve encontrar erros
|
|
213
92
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
214
93
|
// O valor recebido deve ser mapeado como METODO
|
|
215
94
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
216
95
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
217
96
|
]));
|
|
218
|
-
// O Lexador
|
|
219
|
-
expect(resultadoLexador.simbolos).
|
|
220
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
221
|
-
]));
|
|
97
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
98
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
222
99
|
// Avaliador Sintático
|
|
223
100
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
224
101
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -227,174 +104,87 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
227
104
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
228
105
|
const primeiroResultadoTipado = primeiroResultado;
|
|
229
106
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
230
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(
|
|
231
|
-
//
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
expect(
|
|
107
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
108
|
+
// Resolvedor
|
|
109
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
110
|
+
// O Resolvedor deve resolver de acordo e traduzir anotação para annotation e conter o valor string
|
|
111
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
112
|
+
expect(resultadoResolvedor).toContain(`annotation('${valoresAceitos[index]}');`);
|
|
235
113
|
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
it('Atribuindo Método "anotação()" com valor string - caso de falha', () => {
|
|
117
|
+
const valoresAceitos = ['--valorPersonalizado', 'herdar', 'inicial'];
|
|
118
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
119
|
+
// Lexador
|
|
120
|
+
const resultadoLexador = lexador.mapear([
|
|
121
|
+
"lmht {",
|
|
122
|
+
`variacao-fonte-alternativa: anotação(${valoresAceitos[index]});`,
|
|
123
|
+
"}"
|
|
124
|
+
]);
|
|
125
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
126
|
+
expect(() => {
|
|
127
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
128
|
+
}).toThrow(`Modificador ou variável 'variação-fonte-alternativa' com valor personalizado ${valoresAceitos[index]} inválido. O valor deve seguir as regras de sintaxe de uma identificação personalizada (<custom-indent>).`);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
it('Atribuindo Método "borrar()"', () => {
|
|
132
|
+
for (let index = 0; index < metodos_1.MetodoBorrar.length; index += 1) {
|
|
133
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
134
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
239
135
|
// Lexador
|
|
240
136
|
const resultadoLexador = lexador.mapear([
|
|
241
137
|
"lmht {",
|
|
242
|
-
`${metodos_1.
|
|
138
|
+
`${metodos_1.MetodoBorrar[index]}: borrar(${valoresAceitos[valIndex]});`,
|
|
243
139
|
"}"
|
|
244
140
|
]);
|
|
245
|
-
// O Lexador deve
|
|
246
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
141
|
+
// O Lexador não deve encontrar erros
|
|
247
142
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
248
143
|
// O valor recebido deve ser mapeado como METODO
|
|
249
144
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
250
145
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
251
146
|
]));
|
|
252
|
-
// O Lexador
|
|
253
|
-
|
|
254
|
-
expect
|
|
255
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
256
|
-
]));
|
|
257
|
-
// Avaliador Sintático
|
|
258
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
259
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
260
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
261
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
262
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
263
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
264
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
265
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEncaixarConteudo[index]]);
|
|
266
|
-
// // // Tradutor
|
|
267
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
268
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEncaixarConteudo[index]]);
|
|
269
|
-
expect(resultadoTradutor).toContain('fit-content(200px)');
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
it('Atribuindo Método "escala-cinza()"', () => {
|
|
273
|
-
for (let index = 0; index < metodos_1.MetodoEscalaCinza.length; index += 1) {
|
|
274
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
275
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
276
|
-
// Lexador
|
|
277
|
-
const resultadoLexador = lexador.mapear([
|
|
278
|
-
"lmht {",
|
|
279
|
-
`${metodos_1.MetodoEscalaCinza[index]}: escala-cinza(${valoresAceitos[valIndex]});`,
|
|
280
|
-
"}"
|
|
281
|
-
]);
|
|
282
|
-
// O Lexador não deve encontrar erros
|
|
283
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
284
|
-
// O valor recebido deve ser mapeado como METODO
|
|
147
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
148
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
149
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
285
150
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
286
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
151
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
152
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
287
153
|
]));
|
|
288
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
289
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
290
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
291
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
292
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
293
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
294
|
-
]));
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
298
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
299
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
300
|
-
]));
|
|
301
|
-
}
|
|
302
|
-
// Avaliador Sintático
|
|
303
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
304
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
305
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
306
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
307
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
308
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
309
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
310
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEscalaCinza[index]]);
|
|
311
|
-
// Tradutor
|
|
312
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
313
|
-
// O Tradutor deve serializar de acordo e traduzir escala-cinza para grayscale
|
|
314
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEscalaCinza[index]]);
|
|
315
|
-
expect(resultadoTradutor).toContain(`grayscale(${valoresAceitos[valIndex]});`);
|
|
316
154
|
}
|
|
317
|
-
|
|
318
|
-
});
|
|
319
|
-
it('Atribuindo Método "escalamento()"', () => {
|
|
320
|
-
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
321
|
-
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
322
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
323
|
-
// Lexador
|
|
324
|
-
const resultadoLexador = lexador.mapear([
|
|
325
|
-
"lmht {",
|
|
326
|
-
`${metodos_1.MetodosEscalamento[index]}: escalamento(${valoresAceitos[valIndex]});`,
|
|
327
|
-
"}"
|
|
328
|
-
]);
|
|
329
|
-
// O Lexador não deve encontrar erros
|
|
330
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
331
|
-
// O valor recebido deve ser mapeado como METODO
|
|
332
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
333
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
334
|
-
]));
|
|
335
|
-
// O Lexador deve montar um objeto de comprimento 10
|
|
155
|
+
else {
|
|
336
156
|
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
337
157
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
338
158
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
339
159
|
]));
|
|
340
|
-
// Avaliador Sintático
|
|
341
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
342
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
343
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
344
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
345
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
346
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
347
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
348
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
349
|
-
// Tradutor
|
|
350
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
351
|
-
// O Tradutor deve serializar de acordo e traduzir escalamento para scale
|
|
352
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
353
|
-
expect(resultadoTradutor).toContain(`scale(${valoresAceitos[valIndex]});`);
|
|
354
160
|
}
|
|
355
|
-
}
|
|
356
|
-
});
|
|
357
|
-
it('Atribuindo Método "escalamento()" com múltiplos valores', () => {
|
|
358
|
-
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
359
|
-
// Lexador
|
|
360
|
-
const resultadoLexador = lexador.mapear([
|
|
361
|
-
"lmht {",
|
|
362
|
-
`${metodos_1.MetodosEscalamento[index]}: escalamento(1.3, 0.4);`,
|
|
363
|
-
"}"
|
|
364
|
-
]);
|
|
365
|
-
// O Lexador não deve encontrar erros
|
|
366
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
367
|
-
// O valor recebido deve ser mapeado como METODO
|
|
368
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
369
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
370
|
-
]));
|
|
371
|
-
// O Lexador deve montar um objeto de comprimento 12
|
|
372
|
-
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
373
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
374
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
375
|
-
]));
|
|
376
161
|
// Avaliador Sintático
|
|
377
162
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
378
163
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
164
|
+
// TODO @Vitor: Alterei um caso para você.
|
|
165
|
+
// Os demais podem seguir a mesma lógica.
|
|
379
166
|
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
380
167
|
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
381
168
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
382
169
|
const primeiroResultadoTipado = primeiroResultado;
|
|
383
170
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
384
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
385
|
-
//
|
|
386
|
-
const
|
|
387
|
-
// O
|
|
388
|
-
expect(
|
|
389
|
-
expect(
|
|
171
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBorrar[index]]);
|
|
172
|
+
// Resolvedor
|
|
173
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
174
|
+
// O Resolvedor deve resolver de acordo e traduzir borrar para blur
|
|
175
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBorrar[index]]);
|
|
176
|
+
expect(resultadoResolvedor).toContain(`blur(${valoresAceitos[valIndex]});`);
|
|
390
177
|
}
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
it('Atribuindo Método "brilho()"', () => {
|
|
181
|
+
for (let index = 0; index < metodos_1.MetodoBrilho.length; index += 1) {
|
|
182
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
183
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
394
184
|
// Lexador
|
|
395
185
|
const resultadoLexador = lexador.mapear([
|
|
396
186
|
"lmht {",
|
|
397
|
-
`${metodos_1.
|
|
187
|
+
`${metodos_1.MetodoBrilho[index]}: brilho(${valoresAceitos[valIndex]});`,
|
|
398
188
|
"}"
|
|
399
189
|
]);
|
|
400
190
|
// O Lexador não deve encontrar erros
|
|
@@ -403,11 +193,20 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
403
193
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
404
194
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
405
195
|
]));
|
|
406
|
-
// O Lexador deve montar um objeto de comprimento
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
expect.
|
|
410
|
-
|
|
196
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
197
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
198
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
199
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
200
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
201
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
202
|
+
]));
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
206
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
207
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
208
|
+
]));
|
|
209
|
+
}
|
|
411
210
|
// Avaliador Sintático
|
|
412
211
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
413
212
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -416,148 +215,193 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
416
215
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
417
216
|
const primeiroResultadoTipado = primeiroResultado;
|
|
418
217
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
419
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
420
|
-
//
|
|
421
|
-
const
|
|
422
|
-
// O
|
|
423
|
-
expect(
|
|
424
|
-
expect(
|
|
425
|
-
}
|
|
426
|
-
});
|
|
427
|
-
it('Atribuindo Método "escalamento-eixo-z()"', () => {
|
|
428
|
-
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
429
|
-
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
430
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
431
|
-
// Lexador
|
|
432
|
-
const resultadoLexador = lexador.mapear([
|
|
433
|
-
"lmht {",
|
|
434
|
-
`${metodos_1.MetodosEscalamento[index]}: escalamento-eixo-z(${valoresAceitos[valIndex]});`,
|
|
435
|
-
"}"
|
|
436
|
-
]);
|
|
437
|
-
// O Lexador não deve encontrar erros
|
|
438
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
439
|
-
// O valor recebido deve ser mapeado como METODO
|
|
440
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
441
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
442
|
-
]));
|
|
443
|
-
// O Lexador deve montar um objeto de comprimento 10
|
|
444
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
445
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
446
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
447
|
-
]));
|
|
448
|
-
// Avaliador Sintático
|
|
449
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
450
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
451
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
452
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
453
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
454
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
455
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
456
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
457
|
-
// Tradutor
|
|
458
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
459
|
-
// O Tradutor deve serializar de acordo e traduzir escalamento-eixo-z para scaleZ
|
|
460
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
461
|
-
expect(resultadoTradutor).toContain(`scaleZ(${valoresAceitos[valIndex]});`);
|
|
462
|
-
}
|
|
218
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBrilho[index]]);
|
|
219
|
+
// Resolvedor
|
|
220
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
221
|
+
// O Resolvedor deve resolver de acordo e traduzir brilho para brightness
|
|
222
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoBrilho[index]]);
|
|
223
|
+
expect(resultadoResolvedor).toContain(`brightness(${valoresAceitos[valIndex]});`);
|
|
463
224
|
}
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
it('Atribuindo Método "calcular()"', () => {
|
|
228
|
+
for (let index = 0; index < metodos_1.MetodoCalcular.length; index += 1) {
|
|
229
|
+
// Lexador
|
|
230
|
+
const resultadoLexador = lexador.mapear([
|
|
231
|
+
"lmht {",
|
|
232
|
+
`${metodos_1.MetodoCalcular[index]}: calcular(100px - 80px);`,
|
|
233
|
+
"}"
|
|
234
|
+
]);
|
|
235
|
+
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
236
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
237
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
238
|
+
// O valor recebido deve ser mapeado como METODO
|
|
239
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
240
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
241
|
+
]));
|
|
242
|
+
// O Lexador também deve encontrar números e quantificadores no mapeamento
|
|
243
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
244
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
245
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
246
|
+
]));
|
|
247
|
+
// Avaliador Sintático
|
|
248
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
249
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
250
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
251
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
252
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
253
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
254
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
255
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoCalcular[index]]);
|
|
256
|
+
// Resolvedor
|
|
257
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
258
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoCalcular[index]]);
|
|
259
|
+
expect(resultadoResolvedor).toContain('calc(100px - 80px);');
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
it('Atribuindo Método "conjunto-estilos()" - caso de sucesso', () => {
|
|
263
|
+
const valoresAceitos = ['1', '1, 2', '6, 12, 18'];
|
|
264
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
265
|
+
// Lexador
|
|
266
|
+
const resultadoLexador = lexador.mapear([
|
|
267
|
+
"lmht {",
|
|
268
|
+
`variacao-fonte-alternativa: conjunto-estilos(${valoresAceitos[index]});`,
|
|
269
|
+
"}"
|
|
270
|
+
]);
|
|
271
|
+
// O Lexador não deve encontrar erros
|
|
272
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
273
|
+
// O valor recebido deve ser mapeado como METODO
|
|
274
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
275
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
276
|
+
]));
|
|
277
|
+
// O Lexador deve montar um objeto contendo valores numéricos
|
|
278
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
279
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
280
|
+
]));
|
|
281
|
+
// Avaliador Sintático
|
|
282
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
283
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
284
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
285
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
286
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
287
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
288
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
289
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
290
|
+
// Resolvedor
|
|
291
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
292
|
+
// O Resolvedor deve resolver de acordo e traduzir escalamento-vertical para scaleY
|
|
293
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
294
|
+
expect(resultadoResolvedor).toContain(`styleset(${valoresAceitos[index]});`);
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
it('Atribuindo Método "conjunto-estilos()" - caso de falha', () => {
|
|
298
|
+
const valoresAceitos = ['0', '1, 21, 12', '3, 13, 30'];
|
|
299
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
300
|
+
// Lexador
|
|
301
|
+
const resultadoLexador = lexador.mapear([
|
|
302
|
+
"lmht {",
|
|
303
|
+
`variacao-fonte-alternativa: conjunto-estilos(${valoresAceitos[index]});`,
|
|
304
|
+
"}"
|
|
305
|
+
]);
|
|
306
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
307
|
+
expect(() => {
|
|
308
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
309
|
+
}).toThrow('Os valores da função conjunto-estilos() devem estar entre 1 e 20');
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
it('Atribuindo Método "contador()"', () => {
|
|
313
|
+
const nomeSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'contador', 'any', 1, 2, 3);
|
|
314
|
+
const estiloSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'romano-maiusculo', 'any', 1, 2, 3);
|
|
315
|
+
const instanciaContador = new contador_1.Contador(nomeSimbolo, estiloSimbolo);
|
|
316
|
+
const estilosAceitos = [];
|
|
317
|
+
Object.keys(instanciaContador.estilosAceitos).forEach((valor) => estilosAceitos.push(valor));
|
|
318
|
+
const estilosTraduzidos = [];
|
|
319
|
+
Object.values(instanciaContador.estilosAceitos).forEach((valor) => estilosTraduzidos.push(valor));
|
|
320
|
+
for (let index = 0; index < estilosAceitos.length; index += 1) {
|
|
321
|
+
// Lexador
|
|
322
|
+
const resultadoLexador = lexador.mapear([
|
|
323
|
+
"lmht {",
|
|
324
|
+
`conteúdo: contador(contador1, ${estilosAceitos[index]});`,
|
|
325
|
+
"}"
|
|
326
|
+
]);
|
|
327
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar erros
|
|
328
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
329
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
330
|
+
// O Lexador deve mapear METODO e IDENTIFICADOR no processo
|
|
331
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
332
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
333
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
334
|
+
]));
|
|
335
|
+
// Avaliador Sintático
|
|
336
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
337
|
+
// O Avaliador deve montar um objeto com o devido nome CSS
|
|
338
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
339
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
340
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
341
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
342
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
343
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('content');
|
|
344
|
+
// Resolvedor
|
|
345
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
346
|
+
expect(resultadoResolvedor).toContain('content');
|
|
347
|
+
expect(resultadoResolvedor).toContain(`counter(contador1, ${estilosTraduzidos[index]});`);
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
it('Caso de Falha - Método "contador()" com valor de estilo inválido', () => {
|
|
351
|
+
const nomeSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'contador', 'any', 1, 2, 3);
|
|
352
|
+
const estiloSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'romano-maiusculo', 'any', 1, 2, 3);
|
|
353
|
+
const instanciaContador = new contador_1.Contador(nomeSimbolo, estiloSimbolo);
|
|
354
|
+
const estilosAceitos = [];
|
|
355
|
+
Object.keys(instanciaContador.estilosAceitos).forEach((valor) => estilosAceitos.push(valor));
|
|
356
|
+
for (let index = 0; index < estilosAceitos.length; index += 1) {
|
|
357
|
+
const estiloErroDigitacao = estilosAceitos[index].replace(/./, "x");
|
|
358
|
+
// Lexador
|
|
359
|
+
const resultadoLexador = lexador.mapear([
|
|
360
|
+
"lmht {",
|
|
361
|
+
`conteúdo: contador(contador1, ${estiloErroDigitacao});`,
|
|
362
|
+
"}"
|
|
363
|
+
]);
|
|
364
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar erros
|
|
365
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
366
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
367
|
+
// O Avaliador Sintático também deve retornar o seu objeto sem retornar erros
|
|
368
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
369
|
+
// O Resolvedor deve retornar o erro de estilo inválido uma vez que não consegue traduzir o valor
|
|
370
|
+
expect(() => {
|
|
371
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
372
|
+
}).toThrow(`Valor de estilo ${estiloErroDigitacao} inválido para a função contador().`);
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
it('Atribuindo Método "contraste()"', () => {
|
|
376
|
+
for (let index = 0; index < metodos_1.MetodoContraste.length; index += 1) {
|
|
377
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
378
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
379
|
+
// Lexador
|
|
380
|
+
const resultadoLexador = lexador.mapear([
|
|
381
|
+
"lmht {",
|
|
382
|
+
`${metodos_1.MetodoContraste[index]}: contraste(${valoresAceitos[valIndex]});`,
|
|
383
|
+
"}"
|
|
384
|
+
]);
|
|
385
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
386
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
387
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
483
388
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
484
389
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
390
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
485
391
|
]));
|
|
486
|
-
// Avaliador Sintático
|
|
487
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
488
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
489
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
490
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
491
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
492
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
493
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
494
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
495
|
-
// Tradutor
|
|
496
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
497
|
-
// O Tradutor deve serializar de acordo e traduzir escalamento-horizontal para scaleX
|
|
498
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
499
|
-
expect(resultadoTradutor).toContain(`scaleX(${valoresAceitos[valIndex]});`);
|
|
500
392
|
}
|
|
501
|
-
|
|
502
|
-
});
|
|
503
|
-
it('Atribuindo Método "escalamento-vertical()"', () => {
|
|
504
|
-
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
505
|
-
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
506
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
507
|
-
// Lexador
|
|
508
|
-
const resultadoLexador = lexador.mapear([
|
|
509
|
-
"lmht {",
|
|
510
|
-
`${metodos_1.MetodosEscalamento[index]}: escalamento-vertical(${valoresAceitos[valIndex]});`,
|
|
511
|
-
"}"
|
|
512
|
-
]);
|
|
513
|
-
// O Lexador não deve encontrar erros
|
|
514
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
515
|
-
// O valor recebido deve ser mapeado como METODO
|
|
516
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
517
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
518
|
-
]));
|
|
519
|
-
// O Lexador deve montar um objeto de comprimento 10
|
|
393
|
+
else {
|
|
520
394
|
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
521
395
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
522
396
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
523
397
|
]));
|
|
524
|
-
// Avaliador Sintático
|
|
525
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
526
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
527
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
528
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
529
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
530
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
531
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
532
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
533
|
-
// Tradutor
|
|
534
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
535
|
-
// O Tradutor deve serializar de acordo e traduzir escalamento-vertical para scaleY
|
|
536
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
537
|
-
expect(resultadoTradutor).toContain(`scaleY(${valoresAceitos[valIndex]});`);
|
|
538
398
|
}
|
|
539
|
-
|
|
540
|
-
});
|
|
541
|
-
it('Atribuindo Método "gradiente-linear()" com valor de ângulo deg', () => {
|
|
542
|
-
for (let index = 0; index < metodos_1.MetodoGradienteLinear.length; index += 1) {
|
|
543
|
-
// Lexador
|
|
544
|
-
const resultadoLexador = lexador.mapear([
|
|
545
|
-
"lmht {",
|
|
546
|
-
`${metodos_1.MetodoGradienteLinear[index]}: gradiente-linear(90deg, verde, amarelo);`,
|
|
547
|
-
"}"
|
|
548
|
-
]);
|
|
549
|
-
// O Lexador deve montar um objeto de comprimento 15 sem retornar nenhum erro
|
|
550
|
-
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
399
|
+
// O Lexador não deve encontrar erros
|
|
551
400
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
552
401
|
// O valor recebido deve ser mapeado como METODO
|
|
553
402
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
554
403
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
555
404
|
]));
|
|
556
|
-
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
557
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
558
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
559
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
560
|
-
]));
|
|
561
405
|
// Avaliador Sintático
|
|
562
406
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
563
407
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -566,33 +410,113 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
566
410
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
567
411
|
const primeiroResultadoTipado = primeiroResultado;
|
|
568
412
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
569
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
570
|
-
//
|
|
571
|
-
const
|
|
572
|
-
expect(
|
|
573
|
-
expect(
|
|
413
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoContraste[index]]);
|
|
414
|
+
// Resolvedor
|
|
415
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
416
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoContraste[index]]);
|
|
417
|
+
expect(resultadoResolvedor).toContain(`contrast(${valoresAceitos[valIndex]});`);
|
|
574
418
|
}
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
it('Atribuindo Método "curva-cúbica" (cubic-bezier)', () => {
|
|
422
|
+
for (let index = 0; index < metodos_1.MetodoCurvaCubica.length; index += 1) {
|
|
423
|
+
// Lexador
|
|
424
|
+
const resultadoLexador = lexador.mapear([
|
|
425
|
+
"lmht {",
|
|
426
|
+
`${metodos_1.MetodoCurvaCubica[index]}: curva-cúbica(0.42, 0.0, 1.0, 1.0);`,
|
|
427
|
+
"}"
|
|
428
|
+
]);
|
|
429
|
+
// O Lexador deve montar um objeto de comprimento 16 sem retornar nenhum erro
|
|
430
|
+
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
431
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
432
|
+
// O valor recebido deve ser mapeado como METODO
|
|
433
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
434
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
435
|
+
]));
|
|
436
|
+
// O Lexador também deve encontrar números no mapeamento
|
|
437
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
438
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
439
|
+
]));
|
|
440
|
+
// Avaliador Sintático
|
|
441
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
442
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
443
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
444
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
445
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
446
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
447
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
448
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoCurvaCubica[index]]);
|
|
449
|
+
// // // // Resolvedor
|
|
450
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
451
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoCurvaCubica[index]]);
|
|
452
|
+
expect(resultadoResolvedor).toContain('cubic-bezier(0.42, 0, 1, 1);');
|
|
453
|
+
}
|
|
454
|
+
});
|
|
455
|
+
it('Atribuindo Método "encaixar-conteúdo" (fit-content)', () => {
|
|
456
|
+
for (let index = 0; index < metodos_1.MetodoEncaixarConteudo.length; index += 1) {
|
|
457
|
+
// Lexador
|
|
458
|
+
const resultadoLexador = lexador.mapear([
|
|
459
|
+
"lmht {",
|
|
460
|
+
`${metodos_1.MetodoEncaixarConteudo[index]}: encaixar-conteúdo(200px);`,
|
|
461
|
+
"}"
|
|
462
|
+
]);
|
|
463
|
+
// O Lexador deve montar um objeto de comprimento 11 sem retornar nenhum erro
|
|
464
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
465
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
466
|
+
// O valor recebido deve ser mapeado como METODO
|
|
467
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
468
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
469
|
+
]));
|
|
470
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
471
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
472
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
473
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
474
|
+
]));
|
|
475
|
+
// Avaliador Sintático
|
|
476
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
477
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
478
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
479
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
480
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
481
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
482
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
483
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEncaixarConteudo[index]]);
|
|
484
|
+
// // // Resolvedor
|
|
485
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
486
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEncaixarConteudo[index]]);
|
|
487
|
+
expect(resultadoResolvedor).toContain('fit-content(200px)');
|
|
488
|
+
}
|
|
489
|
+
});
|
|
490
|
+
it('Atribuindo Método "escala-cinza()"', () => {
|
|
491
|
+
for (let index = 0; index < metodos_1.MetodoEscalaCinza.length; index += 1) {
|
|
492
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
493
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
578
494
|
// Lexador
|
|
579
495
|
const resultadoLexador = lexador.mapear([
|
|
580
496
|
"lmht {",
|
|
581
|
-
`${metodos_1.
|
|
497
|
+
`${metodos_1.MetodoEscalaCinza[index]}: escala-cinza(${valoresAceitos[valIndex]});`,
|
|
582
498
|
"}"
|
|
583
499
|
]);
|
|
584
|
-
// O Lexador deve
|
|
585
|
-
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
500
|
+
// O Lexador não deve encontrar erros
|
|
586
501
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
587
502
|
// O valor recebido deve ser mapeado como METODO
|
|
588
503
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
589
504
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
590
505
|
]));
|
|
591
|
-
// O Lexador
|
|
592
|
-
|
|
593
|
-
expect
|
|
594
|
-
expect.
|
|
595
|
-
|
|
506
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
507
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
508
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
509
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
510
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
511
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
512
|
+
]));
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
516
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
517
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
518
|
+
]));
|
|
519
|
+
}
|
|
596
520
|
// Avaliador Sintático
|
|
597
521
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
598
522
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -601,123 +525,23 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
601
525
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
602
526
|
const primeiroResultadoTipado = primeiroResultado;
|
|
603
527
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
604
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
605
|
-
//
|
|
606
|
-
const
|
|
607
|
-
|
|
608
|
-
expect(
|
|
609
|
-
|
|
610
|
-
});
|
|
611
|
-
it('Atribuindo Método "gradiente-linear()" com valor de posição', () => {
|
|
612
|
-
for (let index = 0; index < metodos_1.MetodoGradienteLinear.length; index += 1) {
|
|
613
|
-
const posicoes = ['superior', 'inferior', 'direita', 'esquerda'];
|
|
614
|
-
for (let posIndex = 0; posIndex < posicoes.length; posIndex += 1) {
|
|
615
|
-
// Lexador
|
|
616
|
-
const resultadoLexador = lexador.mapear([
|
|
617
|
-
"lmht {",
|
|
618
|
-
`${metodos_1.MetodoGradienteLinear[index]}: gradiente-linear(${posicoes[posIndex]}, azul, vermelho);`,
|
|
619
|
-
"}"
|
|
620
|
-
]);
|
|
621
|
-
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
622
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
623
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
624
|
-
// O valor recebido deve ser mapeado como METODO
|
|
625
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
626
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
627
|
-
]));
|
|
628
|
-
// O Lexador também deve encontrar um qualitativo no mapeamento, referente à posição
|
|
629
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
630
|
-
expect.objectContaining({ tipo: foles_1.default.QUALITATIVO }),
|
|
631
|
-
]));
|
|
632
|
-
// Avaliador Sintático
|
|
633
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
634
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
635
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
636
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
637
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
638
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
639
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
640
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
641
|
-
// Tradutor
|
|
642
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
643
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
644
|
-
switch (posicoes[posIndex]) {
|
|
645
|
-
case 'superior':
|
|
646
|
-
expect(resultadoTradutor).toContain('linear-gradient(0deg, blue, red);');
|
|
647
|
-
break;
|
|
648
|
-
case 'direita':
|
|
649
|
-
expect(resultadoTradutor).toContain('linear-gradient(90deg, blue, red);');
|
|
650
|
-
break;
|
|
651
|
-
case 'inferior':
|
|
652
|
-
expect(resultadoTradutor).toContain('linear-gradient(180deg, blue, red);');
|
|
653
|
-
break;
|
|
654
|
-
case 'esquerda':
|
|
655
|
-
expect(resultadoTradutor).toContain('linear-gradient(270deg, blue, red);');
|
|
656
|
-
break;
|
|
657
|
-
default:
|
|
658
|
-
break;
|
|
659
|
-
}
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
});
|
|
663
|
-
it('Atribuindo Método "inclinar()"', () => {
|
|
664
|
-
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
665
|
-
const valoresAceitos = ['90graus', '18deg', '3.142rad', '0', '1'];
|
|
666
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
667
|
-
// Lexador
|
|
668
|
-
const resultadoLexador = lexador.mapear([
|
|
669
|
-
"lmht {",
|
|
670
|
-
`${metodos_1.MetodosInclinar[index]}: inclinar(${valoresAceitos[valIndex]});`,
|
|
671
|
-
"}"
|
|
672
|
-
]);
|
|
673
|
-
// O Lexador não deve encontrar erros
|
|
674
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
675
|
-
// O valor recebido deve ser mapeado como METODO
|
|
676
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
677
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
678
|
-
]));
|
|
679
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
680
|
-
if (valIndex <= 2) {
|
|
681
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
682
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
683
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
684
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
685
|
-
]));
|
|
686
|
-
}
|
|
687
|
-
else {
|
|
688
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
689
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
690
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
691
|
-
]));
|
|
692
|
-
}
|
|
693
|
-
// Avaliador Sintático
|
|
694
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
695
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
696
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
697
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
698
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
699
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
700
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
701
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
702
|
-
// Tradutor
|
|
703
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
704
|
-
// O Tradutor deve serializar de acordo e traduzir inclinar para skew
|
|
705
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
706
|
-
if (valIndex !== 0) {
|
|
707
|
-
expect(resultadoTradutor).toContain(`skew(${valoresAceitos[valIndex]});`);
|
|
708
|
-
}
|
|
709
|
-
else {
|
|
710
|
-
expect(resultadoTradutor).toContain(`skew(90deg);`);
|
|
711
|
-
}
|
|
712
|
-
}
|
|
528
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEscalaCinza[index]]);
|
|
529
|
+
// Resolvedor
|
|
530
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
531
|
+
// O Resolvedor deve resolver de acordo e traduzir escala-cinza para grayscale
|
|
532
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoEscalaCinza[index]]);
|
|
533
|
+
expect(resultadoResolvedor).toContain(`grayscale(${valoresAceitos[valIndex]});`);
|
|
713
534
|
}
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
it('Atribuindo Método "escalamento()"', () => {
|
|
538
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
539
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
540
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
717
541
|
// Lexador
|
|
718
542
|
const resultadoLexador = lexador.mapear([
|
|
719
543
|
"lmht {",
|
|
720
|
-
`${metodos_1.
|
|
544
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento(${valoresAceitos[valIndex]});`,
|
|
721
545
|
"}"
|
|
722
546
|
]);
|
|
723
547
|
// O Lexador não deve encontrar erros
|
|
@@ -726,11 +550,10 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
726
550
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
727
551
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
728
552
|
]));
|
|
729
|
-
// O Lexador deve montar um objeto de comprimento
|
|
730
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
553
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
554
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
731
555
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
732
556
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
733
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
734
557
|
]));
|
|
735
558
|
// Avaliador Sintático
|
|
736
559
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
@@ -740,184 +563,105 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
740
563
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
741
564
|
const primeiroResultadoTipado = primeiroResultado;
|
|
742
565
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
743
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
744
|
-
//
|
|
745
|
-
const
|
|
746
|
-
// O
|
|
747
|
-
expect(
|
|
748
|
-
expect(
|
|
749
|
-
}
|
|
750
|
-
});
|
|
751
|
-
it('Atribuindo Método "inclinar-horizontal()"', () => {
|
|
752
|
-
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
753
|
-
const valoresAceitos = ['180graus', '18deg', '3.142rad', '0', '1'];
|
|
754
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
755
|
-
// Lexador
|
|
756
|
-
const resultadoLexador = lexador.mapear([
|
|
757
|
-
"lmht {",
|
|
758
|
-
`${metodos_1.MetodosInclinar[index]}: inclinar-horizontal(${valoresAceitos[valIndex]});`,
|
|
759
|
-
"}"
|
|
760
|
-
]);
|
|
761
|
-
// O Lexador não deve encontrar erros
|
|
762
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
763
|
-
// O valor recebido deve ser mapeado como METODO
|
|
764
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
765
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
766
|
-
]));
|
|
767
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
768
|
-
if (valIndex <= 2) {
|
|
769
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
770
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
771
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
772
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
773
|
-
]));
|
|
774
|
-
}
|
|
775
|
-
else {
|
|
776
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
777
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
778
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
779
|
-
]));
|
|
780
|
-
}
|
|
781
|
-
// Avaliador Sintático
|
|
782
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
783
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
784
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
785
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
786
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
787
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
788
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
789
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
790
|
-
// Tradutor
|
|
791
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
792
|
-
// O Tradutor deve serializar de acordo e traduzir inclinar-horizontal para skewX
|
|
793
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
794
|
-
if (valIndex !== 0) {
|
|
795
|
-
expect(resultadoTradutor).toContain(`skewX(${valoresAceitos[valIndex]});`);
|
|
796
|
-
}
|
|
797
|
-
else {
|
|
798
|
-
expect(resultadoTradutor).toContain(`skewX(180deg);`);
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
});
|
|
803
|
-
it('Atribuindo Método "inclinar-vertical()"', () => {
|
|
804
|
-
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
805
|
-
const valoresAceitos = ['180graus', '18deg', '3.142rad', '0', '1'];
|
|
806
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
807
|
-
// Lexador
|
|
808
|
-
const resultadoLexador = lexador.mapear([
|
|
809
|
-
"lmht {",
|
|
810
|
-
`${metodos_1.MetodosInclinar[index]}: inclinar-vertical(${valoresAceitos[valIndex]});`,
|
|
811
|
-
"}"
|
|
812
|
-
]);
|
|
813
|
-
// O Lexador não deve encontrar erros
|
|
814
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
815
|
-
// O valor recebido deve ser mapeado como METODO
|
|
816
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
817
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
818
|
-
]));
|
|
819
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
820
|
-
if (valIndex <= 2) {
|
|
821
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
822
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
823
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
824
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
825
|
-
]));
|
|
826
|
-
}
|
|
827
|
-
else {
|
|
828
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
829
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
830
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
831
|
-
]));
|
|
832
|
-
}
|
|
833
|
-
// Avaliador Sintático
|
|
834
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
835
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
836
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
837
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
838
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
839
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
840
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
841
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
842
|
-
// Tradutor
|
|
843
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
844
|
-
// O Tradutor deve serializar de acordo e traduzir inclinar-vertical para skewY
|
|
845
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
846
|
-
if (valIndex !== 0) {
|
|
847
|
-
expect(resultadoTradutor).toContain(`skewY(${valoresAceitos[valIndex]});`);
|
|
848
|
-
}
|
|
849
|
-
else {
|
|
850
|
-
expect(resultadoTradutor).toContain(`skewY(180deg);`);
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
});
|
|
855
|
-
it('Atribuindo Método "inverter()"', () => {
|
|
856
|
-
for (let index = 0; index < metodos_1.MetodoInverter.length; index += 1) {
|
|
857
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
858
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
859
|
-
// Lexador
|
|
860
|
-
const resultadoLexador = lexador.mapear([
|
|
861
|
-
"lmht {",
|
|
862
|
-
`${metodos_1.MetodoInverter[index]}: inverter(${valoresAceitos[valIndex]});`,
|
|
863
|
-
"}"
|
|
864
|
-
]);
|
|
865
|
-
// O Lexador não deve encontrar erros
|
|
866
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
867
|
-
// O valor recebido deve ser mapeado como METODO
|
|
868
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
869
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
870
|
-
]));
|
|
871
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
872
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
873
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
874
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
875
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
876
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
877
|
-
]));
|
|
878
|
-
}
|
|
879
|
-
else {
|
|
880
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
881
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
882
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
883
|
-
]));
|
|
884
|
-
}
|
|
885
|
-
// Avaliador Sintático
|
|
886
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
887
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
888
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
889
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
890
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
891
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
892
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
893
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoInverter[index]]);
|
|
894
|
-
// Tradutor
|
|
895
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
896
|
-
// O Tradutor deve serializar de acordo e traduzir inverter para invert
|
|
897
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoInverter[index]]);
|
|
898
|
-
expect(resultadoTradutor).toContain(`invert(${valoresAceitos[valIndex]});`);
|
|
899
|
-
}
|
|
566
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
567
|
+
// Resolvedor
|
|
568
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
569
|
+
// O Resolvedor deve resolver de acordo e traduzir escalamento para scale
|
|
570
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
571
|
+
expect(resultadoResolvedor).toContain(`scale(${valoresAceitos[valIndex]});`);
|
|
900
572
|
}
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
|
|
573
|
+
}
|
|
574
|
+
});
|
|
575
|
+
it('Atribuindo Método "escalamento()" com múltiplos valores', () => {
|
|
576
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
577
|
+
// Lexador
|
|
578
|
+
const resultadoLexador = lexador.mapear([
|
|
579
|
+
"lmht {",
|
|
580
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento(1.3, 0.4);`,
|
|
581
|
+
"}"
|
|
582
|
+
]);
|
|
583
|
+
// O Lexador não deve encontrar erros
|
|
584
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
585
|
+
// O valor recebido deve ser mapeado como METODO
|
|
586
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
587
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
588
|
+
]));
|
|
589
|
+
// O Lexador deve montar um objeto de comprimento 12
|
|
590
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
591
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
592
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
593
|
+
]));
|
|
594
|
+
// Avaliador Sintático
|
|
595
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
596
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
597
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
598
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
599
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
600
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
601
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
602
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
603
|
+
// Resolvedor
|
|
604
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
605
|
+
// O Resolvedor deve resolver de acordo e traduzir escalamento para scale
|
|
606
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
607
|
+
expect(resultadoResolvedor).toContain(`scale(1.3, 0.4);`);
|
|
608
|
+
}
|
|
609
|
+
});
|
|
610
|
+
it('Atribuindo Método "escalamento-3d()"', () => {
|
|
611
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
612
|
+
// Lexador
|
|
613
|
+
const resultadoLexador = lexador.mapear([
|
|
614
|
+
"lmht {",
|
|
615
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-3d(0.5, 1, 1.7);`,
|
|
616
|
+
"}"
|
|
617
|
+
]);
|
|
618
|
+
// O Lexador não deve encontrar erros
|
|
619
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
620
|
+
// O valor recebido deve ser mapeado como METODO
|
|
621
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
622
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
623
|
+
]));
|
|
624
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
625
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
626
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
627
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
628
|
+
]));
|
|
629
|
+
// Avaliador Sintático
|
|
630
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
631
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
632
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
633
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
634
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
635
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
636
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
637
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
638
|
+
// Resolvedor
|
|
639
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
640
|
+
// O Resolvedor deve resolver de acordo e traduzir escalamento-3d para scale3d
|
|
641
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
642
|
+
expect(resultadoResolvedor).toContain(`scale3d(0.5, 1, 1.7);`);
|
|
643
|
+
}
|
|
644
|
+
});
|
|
645
|
+
it('Atribuindo Método "escalamento-eixo-z()"', () => {
|
|
646
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
647
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
648
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
904
649
|
// Lexador
|
|
905
650
|
const resultadoLexador = lexador.mapear([
|
|
906
651
|
"lmht {",
|
|
907
|
-
`${metodos_1.
|
|
652
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-eixo-z(${valoresAceitos[valIndex]});`,
|
|
908
653
|
"}"
|
|
909
654
|
]);
|
|
910
|
-
// O Lexador deve
|
|
911
|
-
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
655
|
+
// O Lexador não deve encontrar erros
|
|
912
656
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
913
657
|
// O valor recebido deve ser mapeado como METODO
|
|
914
658
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
915
659
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
916
660
|
]));
|
|
917
|
-
// O Lexador
|
|
661
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
662
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
918
663
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
919
664
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
920
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
921
665
|
]));
|
|
922
666
|
// Avaliador Sintático
|
|
923
667
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
@@ -927,29 +671,33 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
927
671
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
928
672
|
const primeiroResultadoTipado = primeiroResultado;
|
|
929
673
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
930
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
931
|
-
//
|
|
932
|
-
const
|
|
933
|
-
|
|
934
|
-
expect(
|
|
674
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
675
|
+
// Resolvedor
|
|
676
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
677
|
+
// O Resolvedor deve resolver de acordo e traduzir escalamento-eixo-z para scaleZ
|
|
678
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
679
|
+
expect(resultadoResolvedor).toContain(`scaleZ(${valoresAceitos[valIndex]});`);
|
|
935
680
|
}
|
|
936
|
-
}
|
|
937
|
-
|
|
938
|
-
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
it('Atribuindo Método "escalamento-horizontal()"', () => {
|
|
684
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
685
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
686
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
939
687
|
// Lexador
|
|
940
688
|
const resultadoLexador = lexador.mapear([
|
|
941
689
|
"lmht {",
|
|
942
|
-
`${metodos_1.
|
|
690
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-horizontal(${valoresAceitos[valIndex]});`,
|
|
943
691
|
"}"
|
|
944
692
|
]);
|
|
945
|
-
// O Lexador deve
|
|
946
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
693
|
+
// O Lexador não deve encontrar erros
|
|
947
694
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
948
695
|
// O valor recebido deve ser mapeado como METODO
|
|
949
696
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
950
697
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
951
698
|
]));
|
|
952
|
-
// O Lexador
|
|
699
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
700
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
953
701
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
954
702
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
955
703
|
]));
|
|
@@ -961,32 +709,35 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
961
709
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
962
710
|
const primeiroResultadoTipado = primeiroResultado;
|
|
963
711
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
964
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
965
|
-
//
|
|
966
|
-
const
|
|
967
|
-
|
|
968
|
-
expect(
|
|
712
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
713
|
+
// Resolvedor
|
|
714
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
715
|
+
// O Resolvedor deve resolver de acordo e traduzir escalamento-horizontal para scaleX
|
|
716
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
717
|
+
expect(resultadoResolvedor).toContain(`scaleX(${valoresAceitos[valIndex]});`);
|
|
969
718
|
}
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
|
|
719
|
+
}
|
|
720
|
+
});
|
|
721
|
+
it('Atribuindo Método "escalamento-vertical()"', () => {
|
|
722
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
723
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
724
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
973
725
|
// Lexador
|
|
974
726
|
const resultadoLexador = lexador.mapear([
|
|
975
727
|
"lmht {",
|
|
976
|
-
`${metodos_1.
|
|
728
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-vertical(${valoresAceitos[valIndex]});`,
|
|
977
729
|
"}"
|
|
978
730
|
]);
|
|
979
|
-
// O Lexador deve
|
|
980
|
-
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
731
|
+
// O Lexador não deve encontrar erros
|
|
981
732
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
982
733
|
// O valor recebido deve ser mapeado como METODO
|
|
983
734
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
984
735
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
985
736
|
]));
|
|
986
|
-
// O Lexador
|
|
737
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
738
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
987
739
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
988
740
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
989
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
990
741
|
]));
|
|
991
742
|
// Avaliador Sintático
|
|
992
743
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
@@ -996,78 +747,206 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
996
747
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
997
748
|
const primeiroResultadoTipado = primeiroResultado;
|
|
998
749
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
999
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1000
|
-
//
|
|
1001
|
-
const
|
|
1002
|
-
|
|
1003
|
-
expect(
|
|
1004
|
-
|
|
1005
|
-
});
|
|
1006
|
-
it('Atribuindo Método "opacar()"', () => {
|
|
1007
|
-
for (let index = 0; index < metodos_1.MetodoOpacar.length; index += 1) {
|
|
1008
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1009
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1010
|
-
// Lexador
|
|
1011
|
-
const resultadoLexador = lexador.mapear([
|
|
1012
|
-
"lmht {",
|
|
1013
|
-
`${metodos_1.MetodoOpacar[index]}: opacar(${valoresAceitos[valIndex]});`,
|
|
1014
|
-
"}"
|
|
1015
|
-
]);
|
|
1016
|
-
// O Lexador não deve encontrar erros
|
|
1017
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1018
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1019
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1020
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1021
|
-
]));
|
|
1022
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1023
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1024
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1025
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1026
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1027
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1028
|
-
]));
|
|
1029
|
-
}
|
|
1030
|
-
else {
|
|
1031
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1032
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1033
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1034
|
-
]));
|
|
1035
|
-
}
|
|
1036
|
-
// Avaliador Sintático
|
|
1037
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1038
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1039
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1040
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1041
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1042
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1043
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1044
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoOpacar[index]]);
|
|
1045
|
-
// Tradutor
|
|
1046
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1047
|
-
// O Tradutor deve serializar de acordo e traduzir opacar para opacity
|
|
1048
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoOpacar[index]]);
|
|
1049
|
-
expect(resultadoTradutor).toContain(`opacity(${valoresAceitos[valIndex]});`);
|
|
1050
|
-
}
|
|
750
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
751
|
+
// Resolvedor
|
|
752
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
753
|
+
// O Resolvedor deve resolver de acordo e traduzir escalamento-vertical para scaleY
|
|
754
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
755
|
+
expect(resultadoResolvedor).toContain(`scaleY(${valoresAceitos[valIndex]});`);
|
|
1051
756
|
}
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
|
|
757
|
+
}
|
|
758
|
+
});
|
|
759
|
+
it('Atribuindo Método "espirrar()" - caso de sucesso', () => {
|
|
760
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
761
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
762
|
+
// Lexador
|
|
763
|
+
const resultadoLexador = lexador.mapear([
|
|
764
|
+
"lmht {",
|
|
765
|
+
`variacao-fonte-alternativa: espirrar(${valoresAceitos[index]});`,
|
|
766
|
+
"}"
|
|
767
|
+
]);
|
|
768
|
+
// O Lexador não deve encontrar erros
|
|
769
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
770
|
+
// O valor recebido deve ser mapeado como METODO
|
|
771
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
772
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
773
|
+
]));
|
|
774
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
775
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
776
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
777
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
778
|
+
]));
|
|
779
|
+
// Avaliador Sintático
|
|
780
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
781
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
782
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
783
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
784
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
785
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
786
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
787
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
788
|
+
// Resolvedor
|
|
789
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
790
|
+
// O Resolvedor deve resolver de acordo e traduzir espirrar para swash
|
|
791
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
792
|
+
expect(resultadoResolvedor).toContain(`swash(${valoresAceitos[index]});`);
|
|
793
|
+
}
|
|
794
|
+
});
|
|
795
|
+
it('Atribuindo Método "espirrar()" - caso de falha', () => {
|
|
796
|
+
const valoresAceitos = ['0', '100', '300'];
|
|
797
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
798
|
+
// Lexador
|
|
799
|
+
const resultadoLexador = lexador.mapear([
|
|
800
|
+
"lmht {",
|
|
801
|
+
`variacao-fonte-alternativa: espirrar(${valoresAceitos[index]});`,
|
|
802
|
+
"}"
|
|
803
|
+
]);
|
|
804
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
805
|
+
expect(() => {
|
|
806
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
807
|
+
}).toThrow('O valor da função espirrar() deve estar entre 1 e 99');
|
|
808
|
+
}
|
|
809
|
+
});
|
|
810
|
+
it('Atribuindo Método "estilistico()" - caso de sucesso', () => {
|
|
811
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
812
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
813
|
+
// Lexador
|
|
814
|
+
const resultadoLexador = lexador.mapear([
|
|
815
|
+
"lmht {",
|
|
816
|
+
`variacao-fonte-alternativa: estilistico(${valoresAceitos[index]});`,
|
|
817
|
+
"}"
|
|
818
|
+
]);
|
|
819
|
+
// O Lexador não deve encontrar erros
|
|
820
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
821
|
+
// O valor recebido deve ser mapeado como METODO
|
|
822
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
823
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
824
|
+
]));
|
|
825
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
826
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
827
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
828
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
829
|
+
]));
|
|
830
|
+
// Avaliador Sintático
|
|
831
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
832
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
833
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
834
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
835
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
836
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
837
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
838
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
839
|
+
// Resolvedor
|
|
840
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
841
|
+
// O Resolvedor deve resolver de acordo e traduzir estilístico para stylistic
|
|
842
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
843
|
+
expect(resultadoResolvedor).toContain(`stylistic(${valoresAceitos[index]});`);
|
|
844
|
+
}
|
|
845
|
+
});
|
|
846
|
+
it('Atribuindo Método "estilistico()" - caso de falha', () => {
|
|
847
|
+
const valoresAceitos = ['0', '21', '30'];
|
|
848
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
849
|
+
// Lexador
|
|
850
|
+
const resultadoLexador = lexador.mapear([
|
|
851
|
+
"lmht {",
|
|
852
|
+
`variacao-fonte-alternativa: estilistico(${valoresAceitos[index]});`,
|
|
853
|
+
"}"
|
|
854
|
+
]);
|
|
855
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
856
|
+
expect(() => {
|
|
857
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
858
|
+
}).toThrow('O valor da função estilistico() deve estar entre 1 e 20');
|
|
859
|
+
}
|
|
860
|
+
});
|
|
861
|
+
it('Atribuindo Método "gradiente-linear()" com valor de ângulo deg', () => {
|
|
862
|
+
for (let index = 0; index < metodos_1.MetodoGradienteLinear.length; index += 1) {
|
|
863
|
+
// Lexador
|
|
864
|
+
const resultadoLexador = lexador.mapear([
|
|
865
|
+
"lmht {",
|
|
866
|
+
`${metodos_1.MetodoGradienteLinear[index]}: gradiente-linear(90deg, verde, amarelo);`,
|
|
867
|
+
"}"
|
|
868
|
+
]);
|
|
869
|
+
// O Lexador deve montar um objeto de comprimento 15 sem retornar nenhum erro
|
|
870
|
+
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
871
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
872
|
+
// O valor recebido deve ser mapeado como METODO
|
|
873
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
874
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
875
|
+
]));
|
|
876
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
877
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
878
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
879
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
880
|
+
]));
|
|
881
|
+
// Avaliador Sintático
|
|
882
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
883
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
884
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
885
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
886
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
887
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
888
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
889
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
890
|
+
// Resolvedor
|
|
891
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
892
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
893
|
+
expect(resultadoResolvedor).toContain('linear-gradient(90deg, green, yellow);');
|
|
894
|
+
}
|
|
895
|
+
});
|
|
896
|
+
it('Atribuindo Método "gradiente-linear()" com valor de ângulo graus', () => {
|
|
897
|
+
for (let index = 0; index < metodos_1.MetodoGradienteLinear.length; index += 1) {
|
|
898
|
+
// Lexador
|
|
899
|
+
const resultadoLexador = lexador.mapear([
|
|
900
|
+
"lmht {",
|
|
901
|
+
`${metodos_1.MetodoGradienteLinear[index]}: gradiente-linear(90graus, verde, amarelo);`,
|
|
902
|
+
"}"
|
|
903
|
+
]);
|
|
904
|
+
// O Lexador deve montar um objeto de comprimento 15 sem retornar nenhum erro
|
|
905
|
+
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
906
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
907
|
+
// O valor recebido deve ser mapeado como METODO
|
|
908
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
909
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
910
|
+
]));
|
|
911
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
912
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
913
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
914
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
915
|
+
]));
|
|
916
|
+
// Avaliador Sintático
|
|
917
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
918
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
919
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
920
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
921
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
922
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
923
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
924
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
925
|
+
// Resolvedor
|
|
926
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
927
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
928
|
+
expect(resultadoResolvedor).toContain('linear-gradient(90deg, green, yellow);');
|
|
929
|
+
}
|
|
930
|
+
});
|
|
931
|
+
it('Atribuindo Método "gradiente-linear()" com valor de posição', () => {
|
|
932
|
+
for (let index = 0; index < metodos_1.MetodoGradienteLinear.length; index += 1) {
|
|
933
|
+
const posicoes = ['superior', 'inferior', 'direita', 'esquerda'];
|
|
934
|
+
for (let posIndex = 0; posIndex < posicoes.length; posIndex += 1) {
|
|
1055
935
|
// Lexador
|
|
1056
936
|
const resultadoLexador = lexador.mapear([
|
|
1057
937
|
"lmht {",
|
|
1058
|
-
`${metodos_1.
|
|
938
|
+
`${metodos_1.MetodoGradienteLinear[index]}: gradiente-linear(${posicoes[posIndex]}, azul, vermelho);`,
|
|
1059
939
|
"}"
|
|
1060
940
|
]);
|
|
1061
|
-
// O Lexador deve montar um objeto de comprimento
|
|
1062
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
941
|
+
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
942
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1063
943
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1064
944
|
// O valor recebido deve ser mapeado como METODO
|
|
1065
945
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1066
946
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1067
947
|
]));
|
|
1068
|
-
// O Lexador também deve encontrar
|
|
948
|
+
// O Lexador também deve encontrar um qualitativo no mapeamento, referente à posição
|
|
1069
949
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1070
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1071
950
|
expect.objectContaining({ tipo: foles_1.default.QUALITATIVO }),
|
|
1072
951
|
]));
|
|
1073
952
|
// Avaliador Sintático
|
|
@@ -1078,188 +957,125 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
1078
957
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1079
958
|
const primeiroResultadoTipado = primeiroResultado;
|
|
1080
959
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1081
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1082
|
-
//
|
|
1083
|
-
const
|
|
1084
|
-
expect(
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1101
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1102
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1103
|
-
]));
|
|
1104
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1105
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1106
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1107
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1108
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1109
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1110
|
-
]));
|
|
1111
|
-
}
|
|
1112
|
-
else if (valIndex !== 6) {
|
|
1113
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1114
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1115
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1116
|
-
]));
|
|
1117
|
-
}
|
|
1118
|
-
else {
|
|
1119
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1120
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1121
|
-
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
1122
|
-
]));
|
|
1123
|
-
}
|
|
1124
|
-
// Avaliador Sintático
|
|
1125
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1126
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1127
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1128
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1129
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1130
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1131
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1132
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPerspectivar[index]]);
|
|
1133
|
-
// Tradutor
|
|
1134
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1135
|
-
// O Tradutor deve serializar de acordo e traduzir perspectivar para perspective
|
|
1136
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPerspectivar[index]]);
|
|
1137
|
-
expect(resultadoTradutor).toContain(`perspective(${valoresAceitos[valIndex]});`);
|
|
960
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
961
|
+
// Resolvedor
|
|
962
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
963
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoGradienteLinear[index]]);
|
|
964
|
+
switch (posicoes[posIndex]) {
|
|
965
|
+
case 'superior':
|
|
966
|
+
expect(resultadoResolvedor).toContain('linear-gradient(0deg, blue, red);');
|
|
967
|
+
break;
|
|
968
|
+
case 'direita':
|
|
969
|
+
expect(resultadoResolvedor).toContain('linear-gradient(90deg, blue, red);');
|
|
970
|
+
break;
|
|
971
|
+
case 'inferior':
|
|
972
|
+
expect(resultadoResolvedor).toContain('linear-gradient(180deg, blue, red);');
|
|
973
|
+
break;
|
|
974
|
+
case 'esquerda':
|
|
975
|
+
expect(resultadoResolvedor).toContain('linear-gradient(270deg, blue, red);');
|
|
976
|
+
break;
|
|
977
|
+
default:
|
|
978
|
+
break;
|
|
1138
979
|
}
|
|
1139
980
|
}
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
981
|
+
}
|
|
982
|
+
});
|
|
983
|
+
it('Atribuindo Método "inclinar()"', () => {
|
|
984
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
985
|
+
const valoresAceitos = ['90graus', '18deg', '3.142rad', '0', '1'];
|
|
986
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
987
|
+
// Lexador
|
|
988
|
+
const resultadoLexador = lexador.mapear([
|
|
989
|
+
"lmht {",
|
|
990
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar(${valoresAceitos[valIndex]});`,
|
|
991
|
+
"}"
|
|
992
|
+
]);
|
|
993
|
+
// O Lexador não deve encontrar erros
|
|
994
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
995
|
+
// O valor recebido deve ser mapeado como METODO
|
|
996
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
997
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
998
|
+
]));
|
|
999
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1000
|
+
if (valIndex <= 2) {
|
|
1001
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1158
1002
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1159
1003
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1160
1004
|
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1161
1005
|
]));
|
|
1162
|
-
// Avaliador Sintático
|
|
1163
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1164
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1165
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1166
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1167
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1168
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1169
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1170
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1171
|
-
// Tradutor
|
|
1172
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1173
|
-
// O Tradutor deve serializar de acordo e traduzir projetar-sombra para drop-shadow
|
|
1174
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1175
|
-
expect(resultadoTradutor).toContain(`drop-shadow(${comprimentos[posIndex]});`);
|
|
1176
1006
|
}
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
it('Atribuindo Método "projetar-sombra()" com valores de cor e de comprimento', () => {
|
|
1180
|
-
for (let index = 0; index < metodos_1.MetodoProjetarSombra.length; index += 1) {
|
|
1181
|
-
const comprimentos = ['15px 15px vermelho', '15px 15px 15px vermelho', 'vermelho 0.5rem 0.5rem', 'vermelho 0.5rem 0.5rem 1rem'];
|
|
1182
|
-
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
1183
|
-
// Lexador
|
|
1184
|
-
const resultadoLexador = lexador.mapear([
|
|
1185
|
-
"lmht {",
|
|
1186
|
-
`${metodos_1.MetodoProjetarSombra[index]}: projetar-sombra(${comprimentos[posIndex]});`,
|
|
1187
|
-
"}"
|
|
1188
|
-
]);
|
|
1189
|
-
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
1190
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1191
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1192
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1193
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1194
|
-
]));
|
|
1195
|
-
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
1007
|
+
else {
|
|
1008
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1196
1009
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1197
1010
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1198
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1199
1011
|
]));
|
|
1200
|
-
// Avaliador Sintático
|
|
1201
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1202
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1203
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1204
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1205
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1206
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1207
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1208
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1209
|
-
// Tradutor
|
|
1210
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1211
|
-
// O Tradutor deve serializar de acordo e traduzir vermelho para red
|
|
1212
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1213
|
-
expect(resultadoTradutor).toContain('red');
|
|
1214
1012
|
}
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
const
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
expect(
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
]));
|
|
1234
|
-
// O Lexador deve montar um objeto de comprimento 12
|
|
1235
|
-
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
1236
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1237
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1238
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1239
|
-
]));
|
|
1240
|
-
// Avaliador Sintático
|
|
1241
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1242
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1243
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1244
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1245
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1246
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1247
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1248
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1249
|
-
// Tradutor
|
|
1250
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1251
|
-
// O Tradutor deve serializar de acordo e traduzir raio para ray
|
|
1252
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1253
|
-
expect(resultadoTradutor).toContain(`ray(${traducaoValoresAceitos[valIndex]} 200deg);`);
|
|
1013
|
+
// Avaliador Sintático
|
|
1014
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1015
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1016
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1017
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1018
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1019
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1020
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1021
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1022
|
+
// Resolvedor
|
|
1023
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1024
|
+
// O Resolvedor deve resolver de acordo e traduzir inclinar para skew
|
|
1025
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1026
|
+
if (valIndex !== 0) {
|
|
1027
|
+
expect(resultadoResolvedor).toContain(`skew(${valoresAceitos[valIndex]});`);
|
|
1028
|
+
}
|
|
1029
|
+
else {
|
|
1030
|
+
expect(resultadoResolvedor).toContain(`skew(90deg);`);
|
|
1254
1031
|
}
|
|
1255
1032
|
}
|
|
1256
|
-
}
|
|
1257
|
-
|
|
1258
|
-
|
|
1033
|
+
}
|
|
1034
|
+
});
|
|
1035
|
+
it('Atribuindo Método "inclinar() com múltiplos valores"', () => {
|
|
1036
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
1037
|
+
// Lexador
|
|
1038
|
+
const resultadoLexador = lexador.mapear([
|
|
1039
|
+
"lmht {",
|
|
1040
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar(15graus, 15graus);`,
|
|
1041
|
+
"}"
|
|
1042
|
+
]);
|
|
1043
|
+
// O Lexador não deve encontrar erros
|
|
1044
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1045
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1046
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1047
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1048
|
+
]));
|
|
1049
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
1050
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1051
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1052
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1053
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1054
|
+
]));
|
|
1055
|
+
// Avaliador Sintático
|
|
1056
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1057
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1058
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1059
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1060
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1061
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1062
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1063
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1064
|
+
// Resolvedor
|
|
1065
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1066
|
+
// O Resolvedor deve resolver de acordo e traduzir inclinar para skew
|
|
1067
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1068
|
+
expect(resultadoResolvedor).toContain(`skew(15deg, 15deg);`);
|
|
1069
|
+
}
|
|
1070
|
+
});
|
|
1071
|
+
it('Atribuindo Método "inclinar-horizontal()"', () => {
|
|
1072
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
1073
|
+
const valoresAceitos = ['180graus', '18deg', '3.142rad', '0', '1'];
|
|
1074
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1259
1075
|
// Lexador
|
|
1260
1076
|
const resultadoLexador = lexador.mapear([
|
|
1261
1077
|
"lmht {",
|
|
1262
|
-
`${metodos_1.
|
|
1078
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar-horizontal(${valoresAceitos[valIndex]});`,
|
|
1263
1079
|
"}"
|
|
1264
1080
|
]);
|
|
1265
1081
|
// O Lexador não deve encontrar erros
|
|
@@ -1268,12 +1084,20 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
1268
1084
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1269
1085
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1270
1086
|
]));
|
|
1271
|
-
// O Lexador deve montar um objeto de comprimento 11
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
expect.
|
|
1275
|
-
|
|
1276
|
-
|
|
1087
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1088
|
+
if (valIndex <= 2) {
|
|
1089
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1090
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1091
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1092
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1093
|
+
]));
|
|
1094
|
+
}
|
|
1095
|
+
else {
|
|
1096
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1097
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1098
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1099
|
+
]));
|
|
1100
|
+
}
|
|
1277
1101
|
// Avaliador Sintático
|
|
1278
1102
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1279
1103
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -1282,436 +1106,474 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
1282
1106
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1283
1107
|
const primeiroResultadoTipado = primeiroResultado;
|
|
1284
1108
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1285
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1286
|
-
//
|
|
1287
|
-
const
|
|
1288
|
-
// O
|
|
1289
|
-
expect(
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
const valoresAceitos = ['45graus', '45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1296
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1297
|
-
// Lexador
|
|
1298
|
-
const resultadoLexador = lexador.mapear([
|
|
1299
|
-
"lmht {",
|
|
1300
|
-
`${metodos_1.MetodosRotacionar[index]}: rotacionar(${valoresAceitos[valIndex]});`,
|
|
1301
|
-
"}"
|
|
1302
|
-
]);
|
|
1303
|
-
// O Lexador não deve encontrar erros
|
|
1304
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1305
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1306
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1307
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1308
|
-
]));
|
|
1309
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1310
|
-
if (valIndex <= 2) {
|
|
1311
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1312
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1313
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1314
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1315
|
-
]));
|
|
1316
|
-
}
|
|
1317
|
-
else {
|
|
1318
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1319
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1320
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1321
|
-
]));
|
|
1322
|
-
}
|
|
1323
|
-
// Avaliador Sintático
|
|
1324
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1325
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1326
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1327
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1328
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1329
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1330
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1331
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1332
|
-
// Tradutor
|
|
1333
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1334
|
-
// O Tradutor deve serializar de acordo e traduzir rotacionar para rotate
|
|
1335
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1336
|
-
if (valIndex !== 0) {
|
|
1337
|
-
expect(resultadoTradutor).toContain(`rotate(${valoresAceitos[valIndex]});`);
|
|
1338
|
-
}
|
|
1339
|
-
else {
|
|
1340
|
-
expect(resultadoTradutor).toContain(`rotate(45deg);`);
|
|
1341
|
-
}
|
|
1109
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1110
|
+
// Resolvedor
|
|
1111
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1112
|
+
// O Resolvedor deve resolver de acordo e traduzir inclinar-horizontal para skewX
|
|
1113
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1114
|
+
if (valIndex !== 0) {
|
|
1115
|
+
expect(resultadoResolvedor).toContain(`skewX(${valoresAceitos[valIndex]});`);
|
|
1116
|
+
}
|
|
1117
|
+
else {
|
|
1118
|
+
expect(resultadoResolvedor).toContain(`skewX(180deg);`);
|
|
1342
1119
|
}
|
|
1343
1120
|
}
|
|
1344
|
-
}
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1121
|
+
}
|
|
1122
|
+
});
|
|
1123
|
+
it('Atribuindo Método "inclinar-vertical()"', () => {
|
|
1124
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
1125
|
+
const valoresAceitos = ['180graus', '18deg', '3.142rad', '0', '1'];
|
|
1126
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1127
|
+
// Lexador
|
|
1128
|
+
const resultadoLexador = lexador.mapear([
|
|
1129
|
+
"lmht {",
|
|
1130
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar-vertical(${valoresAceitos[valIndex]});`,
|
|
1131
|
+
"}"
|
|
1132
|
+
]);
|
|
1133
|
+
// O Lexador não deve encontrar erros
|
|
1134
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1135
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1136
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1137
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1138
|
+
]));
|
|
1139
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1140
|
+
if (valIndex <= 2) {
|
|
1141
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1142
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1143
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1144
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1360
1145
|
]));
|
|
1361
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1362
|
-
if (valIndex <= 2) {
|
|
1363
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1364
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1365
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1366
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1367
|
-
]));
|
|
1368
|
-
}
|
|
1369
|
-
else {
|
|
1370
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1371
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1372
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1373
|
-
]));
|
|
1374
|
-
}
|
|
1375
|
-
// Avaliador Sintático
|
|
1376
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1377
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1378
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1379
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1380
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1381
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1382
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1383
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1384
|
-
// Tradutor
|
|
1385
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1386
|
-
// O Tradutor deve serializar de acordo e traduzir rotacionar-eixo-z para rotateZ
|
|
1387
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1388
|
-
if (valIndex !== 0) {
|
|
1389
|
-
expect(resultadoTradutor).toContain(`rotateZ(${valoresAceitos[valIndex]});`);
|
|
1390
|
-
}
|
|
1391
|
-
else {
|
|
1392
|
-
expect(resultadoTradutor).toContain(`rotateZ(45deg);`);
|
|
1393
|
-
}
|
|
1394
1146
|
}
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
it('Atribuindo Método "rotacionar-horizontal()"', () => {
|
|
1398
|
-
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1399
|
-
const valoresAceitos = ['45graus', '45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1400
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1401
|
-
// Lexador
|
|
1402
|
-
const resultadoLexador = lexador.mapear([
|
|
1403
|
-
"lmht {",
|
|
1404
|
-
`${metodos_1.MetodosRotacionar[index]}: rotacionar-horizontal(${valoresAceitos[valIndex]});`,
|
|
1405
|
-
"}"
|
|
1406
|
-
]);
|
|
1407
|
-
// O Lexador não deve encontrar erros
|
|
1408
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1409
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1147
|
+
else {
|
|
1148
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1410
1149
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1411
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1150
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1412
1151
|
]));
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1433
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1434
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1435
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1436
|
-
// Tradutor
|
|
1437
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1438
|
-
// O Tradutor deve serializar de acordo e traduzir rotacionar-horizontal para rotateX
|
|
1439
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1440
|
-
if (valIndex !== 0) {
|
|
1441
|
-
expect(resultadoTradutor).toContain(`rotateX(${valoresAceitos[valIndex]});`);
|
|
1442
|
-
}
|
|
1443
|
-
else {
|
|
1444
|
-
expect(resultadoTradutor).toContain(`rotateX(45deg);`);
|
|
1445
|
-
}
|
|
1152
|
+
}
|
|
1153
|
+
// Avaliador Sintático
|
|
1154
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1155
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1156
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1157
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1158
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1159
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1160
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1161
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1162
|
+
// Resolvedor
|
|
1163
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1164
|
+
// O Resolvedor deve resolver de acordo e traduzir inclinar-vertical para skewY
|
|
1165
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
1166
|
+
if (valIndex !== 0) {
|
|
1167
|
+
expect(resultadoResolvedor).toContain(`skewY(${valoresAceitos[valIndex]});`);
|
|
1168
|
+
}
|
|
1169
|
+
else {
|
|
1170
|
+
expect(resultadoResolvedor).toContain(`skewY(180deg);`);
|
|
1446
1171
|
}
|
|
1447
1172
|
}
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1173
|
+
}
|
|
1174
|
+
});
|
|
1175
|
+
it('Atribuindo Método "inverter()"', () => {
|
|
1176
|
+
for (let index = 0; index < metodos_1.MetodoInverter.length; index += 1) {
|
|
1177
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1178
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1179
|
+
// Lexador
|
|
1180
|
+
const resultadoLexador = lexador.mapear([
|
|
1181
|
+
"lmht {",
|
|
1182
|
+
`${metodos_1.MetodoInverter[index]}: inverter(${valoresAceitos[valIndex]});`,
|
|
1183
|
+
"}"
|
|
1184
|
+
]);
|
|
1185
|
+
// O Lexador não deve encontrar erros
|
|
1186
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1187
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1188
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1189
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1190
|
+
]));
|
|
1191
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1192
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1193
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1462
1194
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1463
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1195
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1196
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1464
1197
|
]));
|
|
1465
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1466
|
-
if (valIndex <= 2) {
|
|
1467
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1468
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1469
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1470
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1471
|
-
]));
|
|
1472
|
-
}
|
|
1473
|
-
else {
|
|
1474
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1475
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1476
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1477
|
-
]));
|
|
1478
|
-
}
|
|
1479
|
-
// Avaliador Sintático
|
|
1480
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1481
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1482
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1483
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1484
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1485
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1486
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1487
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRotacionarMatiz[index]]);
|
|
1488
|
-
// Tradutor
|
|
1489
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1490
|
-
// O Tradutor deve serializar de acordo e traduzir rotacionar-matiz para hue-rotate
|
|
1491
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRotacionarMatiz[index]]);
|
|
1492
|
-
if (valIndex !== 0) {
|
|
1493
|
-
expect(resultadoTradutor).toContain(`hue-rotate(${valoresAceitos[valIndex]});`);
|
|
1494
|
-
}
|
|
1495
|
-
else {
|
|
1496
|
-
expect(resultadoTradutor).toContain(`hue-rotate(90deg);`);
|
|
1497
|
-
}
|
|
1498
1198
|
}
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
it('Atribuindo Método "rotacionar-vertical()"', () => {
|
|
1502
|
-
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1503
|
-
const valoresAceitos = ['45graus', '45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1504
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1505
|
-
// Lexador
|
|
1506
|
-
const resultadoLexador = lexador.mapear([
|
|
1507
|
-
"lmht {",
|
|
1508
|
-
`${metodos_1.MetodosRotacionar[index]}: rotacionar-vertical(${valoresAceitos[valIndex]});`,
|
|
1509
|
-
"}"
|
|
1510
|
-
]);
|
|
1511
|
-
// O Lexador não deve encontrar erros
|
|
1512
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1513
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1199
|
+
else {
|
|
1200
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1514
1201
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1515
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1202
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1516
1203
|
]));
|
|
1517
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1518
|
-
if (valIndex <= 2) {
|
|
1519
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1520
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1521
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1522
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1523
|
-
]));
|
|
1524
|
-
}
|
|
1525
|
-
else {
|
|
1526
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1527
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1528
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1529
|
-
]));
|
|
1530
|
-
}
|
|
1531
|
-
// Avaliador Sintático
|
|
1532
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1533
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1534
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1535
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1536
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1537
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1538
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1539
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1540
|
-
// Tradutor
|
|
1541
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1542
|
-
// O Tradutor deve serializar de acordo e traduzir rotacionar-vertical para rotateY
|
|
1543
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1544
|
-
if (valIndex !== 0) {
|
|
1545
|
-
expect(resultadoTradutor).toContain(`rotateY(${valoresAceitos[valIndex]});`);
|
|
1546
|
-
}
|
|
1547
|
-
else {
|
|
1548
|
-
expect(resultadoTradutor).toContain(`rotateY(45deg);`);
|
|
1549
|
-
}
|
|
1550
1204
|
}
|
|
1205
|
+
// Avaliador Sintático
|
|
1206
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1207
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1208
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1209
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1210
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1211
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1212
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1213
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoInverter[index]]);
|
|
1214
|
+
// Resolvedor
|
|
1215
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1216
|
+
// O Resolvedor deve resolver de acordo e traduzir inverter para invert
|
|
1217
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoInverter[index]]);
|
|
1218
|
+
expect(resultadoResolvedor).toContain(`invert(${valoresAceitos[valIndex]});`);
|
|
1551
1219
|
}
|
|
1552
|
-
}
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1220
|
+
}
|
|
1221
|
+
});
|
|
1222
|
+
it('Atribuindo Método "limitar" (clamp)', () => {
|
|
1223
|
+
for (let index = 0; index < metodos_1.MetodoLimitar.length; index += 1) {
|
|
1224
|
+
// Lexador
|
|
1225
|
+
const resultadoLexador = lexador.mapear([
|
|
1226
|
+
"lmht {",
|
|
1227
|
+
`${metodos_1.MetodoLimitar[index]}: limitar(10vw, 20em, 100vw);`,
|
|
1228
|
+
"}"
|
|
1229
|
+
]);
|
|
1230
|
+
// O Lexador deve montar um objeto de comprimento 17 sem retornar nenhum erro
|
|
1231
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
1232
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1233
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1234
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1235
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1236
|
+
]));
|
|
1237
|
+
// O Lexador também deve encontrar números e quantificadores no mapeamento
|
|
1238
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1239
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1240
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1241
|
+
]));
|
|
1242
|
+
// Avaliador Sintático
|
|
1243
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1244
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1245
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1246
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1247
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1248
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1249
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1250
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLimitar[index]]);
|
|
1251
|
+
// Resolvedor
|
|
1252
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1253
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLimitar[index]]);
|
|
1254
|
+
expect(resultadoResolvedor).toContain('clamp(10vw, 20em, 100vw);');
|
|
1255
|
+
}
|
|
1256
|
+
});
|
|
1257
|
+
it('Atribuindo Método "linear()"', () => {
|
|
1258
|
+
for (let index = 0; index < metodos_1.MetodoLinear.length; index += 1) {
|
|
1259
|
+
// Lexador
|
|
1260
|
+
const resultadoLexador = lexador.mapear([
|
|
1261
|
+
"lmht {",
|
|
1262
|
+
`${metodos_1.MetodoLinear[index]}: linear(0, 0.25, 1);`,
|
|
1263
|
+
"}"
|
|
1264
|
+
]);
|
|
1265
|
+
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
1266
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1267
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1268
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1269
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1270
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1271
|
+
]));
|
|
1272
|
+
// O Lexador também deve encontrar números no mapeamento
|
|
1273
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1274
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1275
|
+
]));
|
|
1276
|
+
// Avaliador Sintático
|
|
1277
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1278
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1279
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1280
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1281
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1282
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1283
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1284
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLinear[index]]);
|
|
1285
|
+
// // // // Resolvedor
|
|
1286
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1287
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLinear[index]]);
|
|
1288
|
+
expect(resultadoResolvedor).toContain('linear(0, 0.25, 1);');
|
|
1289
|
+
}
|
|
1290
|
+
});
|
|
1291
|
+
it('Atribuindo Método "minmax()"', () => {
|
|
1292
|
+
for (let index = 0; index < metodos_1.MetodoMinMax.length; index += 1) {
|
|
1293
|
+
// Lexador
|
|
1294
|
+
const resultadoLexador = lexador.mapear([
|
|
1295
|
+
"lmht {",
|
|
1296
|
+
`${metodos_1.MetodoMinMax[index]}: minmax(100px, conteúdo-máximo);`,
|
|
1297
|
+
"}"
|
|
1298
|
+
]);
|
|
1299
|
+
// O Lexador deve montar um objeto de comprimento 13 sem retornar nenhum erro
|
|
1300
|
+
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
1301
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1302
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1303
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1304
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1305
|
+
]));
|
|
1306
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
1307
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1308
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1309
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1310
|
+
]));
|
|
1311
|
+
// Avaliador Sintático
|
|
1312
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1313
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1314
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1315
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1316
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1317
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1318
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1319
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoMinMax[index]]);
|
|
1320
|
+
// // // // Resolvedor
|
|
1321
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1322
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoMinMax[index]]);
|
|
1323
|
+
expect(resultadoResolvedor).toContain('minmax(100px, max-content);');
|
|
1324
|
+
}
|
|
1325
|
+
});
|
|
1326
|
+
it('Atribuindo Método "opacar()"', () => {
|
|
1327
|
+
for (let index = 0; index < metodos_1.MetodoOpacar.length; index += 1) {
|
|
1328
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1329
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1330
|
+
// Lexador
|
|
1331
|
+
const resultadoLexador = lexador.mapear([
|
|
1332
|
+
"lmht {",
|
|
1333
|
+
`${metodos_1.MetodoOpacar[index]}: opacar(${valoresAceitos[valIndex]});`,
|
|
1334
|
+
"}"
|
|
1335
|
+
]);
|
|
1336
|
+
// O Lexador não deve encontrar erros
|
|
1337
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1338
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1339
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1340
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1341
|
+
]));
|
|
1342
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1343
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1344
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1566
1345
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1567
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1346
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1347
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1568
1348
|
]));
|
|
1569
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1570
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1571
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1572
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1573
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1574
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1575
|
-
]));
|
|
1576
|
-
}
|
|
1577
|
-
else {
|
|
1578
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1579
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1580
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1581
|
-
]));
|
|
1582
|
-
}
|
|
1583
|
-
// Avaliador Sintático
|
|
1584
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1585
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1586
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1587
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1588
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1589
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1590
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1591
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSaturar[index]]);
|
|
1592
|
-
// Tradutor
|
|
1593
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1594
|
-
// O Tradutor deve serializar de acordo e traduzir saturar para saturate
|
|
1595
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSaturar[index]]);
|
|
1596
|
-
expect(resultadoTradutor).toContain(`saturate(${valoresAceitos[valIndex]});`);
|
|
1597
1349
|
}
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
it('Atribuindo Método "sepia()"', () => {
|
|
1601
|
-
for (let index = 0; index < metodos_1.MetodoSepia.length; index += 1) {
|
|
1602
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1603
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1604
|
-
// Lexador
|
|
1605
|
-
const resultadoLexador = lexador.mapear([
|
|
1606
|
-
"lmht {",
|
|
1607
|
-
`${metodos_1.MetodoSepia[index]}: sepia(${valoresAceitos[valIndex]});`,
|
|
1608
|
-
"}"
|
|
1609
|
-
]);
|
|
1610
|
-
// O Lexador não deve encontrar erros
|
|
1611
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1612
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1350
|
+
else {
|
|
1351
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1613
1352
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1614
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1353
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1615
1354
|
]));
|
|
1616
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1617
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1618
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1619
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1620
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1621
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1622
|
-
]));
|
|
1623
|
-
}
|
|
1624
|
-
else {
|
|
1625
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1626
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1627
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1628
|
-
]));
|
|
1629
|
-
}
|
|
1630
|
-
// Avaliador Sintático
|
|
1631
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1632
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1633
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1634
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1635
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1636
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1637
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1638
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSepia[index]]);
|
|
1639
|
-
// Tradutor
|
|
1640
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1641
|
-
// O Tradutor deve serializar de acordo e traduzir sépia para sepia
|
|
1642
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSepia[index]]);
|
|
1643
|
-
expect(resultadoTradutor).toContain(`sepia(${valoresAceitos[valIndex]});`);
|
|
1644
1355
|
}
|
|
1356
|
+
// Avaliador Sintático
|
|
1357
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1358
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1359
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1360
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1361
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1362
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1363
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1364
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoOpacar[index]]);
|
|
1365
|
+
// Resolvedor
|
|
1366
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1367
|
+
// O Resolvedor deve resolver de acordo e traduzir opacar para opacity
|
|
1368
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoOpacar[index]]);
|
|
1369
|
+
expect(resultadoResolvedor).toContain(`opacity(${valoresAceitos[valIndex]});`);
|
|
1645
1370
|
}
|
|
1646
|
-
}
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1371
|
+
}
|
|
1372
|
+
});
|
|
1373
|
+
it('Atribuindo Método "ornamentos()" com valor numérico - caso de sucesso', () => {
|
|
1374
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
1375
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1376
|
+
// Lexador
|
|
1377
|
+
const resultadoLexador = lexador.mapear([
|
|
1378
|
+
"lmht {",
|
|
1379
|
+
`variacao-fonte-alternativa: ornamentos(${valoresAceitos[index]});`,
|
|
1380
|
+
"}"
|
|
1381
|
+
]);
|
|
1382
|
+
// O Lexador não deve encontrar erros
|
|
1383
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1384
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1385
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1386
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1387
|
+
]));
|
|
1388
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
1389
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1390
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1391
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1392
|
+
]));
|
|
1393
|
+
// Avaliador Sintático
|
|
1394
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1395
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1396
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1397
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1398
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1399
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1400
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1401
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
1402
|
+
// Resolvedor
|
|
1403
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1404
|
+
// O Resolvedor deve resolver de acordo e traduzir ornamentos para ornaments
|
|
1405
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
1406
|
+
expect(resultadoResolvedor).toContain(`ornaments(${valoresAceitos[index]});`);
|
|
1407
|
+
}
|
|
1408
|
+
});
|
|
1409
|
+
it('Atribuindo Método "ornamentos()" com valor numérico - caso de falha', () => {
|
|
1410
|
+
const valoresAceitos = ['0', '100', '300'];
|
|
1411
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1412
|
+
// Lexador
|
|
1413
|
+
const resultadoLexador = lexador.mapear([
|
|
1414
|
+
"lmht {",
|
|
1415
|
+
`variacao-fonte-alternativa: ornamentos(${valoresAceitos[index]});`,
|
|
1416
|
+
"}"
|
|
1417
|
+
]);
|
|
1418
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1419
|
+
expect(() => {
|
|
1420
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1421
|
+
}).toThrow('O valor da função ornamentos() deve estar entre 1 e 99');
|
|
1422
|
+
}
|
|
1423
|
+
});
|
|
1424
|
+
it('Atribuindo Método "ornamentos()" com valor string - caso de sucesso', () => {
|
|
1425
|
+
const valoresAceitos = ['floral', 'ruby', 'circle'];
|
|
1426
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1427
|
+
// Lexador
|
|
1428
|
+
const resultadoLexador = lexador.mapear([
|
|
1429
|
+
"lmht {",
|
|
1430
|
+
`variacao-fonte-alternativa: ornamentos('${valoresAceitos[index]}');`,
|
|
1431
|
+
"}"
|
|
1432
|
+
]);
|
|
1433
|
+
// O Lexador não deve encontrar erros
|
|
1434
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1435
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1436
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1437
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1438
|
+
]));
|
|
1439
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
1440
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1441
|
+
// Avaliador Sintático
|
|
1442
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1443
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1444
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1445
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1446
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1447
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1448
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1449
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
1450
|
+
// Resolvedor
|
|
1451
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1452
|
+
// O Resolvedor deve resolver de acordo e traduzir ornamentos para ornaments e conter o valor string
|
|
1453
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
1454
|
+
expect(resultadoResolvedor).toContain(`ornaments('${valoresAceitos[index]}');`);
|
|
1455
|
+
}
|
|
1456
|
+
});
|
|
1457
|
+
it('Atribuindo Método "ornamentos()" com valor string - caso de falha', () => {
|
|
1458
|
+
const valoresAceitos = ['--valorPersonalizado', 'herdar', 'inicial'];
|
|
1459
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1460
|
+
// Lexador
|
|
1461
|
+
const resultadoLexador = lexador.mapear([
|
|
1462
|
+
"lmht {",
|
|
1463
|
+
`variacao-fonte-alternativa: ornamentos(${valoresAceitos[index]});`,
|
|
1464
|
+
"}"
|
|
1465
|
+
]);
|
|
1466
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1467
|
+
expect(() => {
|
|
1468
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1469
|
+
}).toThrow(`Modificador ou variável 'variação-fonte-alternativa' com valor personalizado ${valoresAceitos[index]} inválido. O valor deve seguir as regras de sintaxe de uma identificação personalizada (<custom-indent>).`);
|
|
1470
|
+
}
|
|
1471
|
+
});
|
|
1472
|
+
it('Atribuindo Método "passos" (steps)', () => {
|
|
1473
|
+
for (let index = 0; index < metodos_1.MetodoPassos.length; index += 1) {
|
|
1474
|
+
// Lexador
|
|
1475
|
+
const resultadoLexador = lexador.mapear([
|
|
1476
|
+
"lmht {",
|
|
1477
|
+
`${metodos_1.MetodoPassos[index]}: passos(2, salto-inicial);`,
|
|
1478
|
+
"}"
|
|
1479
|
+
]);
|
|
1480
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar nenhum erro
|
|
1481
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
1482
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1483
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1484
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1485
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1486
|
+
]));
|
|
1487
|
+
// O Lexador também deve encontrar número e qualitativo no mapeamento
|
|
1488
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1489
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1490
|
+
expect.objectContaining({ tipo: foles_1.default.QUALITATIVO }),
|
|
1491
|
+
]));
|
|
1492
|
+
// Avaliador Sintático
|
|
1493
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1494
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1495
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1496
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1497
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1498
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1499
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1500
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPassos[index]]);
|
|
1501
|
+
// // // // Resolvedor
|
|
1502
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1503
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPassos[index]]);
|
|
1504
|
+
expect(resultadoResolvedor).toContain('steps(2, jump-start);');
|
|
1505
|
+
}
|
|
1506
|
+
});
|
|
1507
|
+
it('Atribuindo Método "perspectivar()"', () => {
|
|
1508
|
+
for (let index = 0; index < metodos_1.MetodoPerspectivar.length; index += 1) {
|
|
1509
|
+
const valoresAceitos = ['800px', '6.5cm', '0.1', '0', '1', '1.75', 'nenhuma'];
|
|
1510
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1511
|
+
// Lexador
|
|
1512
|
+
const resultadoLexador = lexador.mapear([
|
|
1513
|
+
"lmht {",
|
|
1514
|
+
`${metodos_1.MetodoPerspectivar[index]}: perspectivar(${valoresAceitos[valIndex]});`,
|
|
1515
|
+
"}"
|
|
1516
|
+
]);
|
|
1517
|
+
// O Lexador não deve encontrar erros
|
|
1518
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1519
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1520
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1521
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1522
|
+
]));
|
|
1523
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1524
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1525
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1526
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1527
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1528
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1529
|
+
]));
|
|
1530
|
+
}
|
|
1531
|
+
else if (valIndex !== 6) {
|
|
1532
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1533
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1534
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1535
|
+
]));
|
|
1536
|
+
}
|
|
1537
|
+
else {
|
|
1538
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1660
1539
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1661
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1540
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
1662
1541
|
]));
|
|
1663
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1664
|
-
if (valIndex <= 2) {
|
|
1665
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1666
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1667
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1668
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1669
|
-
]));
|
|
1670
|
-
}
|
|
1671
|
-
else {
|
|
1672
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1673
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1674
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1675
|
-
]));
|
|
1676
|
-
}
|
|
1677
|
-
// Avaliador Sintático
|
|
1678
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1679
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1680
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1681
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1682
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1683
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1684
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1685
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1686
|
-
// Tradutor
|
|
1687
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1688
|
-
// O Tradutor deve serializar de acordo e traduzir translação para translate
|
|
1689
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1690
|
-
if (valIndex !== 0) {
|
|
1691
|
-
expect(resultadoTradutor).toContain(`translate(${valoresAceitos[valIndex]});`);
|
|
1692
|
-
}
|
|
1693
|
-
else {
|
|
1694
|
-
expect(resultadoTradutor).toContain(`translate(270deg);`);
|
|
1695
|
-
}
|
|
1696
1542
|
}
|
|
1543
|
+
// Avaliador Sintático
|
|
1544
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1545
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1546
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1547
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1548
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1549
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1550
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1551
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPerspectivar[index]]);
|
|
1552
|
+
// Resolvedor
|
|
1553
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1554
|
+
// O Resolvedor deve resolver de acordo e traduzir perspectivar para perspective
|
|
1555
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPerspectivar[index]]);
|
|
1556
|
+
expect(resultadoResolvedor).toContain(`perspective(${valoresAceitos[valIndex]});`);
|
|
1697
1557
|
}
|
|
1698
|
-
}
|
|
1699
|
-
|
|
1700
|
-
|
|
1558
|
+
}
|
|
1559
|
+
});
|
|
1560
|
+
it('Atribuindo Método "projetar-sombra()" com valores de comprimento somente', () => {
|
|
1561
|
+
for (let index = 0; index < metodos_1.MetodoProjetarSombra.length; index += 1) {
|
|
1562
|
+
const comprimentos = ['15px 15px', '15px 15px 15px', '0.5rem 0.5rem', '0.5rem 0.5rem 1rem'];
|
|
1563
|
+
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
1701
1564
|
// Lexador
|
|
1702
1565
|
const resultadoLexador = lexador.mapear([
|
|
1703
1566
|
"lmht {",
|
|
1704
|
-
`${metodos_1.
|
|
1567
|
+
`${metodos_1.MetodoProjetarSombra[index]}: projetar-sombra(${comprimentos[posIndex]});`,
|
|
1705
1568
|
"}"
|
|
1706
1569
|
]);
|
|
1707
|
-
// O Lexador
|
|
1570
|
+
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
1708
1571
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1709
1572
|
// O valor recebido deve ser mapeado como METODO
|
|
1710
1573
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1711
1574
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1712
1575
|
]));
|
|
1713
|
-
// O Lexador deve
|
|
1714
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1576
|
+
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
1715
1577
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1716
1578
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1717
1579
|
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
@@ -1724,20 +1586,62 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
1724
1586
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1725
1587
|
const primeiroResultadoTipado = primeiroResultado;
|
|
1726
1588
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1727
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1728
|
-
//
|
|
1729
|
-
const
|
|
1730
|
-
// O
|
|
1731
|
-
expect(
|
|
1732
|
-
expect(
|
|
1589
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1590
|
+
// Resolvedor
|
|
1591
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1592
|
+
// O Resolvedor deve resolver de acordo e traduzir projetar-sombra para drop-shadow
|
|
1593
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1594
|
+
expect(resultadoResolvedor).toContain(`drop-shadow(${comprimentos[posIndex]});`);
|
|
1595
|
+
}
|
|
1596
|
+
}
|
|
1597
|
+
});
|
|
1598
|
+
it('Atribuindo Método "projetar-sombra()" com valores de cor e de comprimento', () => {
|
|
1599
|
+
for (let index = 0; index < metodos_1.MetodoProjetarSombra.length; index += 1) {
|
|
1600
|
+
const comprimentos = ['15px 15px vermelho', '15px 15px 15px vermelho', 'vermelho 0.5rem 0.5rem', 'vermelho 0.5rem 0.5rem 1rem'];
|
|
1601
|
+
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
1602
|
+
// Lexador
|
|
1603
|
+
const resultadoLexador = lexador.mapear([
|
|
1604
|
+
"lmht {",
|
|
1605
|
+
`${metodos_1.MetodoProjetarSombra[index]}: projetar-sombra(${comprimentos[posIndex]});`,
|
|
1606
|
+
"}"
|
|
1607
|
+
]);
|
|
1608
|
+
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
1609
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1610
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1611
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1612
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1613
|
+
]));
|
|
1614
|
+
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
1615
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1616
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1617
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1618
|
+
]));
|
|
1619
|
+
// Avaliador Sintático
|
|
1620
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1621
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1622
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1623
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1624
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1625
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1626
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1627
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1628
|
+
// Resolvedor
|
|
1629
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1630
|
+
// O Resolvedor deve resolver de acordo e traduzir vermelho para red
|
|
1631
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1632
|
+
expect(resultadoResolvedor).toContain('red');
|
|
1733
1633
|
}
|
|
1734
|
-
}
|
|
1735
|
-
|
|
1736
|
-
|
|
1634
|
+
}
|
|
1635
|
+
});
|
|
1636
|
+
it('Atribuindo Método "raio()" com valores de posição e número/quantificador', () => {
|
|
1637
|
+
for (let index = 0; index < metodos_1.MetodoRaio.length; index += 1) {
|
|
1638
|
+
const valoresAceitos = ['lado-mais-próximo', 'lado-mais-proximo', 'canto-mais-próximo', 'canto-mais-proximo', 'lado-mais-distante', 'canto-mais-distante', 'lados', 'conter'];
|
|
1639
|
+
const traducaoValoresAceitos = ['closest-side', 'closest-side', 'closest-corner', 'closest-corner', 'farthest-side', 'farthest-corner', 'sides', 'contain'];
|
|
1640
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1737
1641
|
// Lexador
|
|
1738
1642
|
const resultadoLexador = lexador.mapear([
|
|
1739
1643
|
"lmht {",
|
|
1740
|
-
`${metodos_1.
|
|
1644
|
+
`${metodos_1.MetodoRaio[index]}: raio(${valoresAceitos[valIndex]} 200graus);`,
|
|
1741
1645
|
"}"
|
|
1742
1646
|
]);
|
|
1743
1647
|
// O Lexador não deve encontrar erros
|
|
@@ -1746,8 +1650,8 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
1746
1650
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1747
1651
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1748
1652
|
]));
|
|
1749
|
-
// O Lexador deve montar um objeto de comprimento
|
|
1750
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
1653
|
+
// O Lexador deve montar um objeto de comprimento 12
|
|
1654
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
1751
1655
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1752
1656
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1753
1657
|
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
@@ -1760,433 +1664,1072 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
1760
1664
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1761
1665
|
const primeiroResultadoTipado = primeiroResultado;
|
|
1762
1666
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1763
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1764
|
-
//
|
|
1765
|
-
const
|
|
1766
|
-
// O
|
|
1767
|
-
expect(
|
|
1768
|
-
expect(
|
|
1667
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1668
|
+
// Resolvedor
|
|
1669
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1670
|
+
// O Resolvedor deve resolver de acordo e traduzir raio para ray
|
|
1671
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1672
|
+
expect(resultadoResolvedor).toContain(`ray(${traducaoValoresAceitos[valIndex]} 200deg);`);
|
|
1769
1673
|
}
|
|
1770
|
-
}
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1674
|
+
}
|
|
1675
|
+
});
|
|
1676
|
+
it('Atribuindo Método "raio()" com somente número/quantificador', () => {
|
|
1677
|
+
for (let index = 0; index < metodos_1.MetodoRaio.length; index += 1) {
|
|
1678
|
+
// Lexador
|
|
1679
|
+
const resultadoLexador = lexador.mapear([
|
|
1680
|
+
"lmht {",
|
|
1681
|
+
`${metodos_1.MetodoRaio[index]}: raio(200graus);`,
|
|
1682
|
+
"}"
|
|
1683
|
+
]);
|
|
1684
|
+
// O Lexador não deve encontrar erros
|
|
1685
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1686
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1687
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1688
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1689
|
+
]));
|
|
1690
|
+
// O Lexador deve montar um objeto de comprimento 11
|
|
1691
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1692
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1693
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1694
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1695
|
+
]));
|
|
1696
|
+
// Avaliador Sintático
|
|
1697
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1698
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1699
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1700
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1701
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1702
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1703
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1704
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1705
|
+
// Resolvedor
|
|
1706
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1707
|
+
// O Resolvedor deve resolver de acordo e traduzir raio para ray
|
|
1708
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1709
|
+
expect(resultadoResolvedor).toContain(`ray(200deg);`);
|
|
1710
|
+
}
|
|
1711
|
+
});
|
|
1712
|
+
it('Atribuindo Método "rotacionar()"', () => {
|
|
1713
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1714
|
+
const valoresAceitos = ['45graus', '45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1715
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1716
|
+
// Lexador
|
|
1717
|
+
const resultadoLexador = lexador.mapear([
|
|
1718
|
+
"lmht {",
|
|
1719
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar(${valoresAceitos[valIndex]});`,
|
|
1720
|
+
"}"
|
|
1721
|
+
]);
|
|
1722
|
+
// O Lexador não deve encontrar erros
|
|
1723
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1724
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1725
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1726
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1727
|
+
]));
|
|
1728
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1729
|
+
if (valIndex <= 2) {
|
|
1730
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1794
1731
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1795
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1732
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1733
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1796
1734
|
]));
|
|
1797
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1798
|
-
if (valIndex === 0) {
|
|
1799
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1800
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1801
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1802
|
-
]));
|
|
1803
|
-
}
|
|
1804
|
-
else if (valIndex === 1 || valIndex === 2 || valIndex === 3) {
|
|
1805
|
-
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
1806
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1807
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1808
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1809
|
-
]));
|
|
1810
|
-
}
|
|
1811
|
-
else if (valIndex === 4 || valIndex === 5 || valIndex === 6) {
|
|
1812
|
-
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
1813
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1814
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1815
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1816
|
-
]));
|
|
1817
|
-
}
|
|
1818
|
-
else if (valIndex === 7) {
|
|
1819
|
-
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
1820
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1821
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1822
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1823
|
-
]));
|
|
1824
|
-
}
|
|
1825
|
-
else {
|
|
1826
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1827
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1828
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1829
|
-
]));
|
|
1830
|
-
}
|
|
1831
|
-
// Avaliador Sintático
|
|
1832
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1833
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1834
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1835
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1836
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1837
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1838
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1839
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1840
|
-
// Tradutor
|
|
1841
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1842
|
-
// O Tradutor deve serializar de acordo e traduzir translação-3d para translate3d
|
|
1843
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1844
|
-
if (valIndex !== 8) {
|
|
1845
|
-
expect(resultadoTradutor).toContain(`translate3d(${valoresAceitos[valIndex]});`);
|
|
1846
|
-
}
|
|
1847
|
-
else {
|
|
1848
|
-
expect(resultadoTradutor).toContain(`translate3d(0);`);
|
|
1849
|
-
}
|
|
1850
1735
|
}
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
it('Atribuindo Método "translação-eixo-z()"', () => {
|
|
1854
|
-
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1855
|
-
const valoresAceitos = ['42px', '3ch', '0'];
|
|
1856
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1857
|
-
// Lexador
|
|
1858
|
-
const resultadoLexador = lexador.mapear([
|
|
1859
|
-
"lmht {",
|
|
1860
|
-
`${metodos_1.MetodosTranslacao[index]}: translação-eixo-z(${valoresAceitos[valIndex]});`,
|
|
1861
|
-
"}"
|
|
1862
|
-
]);
|
|
1863
|
-
// O Lexador não deve encontrar erros
|
|
1864
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1865
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1736
|
+
else {
|
|
1737
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1866
1738
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1867
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1739
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1868
1740
|
]));
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1889
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1890
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1891
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1892
|
-
// Tradutor
|
|
1893
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1894
|
-
// O Tradutor deve serializar de acordo e traduzir translação-eixo-z para translateZ
|
|
1895
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1896
|
-
expect(resultadoTradutor).toContain(`translateZ(${valoresAceitos[valIndex]});`);
|
|
1741
|
+
}
|
|
1742
|
+
// Avaliador Sintático
|
|
1743
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1744
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1745
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1746
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1747
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1748
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1749
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1750
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1751
|
+
// Resolvedor
|
|
1752
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1753
|
+
// O Resolvedor deve resolver de acordo e traduzir rotacionar para rotate
|
|
1754
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1755
|
+
if (valIndex !== 0) {
|
|
1756
|
+
expect(resultadoResolvedor).toContain(`rotate(${valoresAceitos[valIndex]});`);
|
|
1757
|
+
}
|
|
1758
|
+
else {
|
|
1759
|
+
expect(resultadoResolvedor).toContain(`rotate(45deg);`);
|
|
1897
1760
|
}
|
|
1898
1761
|
}
|
|
1899
|
-
}
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1762
|
+
}
|
|
1763
|
+
});
|
|
1764
|
+
it('Atribuindo Método "rotacionar-3d()" - caso de sucesso', () => {
|
|
1765
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1766
|
+
const valoresAceitos = ['0, 0, 0, 0', '1, 2, 0, 45deg', '1, 1, 1, 90graus'];
|
|
1767
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1768
|
+
// Lexador
|
|
1769
|
+
const resultadoLexador = lexador.mapear([
|
|
1770
|
+
"lmht {",
|
|
1771
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-3d(${valoresAceitos[valIndex]});`,
|
|
1772
|
+
"}"
|
|
1773
|
+
]);
|
|
1774
|
+
// O Lexador não deve encontrar erros
|
|
1775
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1776
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1777
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1778
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1779
|
+
]));
|
|
1780
|
+
// O Lexador deve montar um objeto de comprimento 17 caso haja quantificador e 16 caso não haja
|
|
1781
|
+
if (valIndex > 0) {
|
|
1782
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
1913
1783
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1914
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1784
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1785
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1915
1786
|
]));
|
|
1916
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1917
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1918
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1919
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1920
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1921
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1922
|
-
]));
|
|
1923
|
-
}
|
|
1924
|
-
else {
|
|
1925
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1926
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1927
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1928
|
-
]));
|
|
1929
|
-
}
|
|
1930
|
-
// Avaliador Sintático
|
|
1931
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1932
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1933
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1934
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1935
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1936
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1937
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1938
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1939
|
-
// Tradutor
|
|
1940
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1941
|
-
// O Tradutor deve serializar de acordo e traduzir translacao-eixo-z para translateZ
|
|
1942
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1943
|
-
expect(resultadoTradutor).toContain(`translateZ(${valoresAceitos[valIndex]});`);
|
|
1944
1787
|
}
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
it('Atribuindo Método "translação-horizontal()"', () => {
|
|
1948
|
-
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1949
|
-
const valoresAceitos = ['42px', '3ch', '0'];
|
|
1950
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1951
|
-
// Lexador
|
|
1952
|
-
const resultadoLexador = lexador.mapear([
|
|
1953
|
-
"lmht {",
|
|
1954
|
-
`${metodos_1.MetodosTranslacao[index]}: translação-horizontal(${valoresAceitos[valIndex]});`,
|
|
1955
|
-
"}"
|
|
1956
|
-
]);
|
|
1957
|
-
// O Lexador não deve encontrar erros
|
|
1958
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1959
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1788
|
+
else {
|
|
1789
|
+
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
1960
1790
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1961
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1791
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1962
1792
|
]));
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1983
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1984
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1985
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1986
|
-
// Tradutor
|
|
1987
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1988
|
-
// O Tradutor deve serializar de acordo e traduzir translação-horizontal para translateX
|
|
1989
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1990
|
-
expect(resultadoTradutor).toContain(`translateX(${valoresAceitos[valIndex]});`);
|
|
1793
|
+
}
|
|
1794
|
+
// Avaliador Sintático
|
|
1795
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1796
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1797
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1798
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1799
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1800
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1801
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1802
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1803
|
+
// Resolvedor
|
|
1804
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1805
|
+
// O Resolvedor deve resolver de acordo e traduzir rotacionar-3d para rotate3d
|
|
1806
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1807
|
+
if (valIndex < 2) {
|
|
1808
|
+
expect(resultadoResolvedor).toContain(`rotate3d(${valoresAceitos[valIndex]});`);
|
|
1809
|
+
}
|
|
1810
|
+
else {
|
|
1811
|
+
expect(resultadoResolvedor).toContain(`rotate3d(1, 1, 1, 90deg);`);
|
|
1991
1812
|
}
|
|
1992
1813
|
}
|
|
1993
|
-
}
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
1814
|
+
}
|
|
1815
|
+
});
|
|
1816
|
+
it('Atribuindo Método "rotacionar-3d()" - caso de falha', () => {
|
|
1817
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1818
|
+
// Lexador
|
|
1819
|
+
const resultadoLexador = lexador.mapear([
|
|
1820
|
+
"lmht {",
|
|
1821
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-3d(1, 1, 1, 20px);`,
|
|
1822
|
+
"}"
|
|
1823
|
+
]);
|
|
1824
|
+
// O Lexador não deve encontrar erros
|
|
1825
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1826
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1827
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1828
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1829
|
+
]));
|
|
1830
|
+
// Avaliador Sintático
|
|
1831
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1832
|
+
// Resolvedor não deve aceitar 'px' como quantificador válido
|
|
1833
|
+
expect(() => {
|
|
1834
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1835
|
+
}).toThrow();
|
|
1836
|
+
}
|
|
1837
|
+
});
|
|
1838
|
+
it('Atribuindo Método "rotacionar-eixo-z()"', () => {
|
|
1839
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1840
|
+
const valoresAceitos = ['45graus', '45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1841
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1842
|
+
// Lexador
|
|
1843
|
+
const resultadoLexador = lexador.mapear([
|
|
1844
|
+
"lmht {",
|
|
1845
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-eixo-z(${valoresAceitos[valIndex]});`,
|
|
1846
|
+
"}"
|
|
1847
|
+
]);
|
|
1848
|
+
// O Lexador não deve encontrar erros
|
|
1849
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1850
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1851
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1852
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1853
|
+
]));
|
|
1854
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1855
|
+
if (valIndex <= 2) {
|
|
1856
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2007
1857
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2008
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1858
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1859
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2009
1860
|
]));
|
|
2010
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2011
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
2012
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2013
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2014
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2015
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2016
|
-
]));
|
|
2017
|
-
}
|
|
2018
|
-
else {
|
|
2019
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2020
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2021
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2022
|
-
]));
|
|
2023
|
-
}
|
|
2024
|
-
// Avaliador Sintático
|
|
2025
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2026
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2027
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2028
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2029
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2030
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
2031
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2032
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2033
|
-
// Tradutor
|
|
2034
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
2035
|
-
// O Tradutor deve serializar de acordo e traduzir translação-horizontal para translateX
|
|
2036
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2037
|
-
expect(resultadoTradutor).toContain(`translateX(${valoresAceitos[valIndex]});`);
|
|
2038
1861
|
}
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
it('Atribuindo Método "translação-vertical()"', () => {
|
|
2042
|
-
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2043
|
-
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2044
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2045
|
-
// Lexador
|
|
2046
|
-
const resultadoLexador = lexador.mapear([
|
|
2047
|
-
"lmht {",
|
|
2048
|
-
`${metodos_1.MetodosTranslacao[index]}: translação-vertical(${valoresAceitos[valIndex]});`,
|
|
2049
|
-
"}"
|
|
2050
|
-
]);
|
|
2051
|
-
// O Lexador não deve encontrar erros
|
|
2052
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2053
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1862
|
+
else {
|
|
1863
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2054
1864
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2055
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1865
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2056
1866
|
]));
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2077
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
2078
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2079
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2080
|
-
// Tradutor
|
|
2081
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
2082
|
-
// O Tradutor deve serializar de acordo e traduzir translação-vertical para translateY
|
|
2083
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2084
|
-
expect(resultadoTradutor).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
1867
|
+
}
|
|
1868
|
+
// Avaliador Sintático
|
|
1869
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1870
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1871
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1872
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1873
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1874
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1875
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1876
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1877
|
+
// Resolvedor
|
|
1878
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1879
|
+
// O Resolvedor deve resolver de acordo e traduzir rotacionar-eixo-z para rotateZ
|
|
1880
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1881
|
+
if (valIndex !== 0) {
|
|
1882
|
+
expect(resultadoResolvedor).toContain(`rotateZ(${valoresAceitos[valIndex]});`);
|
|
1883
|
+
}
|
|
1884
|
+
else {
|
|
1885
|
+
expect(resultadoResolvedor).toContain(`rotateZ(45deg);`);
|
|
2085
1886
|
}
|
|
2086
1887
|
}
|
|
2087
|
-
}
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
1888
|
+
}
|
|
1889
|
+
});
|
|
1890
|
+
it('Atribuindo Método "rotacionar-horizontal()"', () => {
|
|
1891
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1892
|
+
const valoresAceitos = ['45graus', '45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1893
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1894
|
+
// Lexador
|
|
1895
|
+
const resultadoLexador = lexador.mapear([
|
|
1896
|
+
"lmht {",
|
|
1897
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-horizontal(${valoresAceitos[valIndex]});`,
|
|
1898
|
+
"}"
|
|
1899
|
+
]);
|
|
1900
|
+
// O Lexador não deve encontrar erros
|
|
1901
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1902
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1903
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1904
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1905
|
+
]));
|
|
1906
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1907
|
+
if (valIndex <= 2) {
|
|
1908
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2101
1909
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2102
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1910
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1911
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2103
1912
|
]));
|
|
2104
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2105
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
2106
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2107
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2108
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2109
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2110
|
-
]));
|
|
2111
|
-
}
|
|
2112
|
-
else {
|
|
2113
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2114
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2115
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2116
|
-
]));
|
|
2117
|
-
}
|
|
2118
|
-
// Avaliador Sintático
|
|
2119
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2120
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2121
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2122
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2123
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2124
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
2125
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2126
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2127
|
-
// Tradutor
|
|
2128
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
2129
|
-
// O Tradutor deve serializar de acordo e traduzir translação-vertical para translateY
|
|
2130
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2131
|
-
expect(resultadoTradutor).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
2132
1913
|
}
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
it('Caso de Falha - Atribuindo método inexistente', () => {
|
|
2136
|
-
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2137
|
-
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2138
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2139
|
-
// Lexador
|
|
2140
|
-
const resultadoLexador = lexador.mapear([
|
|
2141
|
-
"lmht {",
|
|
2142
|
-
`${metodos_1.MetodosTranslacao[index]}: translacao-vertical(${valoresAceitos[valIndex]});`,
|
|
2143
|
-
"}"
|
|
2144
|
-
]);
|
|
2145
|
-
// O Lexador não deve encontrar erros
|
|
2146
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2147
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1914
|
+
else {
|
|
1915
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2148
1916
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2149
|
-
expect.objectContaining({ tipo: foles_1.default.
|
|
1917
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2150
1918
|
]));
|
|
2151
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2152
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
2153
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2154
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2155
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2156
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2157
|
-
]));
|
|
2158
|
-
}
|
|
2159
|
-
else {
|
|
2160
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2161
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2162
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2163
|
-
]));
|
|
2164
|
-
}
|
|
2165
|
-
// Avaliador Sintático
|
|
2166
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2167
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2168
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2169
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2170
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2171
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
2172
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2173
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2174
|
-
// Tradutor
|
|
2175
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
2176
|
-
// O Tradutor deve serializar de acordo e traduzir translação-vertical para translateY
|
|
2177
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2178
|
-
expect(resultadoTradutor).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
2179
1919
|
}
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
const
|
|
2185
|
-
expect(()
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
1920
|
+
// Avaliador Sintático
|
|
1921
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1922
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1923
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1924
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1925
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1926
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1927
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1928
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1929
|
+
// Resolvedor
|
|
1930
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1931
|
+
// O Resolvedor deve resolver de acordo e traduzir rotacionar-horizontal para rotateX
|
|
1932
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1933
|
+
if (valIndex !== 0) {
|
|
1934
|
+
expect(resultadoResolvedor).toContain(`rotateX(${valoresAceitos[valIndex]});`);
|
|
1935
|
+
}
|
|
1936
|
+
else {
|
|
1937
|
+
expect(resultadoResolvedor).toContain(`rotateX(45deg);`);
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
}
|
|
1941
|
+
});
|
|
1942
|
+
it('Atribuindo Método "rotacionar-matiz()"', () => {
|
|
1943
|
+
for (let index = 0; index < metodos_1.MetodoRotacionarMatiz.length; index += 1) {
|
|
1944
|
+
const valoresAceitos = ['90graus', '100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1945
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1946
|
+
// Lexador
|
|
1947
|
+
const resultadoLexador = lexador.mapear([
|
|
1948
|
+
"lmht {",
|
|
1949
|
+
`${metodos_1.MetodoRotacionarMatiz[index]}: rotacionar-matiz(${valoresAceitos[valIndex]});`,
|
|
1950
|
+
"}"
|
|
1951
|
+
]);
|
|
1952
|
+
// O Lexador não deve encontrar erros
|
|
1953
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1954
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1955
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1956
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1957
|
+
]));
|
|
1958
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1959
|
+
if (valIndex <= 2) {
|
|
1960
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1961
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1962
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1963
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1964
|
+
]));
|
|
1965
|
+
}
|
|
1966
|
+
else {
|
|
1967
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1968
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1969
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1970
|
+
]));
|
|
1971
|
+
}
|
|
1972
|
+
// Avaliador Sintático
|
|
1973
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1974
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1975
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1976
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1977
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1978
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1979
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1980
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRotacionarMatiz[index]]);
|
|
1981
|
+
// Resolvedor
|
|
1982
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1983
|
+
// O Resolvedor deve resolver de acordo e traduzir rotacionar-matiz para hue-rotate
|
|
1984
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRotacionarMatiz[index]]);
|
|
1985
|
+
if (valIndex !== 0) {
|
|
1986
|
+
expect(resultadoResolvedor).toContain(`hue-rotate(${valoresAceitos[valIndex]});`);
|
|
1987
|
+
}
|
|
1988
|
+
else {
|
|
1989
|
+
expect(resultadoResolvedor).toContain(`hue-rotate(90deg);`);
|
|
1990
|
+
}
|
|
1991
|
+
}
|
|
1992
|
+
}
|
|
1993
|
+
});
|
|
1994
|
+
it('Atribuindo Método "rotacionar-vertical()"', () => {
|
|
1995
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1996
|
+
const valoresAceitos = ['45graus', '45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1997
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1998
|
+
// Lexador
|
|
1999
|
+
const resultadoLexador = lexador.mapear([
|
|
2000
|
+
"lmht {",
|
|
2001
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-vertical(${valoresAceitos[valIndex]});`,
|
|
2002
|
+
"}"
|
|
2003
|
+
]);
|
|
2004
|
+
// O Lexador não deve encontrar erros
|
|
2005
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2006
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2007
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2008
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2009
|
+
]));
|
|
2010
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2011
|
+
if (valIndex <= 2) {
|
|
2012
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2013
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2014
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2015
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2016
|
+
]));
|
|
2017
|
+
}
|
|
2018
|
+
else {
|
|
2019
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2020
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2021
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2022
|
+
]));
|
|
2023
|
+
}
|
|
2024
|
+
// Avaliador Sintático
|
|
2025
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2026
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2027
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2028
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2029
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2030
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2031
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2032
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
2033
|
+
// Resolvedor
|
|
2034
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2035
|
+
// O Resolvedor deve resolver de acordo e traduzir rotacionar-vertical para rotateY
|
|
2036
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
2037
|
+
if (valIndex !== 0) {
|
|
2038
|
+
expect(resultadoResolvedor).toContain(`rotateY(${valoresAceitos[valIndex]});`);
|
|
2039
|
+
}
|
|
2040
|
+
else {
|
|
2041
|
+
expect(resultadoResolvedor).toContain(`rotateY(45deg);`);
|
|
2042
|
+
}
|
|
2043
|
+
}
|
|
2044
|
+
}
|
|
2045
|
+
});
|
|
2046
|
+
it('Atribuindo Método "saturar()"', () => {
|
|
2047
|
+
for (let index = 0; index < metodos_1.MetodoSaturar.length; index += 1) {
|
|
2048
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
2049
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2050
|
+
// Lexador
|
|
2051
|
+
const resultadoLexador = lexador.mapear([
|
|
2052
|
+
"lmht {",
|
|
2053
|
+
`${metodos_1.MetodoSaturar[index]}: saturar(${valoresAceitos[valIndex]});`,
|
|
2054
|
+
"}"
|
|
2055
|
+
]);
|
|
2056
|
+
// O Lexador não deve encontrar erros
|
|
2057
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2058
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2059
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2060
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2061
|
+
]));
|
|
2062
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2063
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2064
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2065
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2066
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2067
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2068
|
+
]));
|
|
2069
|
+
}
|
|
2070
|
+
else {
|
|
2071
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2072
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2073
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2074
|
+
]));
|
|
2075
|
+
}
|
|
2076
|
+
// Avaliador Sintático
|
|
2077
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2078
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2079
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2080
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2081
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2082
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2083
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2084
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSaturar[index]]);
|
|
2085
|
+
// Resolvedor
|
|
2086
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2087
|
+
// O Resolvedor deve resolver de acordo e traduzir saturar para saturate
|
|
2088
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSaturar[index]]);
|
|
2089
|
+
expect(resultadoResolvedor).toContain(`saturate(${valoresAceitos[valIndex]});`);
|
|
2090
|
+
}
|
|
2091
|
+
}
|
|
2092
|
+
});
|
|
2093
|
+
it('Atribuindo Método "sepia()"', () => {
|
|
2094
|
+
for (let index = 0; index < metodos_1.MetodoSepia.length; index += 1) {
|
|
2095
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
2096
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2097
|
+
// Lexador
|
|
2098
|
+
const resultadoLexador = lexador.mapear([
|
|
2099
|
+
"lmht {",
|
|
2100
|
+
`${metodos_1.MetodoSepia[index]}: sepia(${valoresAceitos[valIndex]});`,
|
|
2101
|
+
"}"
|
|
2102
|
+
]);
|
|
2103
|
+
// O Lexador não deve encontrar erros
|
|
2104
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2105
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2106
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2107
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2108
|
+
]));
|
|
2109
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2110
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2111
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2112
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2113
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2114
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2115
|
+
]));
|
|
2116
|
+
}
|
|
2117
|
+
else {
|
|
2118
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2119
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2120
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2121
|
+
]));
|
|
2122
|
+
}
|
|
2123
|
+
// Avaliador Sintático
|
|
2124
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2125
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2126
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2127
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2128
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2129
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2130
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2131
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSepia[index]]);
|
|
2132
|
+
// Resolvedor
|
|
2133
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2134
|
+
// O Resolvedor deve resolver de acordo e traduzir sépia para sepia
|
|
2135
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSepia[index]]);
|
|
2136
|
+
expect(resultadoResolvedor).toContain(`sepia(${valoresAceitos[valIndex]});`);
|
|
2137
|
+
}
|
|
2138
|
+
}
|
|
2139
|
+
});
|
|
2140
|
+
it('Atribuindo Método "translação()"', () => {
|
|
2141
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2142
|
+
const valoresAceitos = ['270graus', '18deg', '3.142rad', '0', '1'];
|
|
2143
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2144
|
+
// Lexador
|
|
2145
|
+
const resultadoLexador = lexador.mapear([
|
|
2146
|
+
"lmht {",
|
|
2147
|
+
`${metodos_1.MetodosTranslacao[index]}: translação(${valoresAceitos[valIndex]});`,
|
|
2148
|
+
"}"
|
|
2149
|
+
]);
|
|
2150
|
+
// O Lexador não deve encontrar erros
|
|
2151
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2152
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2153
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2154
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2155
|
+
]));
|
|
2156
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2157
|
+
if (valIndex <= 2) {
|
|
2158
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2159
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2160
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2161
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2162
|
+
]));
|
|
2163
|
+
}
|
|
2164
|
+
else {
|
|
2165
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2166
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2167
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2168
|
+
]));
|
|
2169
|
+
}
|
|
2170
|
+
// Avaliador Sintático
|
|
2171
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2172
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2173
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2174
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2175
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2176
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2177
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2178
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2179
|
+
// Resolvedor
|
|
2180
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2181
|
+
// O Resolvedor deve resolver de acordo e traduzir translação para translate
|
|
2182
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2183
|
+
if (valIndex !== 0) {
|
|
2184
|
+
expect(resultadoResolvedor).toContain(`translate(${valoresAceitos[valIndex]});`);
|
|
2185
|
+
}
|
|
2186
|
+
else {
|
|
2187
|
+
expect(resultadoResolvedor).toContain(`translate(270deg);`);
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2190
|
+
}
|
|
2191
|
+
});
|
|
2192
|
+
it('Atribuindo Método "translacao() com múltiplos valores"', () => {
|
|
2193
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2194
|
+
// Lexador
|
|
2195
|
+
const resultadoLexador = lexador.mapear([
|
|
2196
|
+
"lmht {",
|
|
2197
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao(100graus, 100graus);`,
|
|
2198
|
+
"}"
|
|
2199
|
+
]);
|
|
2200
|
+
// O Lexador não deve encontrar erros
|
|
2201
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2202
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2203
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2204
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2205
|
+
]));
|
|
2206
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
2207
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
2208
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2209
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2210
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2211
|
+
]));
|
|
2212
|
+
// Avaliador Sintático
|
|
2213
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2214
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2215
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2216
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2217
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2218
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2219
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2220
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2221
|
+
// Resolvedor
|
|
2222
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2223
|
+
// O Resolvedor deve resolver de acordo e traduzir translacao para translate
|
|
2224
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2225
|
+
expect(resultadoResolvedor).toContain(`translate(100deg, 100deg);`);
|
|
2226
|
+
}
|
|
2227
|
+
});
|
|
2228
|
+
it('Atribuindo Método "translação-3d()"', () => {
|
|
2229
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2230
|
+
// Lexador
|
|
2231
|
+
const resultadoLexador = lexador.mapear([
|
|
2232
|
+
"lmht {",
|
|
2233
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-3d(5ch, 0.4in, 5em);`,
|
|
2234
|
+
"}"
|
|
2235
|
+
]);
|
|
2236
|
+
// O Lexador não deve encontrar erros
|
|
2237
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2238
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2239
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2240
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2241
|
+
]));
|
|
2242
|
+
// O Lexador deve montar um objeto de comprimento 17
|
|
2243
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
2244
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2245
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2246
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2247
|
+
]));
|
|
2248
|
+
// Avaliador Sintático
|
|
2249
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2250
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2251
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2252
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2253
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2254
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2255
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2256
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2257
|
+
// Resolvedor
|
|
2258
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2259
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-3d para translate3d
|
|
2260
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2261
|
+
expect(resultadoResolvedor).toContain(`translate3d(5ch, 0.4in, 5em);`);
|
|
2262
|
+
}
|
|
2263
|
+
});
|
|
2264
|
+
it('Atribuindo Método "translação-3d() cobrindo todos os casos"', () => {
|
|
2265
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2266
|
+
const valoresAceitos = [
|
|
2267
|
+
'0',
|
|
2268
|
+
'0, 62px, 135px',
|
|
2269
|
+
'2.7rem, 0, 1rem',
|
|
2270
|
+
'5ch, 0.4in, 0',
|
|
2271
|
+
'0, 0, 135px',
|
|
2272
|
+
'0, 2.7rem, 0',
|
|
2273
|
+
'5ch, 0, 0',
|
|
2274
|
+
'42px, 62px, 135px',
|
|
2275
|
+
'0, 0, 0',
|
|
2276
|
+
];
|
|
2277
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2278
|
+
// Lexador
|
|
2279
|
+
const resultadoLexador = lexador.mapear([
|
|
2280
|
+
"lmht {",
|
|
2281
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-3d(${valoresAceitos[valIndex]});`,
|
|
2282
|
+
"}"
|
|
2283
|
+
]);
|
|
2284
|
+
// O Lexador não deve encontrar erros
|
|
2285
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2286
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2287
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2288
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2289
|
+
]));
|
|
2290
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2291
|
+
if (valIndex === 0) {
|
|
2292
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2293
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2294
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2295
|
+
]));
|
|
2296
|
+
}
|
|
2297
|
+
else if (valIndex === 1 || valIndex === 2 || valIndex === 3) {
|
|
2298
|
+
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
2299
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2300
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2301
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2302
|
+
]));
|
|
2303
|
+
}
|
|
2304
|
+
else if (valIndex === 4 || valIndex === 5 || valIndex === 6) {
|
|
2305
|
+
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
2306
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2307
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2308
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2309
|
+
]));
|
|
2310
|
+
}
|
|
2311
|
+
else if (valIndex === 7) {
|
|
2312
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
2313
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2314
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2315
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2316
|
+
]));
|
|
2317
|
+
}
|
|
2318
|
+
else {
|
|
2319
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
2320
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2321
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2322
|
+
]));
|
|
2323
|
+
}
|
|
2324
|
+
// Avaliador Sintático
|
|
2325
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2326
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2327
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2328
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2329
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2330
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2331
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2332
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2333
|
+
// Resolvedor
|
|
2334
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2335
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-3d para translate3d
|
|
2336
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2337
|
+
if (valIndex !== 8) {
|
|
2338
|
+
expect(resultadoResolvedor).toContain(`translate3d(${valoresAceitos[valIndex]});`);
|
|
2339
|
+
}
|
|
2340
|
+
else {
|
|
2341
|
+
expect(resultadoResolvedor).toContain(`translate3d(0);`);
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2344
|
+
}
|
|
2345
|
+
});
|
|
2346
|
+
it('Atribuindo Método "translação-eixo-z()"', () => {
|
|
2347
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2348
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2349
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2350
|
+
// Lexador
|
|
2351
|
+
const resultadoLexador = lexador.mapear([
|
|
2352
|
+
"lmht {",
|
|
2353
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-eixo-z(${valoresAceitos[valIndex]});`,
|
|
2354
|
+
"}"
|
|
2355
|
+
]);
|
|
2356
|
+
// O Lexador não deve encontrar erros
|
|
2357
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2358
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2359
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2360
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2361
|
+
]));
|
|
2362
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2363
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2364
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2365
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2366
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2367
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2368
|
+
]));
|
|
2369
|
+
}
|
|
2370
|
+
else {
|
|
2371
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2372
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2373
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2374
|
+
]));
|
|
2375
|
+
}
|
|
2376
|
+
// Avaliador Sintático
|
|
2377
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2378
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2379
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2380
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2381
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2382
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2383
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2384
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2385
|
+
// Resolvedor
|
|
2386
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2387
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-eixo-z para translateZ
|
|
2388
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2389
|
+
expect(resultadoResolvedor).toContain(`translateZ(${valoresAceitos[valIndex]});`);
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
});
|
|
2393
|
+
it('Atribuindo Método "translacao-eixo-z()"', () => {
|
|
2394
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2395
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2396
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2397
|
+
// Lexador
|
|
2398
|
+
const resultadoLexador = lexador.mapear([
|
|
2399
|
+
"lmht {",
|
|
2400
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-eixo-z(${valoresAceitos[valIndex]});`,
|
|
2401
|
+
"}"
|
|
2402
|
+
]);
|
|
2403
|
+
// O Lexador não deve encontrar erros
|
|
2404
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2405
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2406
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2407
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2408
|
+
]));
|
|
2409
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2410
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2411
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2412
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2413
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2414
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2415
|
+
]));
|
|
2416
|
+
}
|
|
2417
|
+
else {
|
|
2418
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2419
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2420
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2421
|
+
]));
|
|
2422
|
+
}
|
|
2423
|
+
// Avaliador Sintático
|
|
2424
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2425
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2426
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2427
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2428
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2429
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2430
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2431
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2432
|
+
// Resolvedor
|
|
2433
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2434
|
+
// O Resolvedor deve resolver de acordo e traduzir translacao-eixo-z para translateZ
|
|
2435
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2436
|
+
expect(resultadoResolvedor).toContain(`translateZ(${valoresAceitos[valIndex]});`);
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
2439
|
+
});
|
|
2440
|
+
it('Atribuindo Método "translação-horizontal()"', () => {
|
|
2441
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2442
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2443
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2444
|
+
// Lexador
|
|
2445
|
+
const resultadoLexador = lexador.mapear([
|
|
2446
|
+
"lmht {",
|
|
2447
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-horizontal(${valoresAceitos[valIndex]});`,
|
|
2448
|
+
"}"
|
|
2449
|
+
]);
|
|
2450
|
+
// O Lexador não deve encontrar erros
|
|
2451
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2452
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2453
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2454
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2455
|
+
]));
|
|
2456
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2457
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2458
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2459
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2460
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2461
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2462
|
+
]));
|
|
2463
|
+
}
|
|
2464
|
+
else {
|
|
2465
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2466
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2467
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2468
|
+
]));
|
|
2469
|
+
}
|
|
2470
|
+
// Avaliador Sintático
|
|
2471
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2472
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2473
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2474
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2475
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2476
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2477
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2478
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2479
|
+
// Resolvedor
|
|
2480
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2481
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-horizontal para translateX
|
|
2482
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2483
|
+
expect(resultadoResolvedor).toContain(`translateX(${valoresAceitos[valIndex]});`);
|
|
2484
|
+
}
|
|
2485
|
+
}
|
|
2486
|
+
});
|
|
2487
|
+
it('Atribuindo Método "translacao-horizontal()"', () => {
|
|
2488
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2489
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2490
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2491
|
+
// Lexador
|
|
2492
|
+
const resultadoLexador = lexador.mapear([
|
|
2493
|
+
"lmht {",
|
|
2494
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-horizontal(${valoresAceitos[valIndex]});`,
|
|
2495
|
+
"}"
|
|
2496
|
+
]);
|
|
2497
|
+
// O Lexador não deve encontrar erros
|
|
2498
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2499
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2500
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2501
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2502
|
+
]));
|
|
2503
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2504
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2505
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2506
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2507
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2508
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2509
|
+
]));
|
|
2510
|
+
}
|
|
2511
|
+
else {
|
|
2512
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2513
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2514
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2515
|
+
]));
|
|
2516
|
+
}
|
|
2517
|
+
// Avaliador Sintático
|
|
2518
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2519
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2520
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2521
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2522
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2523
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2524
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2525
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2526
|
+
// Resolvedor
|
|
2527
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2528
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-horizontal para translateX
|
|
2529
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2530
|
+
expect(resultadoResolvedor).toContain(`translateX(${valoresAceitos[valIndex]});`);
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
});
|
|
2534
|
+
it('Atribuindo Método "translação-vertical()"', () => {
|
|
2535
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2536
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2537
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2538
|
+
// Lexador
|
|
2539
|
+
const resultadoLexador = lexador.mapear([
|
|
2540
|
+
"lmht {",
|
|
2541
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-vertical(${valoresAceitos[valIndex]});`,
|
|
2542
|
+
"}"
|
|
2543
|
+
]);
|
|
2544
|
+
// O Lexador não deve encontrar erros
|
|
2545
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2546
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2547
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2548
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2549
|
+
]));
|
|
2550
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2551
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2552
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2553
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2554
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2555
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2556
|
+
]));
|
|
2557
|
+
}
|
|
2558
|
+
else {
|
|
2559
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2560
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2561
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2562
|
+
]));
|
|
2563
|
+
}
|
|
2564
|
+
// Avaliador Sintático
|
|
2565
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2566
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2567
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2568
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2569
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2570
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2571
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2572
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2573
|
+
// Resolvedor
|
|
2574
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2575
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-vertical para translateY
|
|
2576
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2577
|
+
expect(resultadoResolvedor).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
2578
|
+
}
|
|
2579
|
+
}
|
|
2580
|
+
});
|
|
2581
|
+
it('Atribuindo Método "translacao-vertical"', () => {
|
|
2582
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2583
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2584
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2585
|
+
// Lexador
|
|
2586
|
+
const resultadoLexador = lexador.mapear([
|
|
2587
|
+
"lmht {",
|
|
2588
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-vertical(${valoresAceitos[valIndex]});`,
|
|
2589
|
+
"}"
|
|
2590
|
+
]);
|
|
2591
|
+
// O Lexador não deve encontrar erros
|
|
2592
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2593
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2594
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2595
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2596
|
+
]));
|
|
2597
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2598
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2599
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2600
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2601
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2602
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2603
|
+
]));
|
|
2604
|
+
}
|
|
2605
|
+
else {
|
|
2606
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2607
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2608
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2609
|
+
]));
|
|
2610
|
+
}
|
|
2611
|
+
// Avaliador Sintático
|
|
2612
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2613
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2614
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2615
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2616
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2617
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2618
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2619
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2620
|
+
// Resolvedor
|
|
2621
|
+
const resultadoResolucao = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2622
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-vertical para translateY
|
|
2623
|
+
expect(resultadoResolucao).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2624
|
+
expect(resultadoResolucao).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
2625
|
+
}
|
|
2626
|
+
}
|
|
2627
|
+
});
|
|
2628
|
+
it('Atribuindo Método "variar-caractere()" - caso de sucesso', () => {
|
|
2629
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
2630
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
2631
|
+
// Lexador
|
|
2632
|
+
const resultadoLexador = lexador.mapear([
|
|
2633
|
+
"lmht {",
|
|
2634
|
+
`variacao-fonte-alternativa: variar-caractere(${valoresAceitos[index]});`,
|
|
2635
|
+
"}"
|
|
2636
|
+
]);
|
|
2637
|
+
// O Lexador não deve encontrar erros
|
|
2638
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2639
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2640
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2641
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2642
|
+
]));
|
|
2643
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
2644
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2645
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2646
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2647
|
+
]));
|
|
2648
|
+
// Avaliador Sintático
|
|
2649
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2650
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2651
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2652
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2653
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2654
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2655
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2656
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
2657
|
+
// Resolvedor
|
|
2658
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2659
|
+
// O Resolvedor deve resolver de acordo e traduzir variar-caractere para character-variant
|
|
2660
|
+
expect(resultadoResolvedor).toContain('font-variant-alternates');
|
|
2661
|
+
expect(resultadoResolvedor).toContain(`character-variant(${valoresAceitos[index]});`);
|
|
2662
|
+
}
|
|
2663
|
+
});
|
|
2664
|
+
it('Atribuindo Método "variar-caractere()" - caso de falha', () => {
|
|
2665
|
+
const valoresAceitos = ['0', '210', '100'];
|
|
2666
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
2667
|
+
// Lexador
|
|
2668
|
+
const resultadoLexador = lexador.mapear([
|
|
2669
|
+
"lmht {",
|
|
2670
|
+
`variacao-fonte-alternativa: variar-caractere(${valoresAceitos[index]});`,
|
|
2671
|
+
"}"
|
|
2672
|
+
]);
|
|
2673
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2674
|
+
expect(() => {
|
|
2675
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2676
|
+
}).toThrow('O valor da função variar-caractere() deve estar entre 1 e 99');
|
|
2677
|
+
}
|
|
2678
|
+
});
|
|
2679
|
+
it('Caso de Falha - Atribuindo método inexistente', () => {
|
|
2680
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
2681
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
2682
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
2683
|
+
// Lexador
|
|
2684
|
+
const resultadoLexador = lexador.mapear([
|
|
2685
|
+
"lmht {",
|
|
2686
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-vertical(${valoresAceitos[valIndex]});`,
|
|
2687
|
+
"}"
|
|
2688
|
+
]);
|
|
2689
|
+
// O Lexador não deve encontrar erros
|
|
2690
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
2691
|
+
// O valor recebido deve ser mapeado como METODO
|
|
2692
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2693
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
2694
|
+
]));
|
|
2695
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
2696
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
2697
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
2698
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2699
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2700
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
2701
|
+
]));
|
|
2702
|
+
}
|
|
2703
|
+
else {
|
|
2704
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
2705
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
2706
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
2707
|
+
]));
|
|
2708
|
+
}
|
|
2709
|
+
// Avaliador Sintático
|
|
2710
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
2711
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
2712
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
2713
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
2714
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
2715
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
2716
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
2717
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2718
|
+
// Resolvedor
|
|
2719
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
2720
|
+
// O Resolvedor deve resolver de acordo e traduzir translação-vertical para translateY
|
|
2721
|
+
expect(resultadoResolvedor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
2722
|
+
expect(resultadoResolvedor).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
2723
|
+
}
|
|
2724
|
+
}
|
|
2725
|
+
});
|
|
2726
|
+
it('Caso de Falha - Erro ao instanciar classe SeletorValor', () => {
|
|
2727
|
+
for (let index = 0; index < metodos_1.MetodosFolEs.length; index += 1) {
|
|
2728
|
+
const metodoIncorreto = metodos_1.MetodosFolEs[index].replace(metodos_1.MetodosFolEs[index][0], '');
|
|
2729
|
+
expect(() => {
|
|
2730
|
+
new seletor_valor_1.SeletorValor(metodoIncorreto, []);
|
|
2731
|
+
}).toThrow(`O valor \'${metodoIncorreto}\' não foi encontrado.`);
|
|
2732
|
+
}
|
|
2190
2733
|
});
|
|
2191
2734
|
});
|
|
2192
2735
|
//# sourceMappingURL=metodos.test.js.map
|