@designliquido/foles 0.9.0 → 0.9.2

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.
Files changed (198) hide show
  1. package/fontes/avaliador-sintatico/avaliador-sintatico.js +13 -1
  2. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  3. package/fontes/foles.js +1 -1
  4. package/fontes/lexador/palavras-reservadas/foles.d.ts +3 -0
  5. package/fontes/lexador/palavras-reservadas/foles.js +3 -0
  6. package/fontes/lexador/palavras-reservadas/foles.js.map +1 -1
  7. package/fontes/modificadores/ajustar-tamanho-fonte.js +7 -4
  8. package/fontes/modificadores/ajustar-tamanho-fonte.js.map +1 -1
  9. package/fontes/modificadores/animacao.js +9 -2
  10. package/fontes/modificadores/animacao.js.map +1 -1
  11. package/fontes/modificadores/area-mascara.js +2 -4
  12. package/fontes/modificadores/area-mascara.js.map +1 -1
  13. package/fontes/modificadores/atraso-transicao.js +2 -4
  14. package/fontes/modificadores/atraso-transicao.js.map +1 -1
  15. package/fontes/modificadores/atributos/cores.js +4 -4
  16. package/fontes/modificadores/atributos/cores.js.map +1 -1
  17. package/fontes/modificadores/atributos/fontes.d.ts +3 -0
  18. package/fontes/modificadores/atributos/fontes.js +19 -0
  19. package/fontes/modificadores/atributos/fontes.js.map +1 -0
  20. package/fontes/modificadores/atributos/gerais.js +171 -171
  21. package/fontes/modificadores/atributos/gerais.js.map +1 -1
  22. package/fontes/modificadores/borda-direita.js +7 -24
  23. package/fontes/modificadores/borda-direita.js.map +1 -1
  24. package/fontes/modificadores/borda-em-bloco.js +7 -20
  25. package/fontes/modificadores/borda-em-bloco.js.map +1 -1
  26. package/fontes/modificadores/borda-em-linha.js +7 -20
  27. package/fontes/modificadores/borda-em-linha.js.map +1 -1
  28. package/fontes/modificadores/borda-esquerda.js +7 -22
  29. package/fontes/modificadores/borda-esquerda.js.map +1 -1
  30. package/fontes/modificadores/borda-inferior.js +7 -22
  31. package/fontes/modificadores/borda-inferior.js.map +1 -1
  32. package/fontes/modificadores/borda-superior.js +7 -22
  33. package/fontes/modificadores/borda-superior.js.map +1 -1
  34. package/fontes/modificadores/borda.js +7 -22
  35. package/fontes/modificadores/borda.js.map +1 -1
  36. package/fontes/modificadores/coluna-em-grade.js +2 -4
  37. package/fontes/modificadores/coluna-em-grade.js.map +1 -1
  38. package/fontes/modificadores/colunas.js +10 -4
  39. package/fontes/modificadores/colunas.js.map +1 -1
  40. package/fontes/modificadores/comportamento-rolagem-mouse.js +9 -2
  41. package/fontes/modificadores/comportamento-rolagem-mouse.js.map +1 -1
  42. package/fontes/modificadores/contorno.js +7 -22
  43. package/fontes/modificadores/contorno.js.map +1 -1
  44. package/fontes/modificadores/cor-borda.js +9 -2
  45. package/fontes/modificadores/cor-borda.js.map +1 -1
  46. package/fontes/modificadores/cor-destaque.js.map +1 -1
  47. package/fontes/modificadores/decoracao-texto.js +7 -22
  48. package/fontes/modificadores/decoracao-texto.js.map +1 -1
  49. package/fontes/modificadores/deslocamento.js +7 -1
  50. package/fontes/modificadores/deslocamento.js.map +1 -1
  51. package/fontes/modificadores/duracao-animacao.js +2 -4
  52. package/fontes/modificadores/duracao-animacao.js.map +1 -1
  53. package/fontes/modificadores/enfase-texto.d.ts +1 -1
  54. package/fontes/modificadores/enfase-texto.js +10 -2
  55. package/fontes/modificadores/enfase-texto.js.map +1 -1
  56. package/fontes/modificadores/espacamento-letras.js +7 -0
  57. package/fontes/modificadores/espacamento-letras.js.map +1 -1
  58. package/fontes/modificadores/espacamento.js +7 -1
  59. package/fontes/modificadores/espacamento.js.map +1 -1
  60. package/fontes/modificadores/estilo-borda.js +9 -2
  61. package/fontes/modificadores/estilo-borda.js.map +1 -1
  62. package/fontes/modificadores/estilo-fonte.js +8 -2
  63. package/fontes/modificadores/estilo-fonte.js.map +1 -1
  64. package/fontes/modificadores/estilo-lista.js +7 -1
  65. package/fontes/modificadores/estilo-lista.js.map +1 -1
  66. package/fontes/modificadores/eventos-ponteiro.js +12 -0
  67. package/fontes/modificadores/eventos-ponteiro.js.map +1 -1
  68. package/fontes/modificadores/fim-borda-em-bloco.js +7 -20
  69. package/fontes/modificadores/fim-borda-em-bloco.js.map +1 -1
  70. package/fontes/modificadores/fim-borda-em-linha.js +7 -20
  71. package/fontes/modificadores/fim-borda-em-linha.js.map +1 -1
  72. package/fontes/modificadores/flex-fluxo.js +9 -2
  73. package/fontes/modificadores/flex-fluxo.js.map +1 -1
  74. package/fontes/modificadores/flex.js +7 -1
  75. package/fontes/modificadores/flex.js.map +1 -1
  76. package/fontes/modificadores/fonte-texto.js +31 -10
  77. package/fontes/modificadores/fonte-texto.js.map +1 -1
  78. package/fontes/modificadores/fonte.js +8 -1
  79. package/fontes/modificadores/fonte.js.map +1 -1
  80. package/fontes/modificadores/fundo.js +7 -20
  81. package/fontes/modificadores/fundo.js.map +1 -1
  82. package/fontes/modificadores/grade.js +10 -2
  83. package/fontes/modificadores/grade.js.map +1 -1
  84. package/fontes/modificadores/imagem-borda.js +24 -3
  85. package/fontes/modificadores/imagem-borda.js.map +1 -1
  86. package/fontes/modificadores/inicio-borda-em-bloco.js +7 -20
  87. package/fontes/modificadores/inicio-borda-em-bloco.js.map +1 -1
  88. package/fontes/modificadores/inicio-borda-em-linha.js +7 -20
  89. package/fontes/modificadores/inicio-borda-em-linha.js.map +1 -1
  90. package/fontes/modificadores/insercao.js +7 -1
  91. package/fontes/modificadores/insercao.js.map +1 -1
  92. package/fontes/modificadores/largura-borda.js +7 -1
  93. package/fontes/modificadores/largura-borda.js.map +1 -1
  94. package/fontes/modificadores/linha-em-grade.js +3 -5
  95. package/fontes/modificadores/linha-em-grade.js.map +1 -1
  96. package/fontes/modificadores/margem-em-bloco.js +7 -1
  97. package/fontes/modificadores/margem-em-bloco.js.map +1 -1
  98. package/fontes/modificadores/margem-em-linha.js +7 -1
  99. package/fontes/modificadores/margem-em-linha.js.map +1 -1
  100. package/fontes/modificadores/margem-rolagem-mouse.js +7 -1
  101. package/fontes/modificadores/margem-rolagem-mouse.js.map +1 -1
  102. package/fontes/modificadores/margem.js +7 -1
  103. package/fontes/modificadores/margem.js.map +1 -1
  104. package/fontes/modificadores/mascara.js +9 -2
  105. package/fontes/modificadores/mascara.js.map +1 -1
  106. package/fontes/modificadores/modelo-em-grade.js +8 -2
  107. package/fontes/modificadores/modelo-em-grade.js.map +1 -1
  108. package/fontes/modificadores/posicionar-conteudo.js +9 -2
  109. package/fontes/modificadores/posicionar-conteudo.js.map +1 -1
  110. package/fontes/modificadores/posicionar-itens.js +9 -2
  111. package/fontes/modificadores/posicionar-itens.js.map +1 -1
  112. package/fontes/modificadores/posicionar-se.js +9 -2
  113. package/fontes/modificadores/posicionar-se.js.map +1 -1
  114. package/fontes/modificadores/proporcao-tela.js +2 -4
  115. package/fontes/modificadores/proporcao-tela.js.map +1 -1
  116. package/fontes/modificadores/raio-borda.js +2 -6
  117. package/fontes/modificadores/raio-borda.js.map +1 -1
  118. package/fontes/modificadores/recuo-em-bloco-rolagem-mouse.js +7 -1
  119. package/fontes/modificadores/recuo-em-bloco-rolagem-mouse.js.map +1 -1
  120. package/fontes/modificadores/recuo-em-bloco.js +7 -1
  121. package/fontes/modificadores/recuo-em-bloco.js.map +1 -1
  122. package/fontes/modificadores/recuo-em-linha-rolagem-mouse.js +7 -1
  123. package/fontes/modificadores/recuo-em-linha-rolagem-mouse.js.map +1 -1
  124. package/fontes/modificadores/recuo-em-linha.js +7 -1
  125. package/fontes/modificadores/recuo-em-linha.js.map +1 -1
  126. package/fontes/modificadores/recuo-rolagem-mouse.js +7 -1
  127. package/fontes/modificadores/recuo-rolagem-mouse.js.map +1 -1
  128. package/fontes/modificadores/recuo.js +10 -4
  129. package/fontes/modificadores/recuo.js.map +1 -1
  130. package/fontes/modificadores/recursos-fonte.js +26 -2
  131. package/fontes/modificadores/recursos-fonte.js.map +1 -1
  132. package/fontes/modificadores/regras-coluna.js +7 -24
  133. package/fontes/modificadores/regras-coluna.js.map +1 -1
  134. package/fontes/modificadores/reiniciar-tudo.js +1 -2
  135. package/fontes/modificadores/reiniciar-tudo.js.map +1 -1
  136. package/fontes/modificadores/sintetizar-fonte.js +9 -4
  137. package/fontes/modificadores/sintetizar-fonte.js.map +1 -1
  138. package/fontes/modificadores/sombra-caixa.js +2 -20
  139. package/fontes/modificadores/sombra-caixa.js.map +1 -1
  140. package/fontes/modificadores/tamanho-grade.js +2 -4
  141. package/fontes/modificadores/tamanho-grade.js.map +1 -1
  142. package/fontes/modificadores/transicao.js +8 -2
  143. package/fontes/modificadores/transicao.js.map +1 -1
  144. package/fontes/modificadores/validacoes/atribuicao-abreviada.d.ts +3 -0
  145. package/fontes/modificadores/validacoes/atribuicao-abreviada.js +50 -0
  146. package/fontes/modificadores/validacoes/atribuicao-abreviada.js.map +1 -0
  147. package/fontes/modificadores/validacoes/fonte.d.ts +3 -0
  148. package/fontes/modificadores/validacoes/fonte.js +17 -0
  149. package/fontes/modificadores/validacoes/fonte.js.map +1 -0
  150. package/fontes/modificadores/validacoes/multiplos-qualitativos.d.ts +3 -0
  151. package/fontes/modificadores/validacoes/multiplos-qualitativos.js +44 -0
  152. package/fontes/modificadores/validacoes/multiplos-qualitativos.js.map +1 -0
  153. package/fontes/modificadores/variacao-fonte.js +9 -2
  154. package/fontes/modificadores/variacao-fonte.js.map +1 -1
  155. package/fontes/modificadores/vazamento.js +9 -2
  156. package/fontes/modificadores/vazamento.js.map +1 -1
  157. package/fontes/serializadores/serializador.js +48 -17
  158. package/fontes/serializadores/serializador.js.map +1 -1
  159. package/package.json +1 -1
  160. package/testes/listas/atribuicao-abreviada.d.ts +1 -0
  161. package/testes/listas/atribuicao-abreviada.js +116 -1
  162. package/testes/listas/atribuicao-abreviada.js.map +1 -1
  163. package/testes/listas/metodos-css.d.ts +1 -0
  164. package/testes/listas/metodos-css.js +39 -1
  165. package/testes/listas/metodos-css.js.map +1 -1
  166. package/testes/listas/metodos.d.ts +1 -0
  167. package/testes/listas/metodos.js +46 -1
  168. package/testes/listas/metodos.js.map +1 -1
  169. package/testes/listas/pseudoclasses.js +8 -0
  170. package/testes/listas/pseudoclasses.js.map +1 -1
  171. package/testes/listas/valor-quantificador.js +1 -2
  172. package/testes/listas/valor-quantificador.js.map +1 -1
  173. package/testes/modificadores/atribuicao-abreviada.test.js +31 -2
  174. package/testes/modificadores/atribuicao-abreviada.test.js.map +1 -1
  175. package/testes/modificadores/cores.test.js +35 -0
  176. package/testes/modificadores/cores.test.js.map +1 -1
  177. package/testes/modificadores/estilo.test.js +42 -2
  178. package/testes/modificadores/estilo.test.js.map +1 -1
  179. package/testes/modificadores/metodos-reversos.test.js +9 -0
  180. package/testes/modificadores/metodos-reversos.test.js.map +1 -1
  181. package/testes/modificadores/metodos.test.js +56 -0
  182. package/testes/modificadores/metodos.test.js.map +1 -1
  183. package/testes/modificadores/posicao.test.js +38 -0
  184. package/testes/modificadores/posicao.test.js.map +1 -1
  185. package/testes/modificadores/pseudoclasses.test.js +10 -0
  186. package/testes/modificadores/pseudoclasses.test.js.map +1 -1
  187. package/testes/modificadores/status.test.js +36 -0
  188. package/testes/modificadores/status.test.js.map +1 -1
  189. package/testes/modificadores/suporte-variaveis.test.js.map +1 -1
  190. package/testes/modificadores/valor-global.test.js +38 -0
  191. package/testes/modificadores/valor-global.test.js.map +1 -1
  192. package/testes/modificadores/valor-numerico.test.js +36 -0
  193. package/testes/modificadores/valor-numerico.test.js.map +1 -1
  194. package/testes/modificadores/valor-quantificador.test.js +55 -0
  195. package/testes/modificadores/valor-quantificador.test.js.map +1 -1
  196. package/testes/modificadores/valores-especificos.test.d.ts +1 -0
  197. package/testes/modificadores/valores-especificos.test.js +354 -0
  198. package/testes/modificadores/valores-especificos.test.js.map +1 -0
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const avaliador_sintatico_1 = require("../../fontes/avaliador-sintatico");
7
+ const importador_1 = require("../../fontes/importador");
8
+ const lexador_1 = require("../../fontes/lexador");
9
+ const superclasse_1 = require("../../fontes/modificadores/superclasse");
10
+ const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
11
+ const serializadores_1 = require("../../fontes/serializadores");
12
+ const declaracoes_1 = require("../../fontes/declaracoes");
13
+ const fontes_1 = require("../../fontes/modificadores/atributos/fontes");
14
+ describe('Testando Seletores com VALORES ESPECÍFICOS', () => {
15
+ describe('Testes Unitários', () => {
16
+ let lexador;
17
+ let importador;
18
+ let avaliadorSintatico;
19
+ let tradutor;
20
+ beforeEach(() => {
21
+ lexador = new lexador_1.Lexador();
22
+ importador = new importador_1.Importador(lexador);
23
+ avaliadorSintatico = new avaliador_sintatico_1.AvaliadorSintatico(importador);
24
+ tradutor = new serializadores_1.Serializador();
25
+ });
26
+ it('Casos de sucesso - Valores SVG', () => {
27
+ const valoresSVG = [
28
+ {
29
+ folEs: "pinturaVisivel",
30
+ css: "visiblePainted",
31
+ },
32
+ {
33
+ folEs: "pinturaVisível",
34
+ css: "visiblePainted",
35
+ },
36
+ {
37
+ folEs: "preenchimentoVisivel",
38
+ css: "visibleFill",
39
+ },
40
+ {
41
+ folEs: "preenchimentoVisível",
42
+ css: "visibleFill",
43
+ },
44
+ {
45
+ folEs: "tracoVisivel",
46
+ css: "visibleStroke",
47
+ },
48
+ {
49
+ folEs: "traçoVisível",
50
+ css: "visibleStroke",
51
+ },
52
+ {
53
+ folEs: "pintado",
54
+ css: "painted",
55
+ },
56
+ {
57
+ folEs: "preencher",
58
+ css: "fill",
59
+ },
60
+ {
61
+ folEs: "tracado",
62
+ css: "stroke",
63
+ },
64
+ {
65
+ folEs: "traçado",
66
+ css: "stroke",
67
+ },
68
+ {
69
+ folEs: "delimitarCaixa",
70
+ css: "bounding-box",
71
+ },
72
+ {
73
+ folEs: "tudo",
74
+ css: "all",
75
+ },
76
+ ];
77
+ for (let index = 0; index < valoresSVG.length; index += 1) {
78
+ const seletor = new superclasse_1.SeletorModificador('eventos-ponteiro', valoresSVG[index].folEs, null);
79
+ // A classe do modificador deve aceitar o valor SVG
80
+ expect(seletor['valor']).toEqual(valoresSVG[index].folEs);
81
+ // Lexador
82
+ const resultadoLexador = lexador.mapear([
83
+ "corpo {",
84
+ `eventos-ponteiro: ${valoresSVG[index].folEs};`,
85
+ "}"
86
+ ]);
87
+ // O Lexador deve montar um objeto de comprimento 7 sem retornar nenhum erro
88
+ expect(resultadoLexador.simbolos).toHaveLength(7);
89
+ expect(resultadoLexador.erros).toHaveLength(0);
90
+ // O valor recebido deve ser mapeado como IDENTIFICADOR
91
+ expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
92
+ expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
93
+ ]));
94
+ // Avaliador Sintático
95
+ const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
96
+ // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
97
+ expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
98
+ const primeiroResultado = resultadoAvaliadorSintatico[0];
99
+ expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
100
+ const primeiroResultadoTipado = primeiroResultado;
101
+ expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
102
+ expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
103
+ expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
104
+ // Serializador
105
+ const resultadoSerializador = tradutor.serializar(resultadoAvaliadorSintatico);
106
+ // O Serializador deve traduzir os valores SVG de acordo
107
+ expect(resultadoSerializador).toContain(seletor['propriedadeCss']);
108
+ expect(resultadoSerializador).toContain(valoresSVG[index].css);
109
+ }
110
+ });
111
+ it('Caso de sucesso - Valor numérico precedido de ponto', () => {
112
+ const valoresComPonto = [
113
+ '.2rem',
114
+ '.5em',
115
+ '.10px',
116
+ ];
117
+ for (let index = 0; index < valoresComPonto.length; index += 1) {
118
+ // Lexador
119
+ const resultadoLexador = lexador.mapear([
120
+ "lmht {",
121
+ `espacamento-letras: ${valoresComPonto[index]};`,
122
+ "}"
123
+ ]);
124
+ // O Lexador deve montar um objeto de comprimento 9 sem retornar nenhum erro
125
+ expect(resultadoLexador.simbolos).toHaveLength(9);
126
+ expect(resultadoLexador.erros).toHaveLength(0);
127
+ // Avaliador Sintático
128
+ const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
129
+ // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
130
+ expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
131
+ const primeiroResultado = resultadoAvaliadorSintatico[0];
132
+ expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
133
+ const primeiroResultadoTipado = primeiroResultado;
134
+ expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
135
+ // Tradutor
136
+ const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
137
+ expect(resultadoTradutor).toContain(valoresComPonto[index]);
138
+ }
139
+ });
140
+ it('Caso de sucesso - Valores do tipo feature-tag-value', () => {
141
+ const valoresTagValue = [
142
+ '"c2sc", "hist"',
143
+ '"c2sc"',
144
+ ];
145
+ for (let index = 0; index < valoresTagValue.length; index += 1) {
146
+ // Lexador
147
+ const resultadoLexador = lexador.mapear([
148
+ "lmht {",
149
+ `recursos-fonte: ${valoresTagValue[index]};`,
150
+ "}"
151
+ ]);
152
+ if (index === 0) {
153
+ expect(resultadoLexador.simbolos).toHaveLength(9);
154
+ }
155
+ else {
156
+ expect(resultadoLexador.simbolos).toHaveLength(7);
157
+ }
158
+ // Avaliador Sintático
159
+ const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
160
+ // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
161
+ expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
162
+ const primeiroResultado = resultadoAvaliadorSintatico[0];
163
+ expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
164
+ const primeiroResultadoTipado = primeiroResultado;
165
+ expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
166
+ expect(primeiroResultadoTipado.modificadores[0].valor).toContain(valoresTagValue[index]);
167
+ // Tradutor
168
+ const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
169
+ expect(resultadoTradutor).toContain(valoresTagValue[index]);
170
+ }
171
+ });
172
+ it('Caso de falha - Valor feature-tag-value com mais de 4 caracteres', () => {
173
+ // Lexador
174
+ const resultadoLexador = lexador.mapear([
175
+ "lmht {",
176
+ `recursos-fonte: "cs2af";`,
177
+ "}"
178
+ ]);
179
+ // Avaliador Sintático
180
+ expect(() => {
181
+ avaliadorSintatico.analisar(resultadoLexador.simbolos);
182
+ }).toThrowError(`Propriedade 'recursos-fonte' com valor "cs2af" inválido`);
183
+ });
184
+ it('Caso de sucesso - Valores do tipo fonte de texto', () => {
185
+ const valoresFonte = [];
186
+ Object.values(fontes_1.fontes).forEach((fonte) => valoresFonte.push(fonte));
187
+ for (let index = 0; index < valoresFonte.length; index += 1) {
188
+ // Lexador
189
+ const resultadoLexador = lexador.mapear([
190
+ "lmht {",
191
+ `fonte-texto: "${valoresFonte[index]}";`,
192
+ "}"
193
+ ]);
194
+ expect(resultadoLexador.simbolos).toHaveLength(7);
195
+ // Avaliador Sintático
196
+ const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
197
+ // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
198
+ expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
199
+ const primeiroResultado = resultadoAvaliadorSintatico[0];
200
+ expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
201
+ const primeiroResultadoTipado = primeiroResultado;
202
+ expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
203
+ expect(primeiroResultadoTipado.modificadores[0].valor).toContain(valoresFonte[index]);
204
+ // Tradutor
205
+ const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
206
+ expect(resultadoTradutor).toContain('font-family');
207
+ expect(resultadoTradutor).toContain(valoresFonte[index]);
208
+ }
209
+ });
210
+ it('Caso de sucesso - Valor fonte de texto com 2º parâmetro de grafia', () => {
211
+ const valoresGrafia = [
212
+ "serif",
213
+ "sans-serif",
214
+ "monospace",
215
+ "cursive",
216
+ "fantasy",
217
+ "system-ui",
218
+ "ui-serif",
219
+ "ui-sans-serif",
220
+ "ui-monospace",
221
+ "ui-rounded",
222
+ "math",
223
+ "emoji",
224
+ "fangsong",
225
+ ];
226
+ for (let index = 0; index < valoresGrafia.length; index += 1) {
227
+ // Lexador
228
+ const resultadoLexador = lexador.mapear([
229
+ "lmht {",
230
+ `fonte-texto: "Arial", ${valoresGrafia[index]};`,
231
+ "}"
232
+ ]);
233
+ expect(resultadoLexador.simbolos).toHaveLength(9);
234
+ // Avaliador Sintático
235
+ const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
236
+ // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
237
+ expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
238
+ const primeiroResultado = resultadoAvaliadorSintatico[0];
239
+ expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
240
+ const primeiroResultadoTipado = primeiroResultado;
241
+ expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
242
+ expect(primeiroResultadoTipado.modificadores[0].valor).toContain(valoresGrafia[index]);
243
+ // Tradutor
244
+ const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
245
+ expect(resultadoTradutor).toContain('font-family');
246
+ expect(resultadoTradutor).toContain(valoresGrafia[index]);
247
+ }
248
+ });
249
+ it('Caso de sucesso - Valor fonte de texto com 2º parâmetro de grafia em português', () => {
250
+ const valoresGrafia = [
251
+ {
252
+ css: "serif",
253
+ foles: "serifa",
254
+ },
255
+ {
256
+ css: "sans-serif",
257
+ foles: "sem-serifa",
258
+ },
259
+ {
260
+ css: "monospace",
261
+ foles: "monoespaço",
262
+ },
263
+ {
264
+ css: "monospace",
265
+ foles: "monoespaco",
266
+ },
267
+ {
268
+ css: "cursive",
269
+ foles: "cursiva",
270
+ },
271
+ {
272
+ css: "fantasy",
273
+ foles: "fantasia",
274
+ },
275
+ {
276
+ css: "system-ui",
277
+ foles: "sistema-iu",
278
+ },
279
+ {
280
+ css: "ui-serif",
281
+ foles: "iu-serifa",
282
+ },
283
+ {
284
+ css: "ui-sans-serif",
285
+ foles: "iu-sem-serifa",
286
+ },
287
+ {
288
+ css: "ui-monospace",
289
+ foles: "iu-monoespaço",
290
+ },
291
+ {
292
+ css: "ui-monospace",
293
+ foles: "iu-monoespaco",
294
+ },
295
+ {
296
+ css: "ui-rounded",
297
+ foles: "iu-arredondada",
298
+ },
299
+ {
300
+ css: "math",
301
+ foles: "matematica",
302
+ },
303
+ {
304
+ css: "math",
305
+ foles: "matemática",
306
+ },
307
+ {
308
+ css: "emoji",
309
+ foles: "emoji",
310
+ },
311
+ {
312
+ css: "fangsong",
313
+ foles: "serifa-chinesa",
314
+ },
315
+ ];
316
+ for (let index = 0; index < Object.keys(valoresGrafia).length; index += 1) {
317
+ // Lexador
318
+ const resultadoLexador = lexador.mapear([
319
+ "lmht {",
320
+ `fonte-texto: "Arial", ${valoresGrafia[index].foles};`,
321
+ "}"
322
+ ]);
323
+ expect(resultadoLexador.simbolos).toHaveLength(9);
324
+ // Avaliador Sintático
325
+ const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
326
+ // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
327
+ expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
328
+ const primeiroResultado = resultadoAvaliadorSintatico[0];
329
+ expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
330
+ const primeiroResultadoTipado = primeiroResultado;
331
+ expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
332
+ expect(primeiroResultadoTipado.modificadores[0].valor).toContain(valoresGrafia[index].foles);
333
+ // Tradutor
334
+ const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
335
+ expect(resultadoTradutor).toContain('font-family');
336
+ expect(resultadoTradutor).toContain(valoresGrafia[index].css);
337
+ }
338
+ });
339
+ it('Caso de falha - Atribuição de valor fonte inválido', () => {
340
+ // Lexador
341
+ const resultadoLexador = lexador.mapear([
342
+ "lmht {",
343
+ `fonte-texto: reservada;`,
344
+ "}"
345
+ ]);
346
+ expect(resultadoLexador.simbolos).toHaveLength(7);
347
+ // Avaliador Sintático
348
+ expect(() => {
349
+ avaliadorSintatico.analisar(resultadoLexador.simbolos);
350
+ }).toThrow("Propriedade 'fonte-texto' com valor reservada inválido");
351
+ });
352
+ });
353
+ });
354
+ //# sourceMappingURL=valores-especificos.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valores-especificos.test.js","sourceRoot":"","sources":["../../../testes/modificadores/valores-especificos.test.ts"],"names":[],"mappings":";;;;;AAAA,0EAAsE;AACtE,wDAAqD;AAErD,kDAA+C;AAC/C,wEAA4E;AAC5E,iFAAmE;AACnE,gEAA2D;AAC3D,0DAA2D;AAC3D,wEAAqE;AAErE,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACxD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,IAAI,OAAyB,CAAC;QAC9B,IAAI,UAA+B,CAAC;QACpC,IAAI,kBAA+C,CAAC;QACpD,IAAI,QAAsB,CAAC;QAE3B,UAAU,CAAC,GAAG,EAAE;YACZ,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;YACxB,UAAU,GAAG,IAAI,uBAAU,CAAC,OAAO,CAAC,CAAC;YACrC,kBAAkB,GAAG,IAAI,wCAAkB,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,GAAG,IAAI,6BAAY,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,UAAU,GAAG;gBACf;oBACI,KAAK,EAAE,gBAAgB;oBACvB,GAAG,EAAE,gBAAgB;iBACxB;gBACD;oBACI,KAAK,EAAE,gBAAgB;oBACvB,GAAG,EAAE,gBAAgB;iBACxB;gBACD;oBACI,KAAK,EAAE,sBAAsB;oBAC7B,GAAG,EAAE,aAAa;iBACrB;gBACD;oBACI,KAAK,EAAE,sBAAsB;oBAC7B,GAAG,EAAE,aAAa;iBACrB;gBACD;oBACI,KAAK,EAAE,cAAc;oBACrB,GAAG,EAAE,eAAe;iBACvB;gBACD;oBACI,KAAK,EAAE,cAAc;oBACrB,GAAG,EAAE,eAAe;iBACvB;gBACD;oBACI,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,SAAS;iBACjB;gBACD;oBACI,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,MAAM;iBACd;gBACD;oBACI,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,QAAQ;iBAChB;gBACD;oBACI,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,QAAQ;iBAChB;gBACD;oBACI,KAAK,EAAE,gBAAgB;oBACvB,GAAG,EAAE,cAAc;iBACtB;gBACD;oBACI,KAAK,EAAE,MAAM;oBACb,GAAG,EAAE,KAAK;iBACb;aACJ,CAAC;YAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,IAAI,gCAAkB,CAAC,kBAAkB,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAE1F,mDAAmD;gBACnD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;gBAE1D,UAAU;gBACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,SAAS;oBACT,qBAAqB,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG;oBAC/C,GAAG;iBACN,CAAC,CAAC;gBAEH,4EAA4E;gBAC5E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAE/C,uDAAuD;gBACvD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CACrC,MAAM,CAAC,eAAe,CAAC;oBACnB,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC;iBACnE,CAAC,CACL,CAAC;gBAEF,sBAAsB;gBACtB,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE3F,qEAAqE;gBACrE,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,6BAAe,CAAC,CAAC;gBAC1D,MAAM,uBAAuB,GAAG,iBAAoC,CAAC;gBACrE,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CACpE,OAAO,CAAC,WAAW,CAAC,CACvB,CAAC;gBACF,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CACzE,OAAO,CAAC,gBAAgB,CAAC,CAC5B,CAAC;gBAEF,eAAe;gBACf,MAAM,qBAAqB,GAAG,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;gBAE/E,wDAAwD;gBACxD,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACnE,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,MAAM,eAAe,GAAG;gBACpB,OAAO;gBACP,MAAM;gBACN,OAAO;aACV,CAAC;YAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC7D,UAAU;gBACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,QAAQ;oBACR,uBAAuB,eAAe,CAAC,KAAK,CAAC,GAAG;oBAChD,GAAG;iBACN,CAAC,CAAC;gBAEH,4EAA4E;gBAC5E,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAE/C,sBAAsB;gBACtB,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE3F,qEAAqE;gBACrE,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,6BAAe,CAAC,CAAC;gBAC1D,MAAM,uBAAuB,GAAG,iBAAoC,CAAC;gBACrE,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAE/E,WAAW;gBACX,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;gBAC3E,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,MAAM,eAAe,GAAG;gBACpB,gBAAgB;gBAChB,QAAQ;aACX,CAAC;YAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC7D,UAAU;gBACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,QAAQ;oBACR,mBAAmB,eAAe,CAAC,KAAK,CAAC,GAAG;oBAC5C,GAAG;iBACN,CAAC,CAAC;gBAEH,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtD,CAAC;gBAED,sBAAsB;gBACtB,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE3F,qEAAqE;gBACrE,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,6BAAe,CAAC,CAAC;gBAC1D,MAAM,uBAAuB,GAAG,iBAAoC,CAAC;gBACrE,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBAEzF,WAAW;gBACX,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;gBAC3E,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YACxE,UAAU;YACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;gBACpC,QAAQ;gBACR,0BAA0B;gBAC1B,GAAG;aACN,CAAC,CAAC;YAEH,sBAAsB;YACtB,MAAM,CAAC,GAAG,EAAE;gBACR,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,YAAY,CAAC,yDAAyD,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,eAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC1D,UAAU;gBACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,QAAQ;oBACR,iBAAiB,YAAY,CAAC,KAAK,CAAC,IAAI;oBACxC,GAAG;iBACN,CAAC,CAAC;gBAEH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAElD,sBAAsB;gBACtB,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE3F,qEAAqE;gBACrE,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,6BAAe,CAAC,CAAC;gBAC1D,MAAM,uBAAuB,GAAG,iBAAoC,CAAC;gBACrE,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBAEtF,WAAW;gBACX,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;gBAC3E,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,MAAM,aAAa,GAAG;gBAClB,OAAO;gBACP,YAAY;gBACZ,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,WAAW;gBACX,UAAU;gBACV,eAAe;gBACf,cAAc;gBACd,YAAY;gBACZ,MAAM;gBACN,OAAO;gBACP,UAAU;aACb,CAAC;YAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC3D,UAAU;gBACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,QAAQ;oBACR,yBAAyB,aAAa,CAAC,KAAK,CAAC,GAAG;oBAChD,GAAG;iBACN,CAAC,CAAC;gBAEH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAElD,sBAAsB;gBACtB,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE3F,qEAAqE;gBACrE,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,6BAAe,CAAC,CAAC;gBAC1D,MAAM,uBAAuB,GAAG,iBAAoC,CAAC;gBACrE,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBAEvF,WAAW;gBACX,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;gBAC3E,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;YACtF,MAAM,aAAa,GAAG;gBAClB;oBACI,GAAG,EAAE,OAAO;oBACZ,KAAK,EAAE,QAAQ;iBAClB;gBACD;oBACI,GAAG,EAAE,YAAY;oBACjB,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,GAAG,EAAE,WAAW;oBAChB,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,GAAG,EAAE,WAAW;oBAChB,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,SAAS;iBACnB;gBACD;oBACI,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,UAAU;iBACpB;gBACD;oBACI,GAAG,EAAE,WAAW;oBAChB,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,WAAW;iBACrB;gBACD;oBACI,GAAG,EAAE,eAAe;oBACpB,KAAK,EAAE,eAAe;iBACzB;gBACD;oBACI,GAAG,EAAE,cAAc;oBACnB,KAAK,EAAE,eAAe;iBACzB;gBACD;oBACI,GAAG,EAAE,cAAc;oBACnB,KAAK,EAAE,eAAe;iBACzB;gBACD;oBACI,GAAG,EAAE,YAAY;oBACjB,KAAK,EAAE,gBAAgB;iBAC1B;gBACD;oBACI,GAAG,EAAE,MAAM;oBACX,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,GAAG,EAAE,MAAM;oBACX,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,GAAG,EAAE,OAAO;oBACZ,KAAK,EAAE,OAAO;iBACjB;gBACD;oBACI,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,gBAAgB;iBAC1B;aACJ,CAAC;YAGF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBACxE,UAAU;gBACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,QAAQ;oBACR,yBAAyB,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG;oBACtD,GAAG;iBACN,CAAC,CAAC;gBAEH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAElD,sBAAsB;gBACtB,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE3F,qEAAqE;gBACrE,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,6BAAe,CAAC,CAAC;gBAC1D,MAAM,uBAAuB,GAAG,iBAAoC,CAAC;gBACrE,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;gBAE7F,WAAW;gBACX,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;gBAC3E,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,UAAU;YACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;gBACpC,QAAQ;gBACR,yBAAyB;gBACzB,GAAG;aACN,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAElD,sBAAsB;YACtB,MAAM,CAAC,GAAG,EAAE;gBACR,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;QAEzE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}