@designliquido/foles 0.1.2 → 0.2.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.
Files changed (72) hide show
  1. package/fontes/foles.d.ts +5 -1
  2. package/fontes/foles.js +20 -12
  3. package/fontes/foles.js.map +1 -1
  4. package/fontes/modificadores/dicionario/dicionario-modificadores.js +3 -3
  5. package/fontes/modificadores/dicionario/dicionario-modificadores.js.map +1 -1
  6. package/fontes/modificadores/{deslocamento-rotacao.d.ts → rotacao-deslocamento.d.ts} +1 -1
  7. package/fontes/modificadores/{deslocamento-rotacao.js → rotacao-deslocamento.js} +5 -5
  8. package/fontes/modificadores/{deslocamento-rotacao.js.map → rotacao-deslocamento.js.map} +1 -1
  9. package/package.json +1 -1
  10. package/testes/foles.test.d.ts +1 -0
  11. package/testes/foles.test.js +16 -0
  12. package/testes/foles.test.js.map +1 -0
  13. package/testes/listas/cores.d.ts +3 -0
  14. package/testes/listas/cores.js +44 -0
  15. package/testes/listas/cores.js.map +1 -0
  16. package/testes/listas/estilo.d.ts +3 -0
  17. package/testes/listas/estilo.js +50 -0
  18. package/testes/listas/estilo.js.map +1 -0
  19. package/testes/listas/palavras-reservadas.d.ts +3 -0
  20. package/testes/listas/palavras-reservadas.js +63 -0
  21. package/testes/listas/palavras-reservadas.js.map +1 -0
  22. package/testes/listas/posi/303/247/303/243o.d.ts +3 -0
  23. package/testes/listas/posi/303/247/303/243o.js +61 -0
  24. package/testes/listas/posi/303/247/303/243o.js.map +1 -0
  25. package/testes/listas/shorthand.d.ts +3 -0
  26. package/testes/listas/shorthand.js +80 -0
  27. package/testes/listas/shorthand.js.map +1 -0
  28. package/testes/listas/status.d.ts +3 -0
  29. package/testes/listas/status.js +91 -0
  30. package/testes/listas/status.js.map +1 -0
  31. package/testes/listas/url.d.ts +3 -0
  32. package/testes/listas/url.js +28 -0
  33. package/testes/listas/url.js.map +1 -0
  34. package/testes/listas/valor-global.d.ts +3 -0
  35. package/testes/listas/valor-global.js +149 -0
  36. package/testes/listas/valor-global.js.map +1 -0
  37. package/testes/listas/valor-numerico.d.ts +3 -0
  38. package/testes/listas/valor-numerico.js +49 -0
  39. package/testes/listas/valor-numerico.js.map +1 -0
  40. package/testes/listas/valor-quantificador.d.ts +3 -0
  41. package/testes/listas/valor-quantificador.js +184 -0
  42. package/testes/listas/valor-quantificador.js.map +1 -0
  43. package/testes/modificadores/cores.test.d.ts +1 -0
  44. package/testes/modificadores/cores.test.js +111 -0
  45. package/testes/modificadores/cores.test.js.map +1 -0
  46. package/testes/modificadores/estilo.test.d.ts +1 -0
  47. package/testes/modificadores/estilo.test.js +101 -0
  48. package/testes/modificadores/estilo.test.js.map +1 -0
  49. package/testes/modificadores/palavras-reservadas.test.d.ts +1 -0
  50. package/testes/modificadores/palavras-reservadas.test.js +20 -0
  51. package/testes/modificadores/palavras-reservadas.test.js.map +1 -0
  52. package/testes/modificadores/posi/303/247/303/243o.test.d.ts +1 -0
  53. package/testes/modificadores/posi/303/247/303/243o.test.js +101 -0
  54. package/testes/modificadores/posi/303/247/303/243o.test.js.map +1 -0
  55. package/testes/modificadores/shorthand.test.d.ts +1 -0
  56. package/testes/modificadores/shorthand.test.js +23 -0
  57. package/testes/modificadores/shorthand.test.js.map +1 -0
  58. package/testes/modificadores/status.test.d.ts +1 -0
  59. package/testes/modificadores/status.test.js +101 -0
  60. package/testes/modificadores/status.test.js.map +1 -0
  61. package/testes/modificadores/url.test.d.ts +1 -0
  62. package/testes/modificadores/url.test.js +97 -0
  63. package/testes/modificadores/url.test.js.map +1 -0
  64. package/testes/modificadores/valor-global.test.d.ts +1 -0
  65. package/testes/modificadores/valor-global.test.js +107 -0
  66. package/testes/modificadores/valor-global.test.js.map +1 -0
  67. package/testes/modificadores/valor-numerico.test.d.ts +1 -0
  68. package/testes/modificadores/valor-numerico.test.js +95 -0
  69. package/testes/modificadores/valor-numerico.test.js.map +1 -0
  70. package/testes/modificadores/valor-quantificador.test.d.ts +1 -0
  71. package/testes/modificadores/valor-quantificador.test.js +95 -0
  72. package/testes/modificadores/valor-quantificador.test.js.map +1 -0
@@ -0,0 +1,107 @@
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 lexador_1 = require("../../fontes/lexador");
8
+ const superclasse_1 = require("../../fontes/modificadores/superclasse");
9
+ const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
10
+ const tradutor_1 = require("../../fontes/tradutor");
11
+ const valor_global_1 = require("../listas/valor-global");
12
+ describe('Testando Seletores com VALORES GLOBAIS', () => {
13
+ const atributosCss = [
14
+ 'inherit',
15
+ 'initial',
16
+ 'revert',
17
+ 'revert-layer',
18
+ 'unset',
19
+ ];
20
+ const atributosFolEs = [
21
+ 'herdar',
22
+ 'inicial',
23
+ 'reverter',
24
+ 'reverter-camada',
25
+ 'desarmar'
26
+ ];
27
+ describe('Testes Unitários', () => {
28
+ let lexador;
29
+ let avaliador;
30
+ let tradutor;
31
+ beforeEach(() => {
32
+ lexador = new lexador_1.Lexador();
33
+ avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
34
+ tradutor = new tradutor_1.Tradutor();
35
+ });
36
+ it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
37
+ for (let index = 0; index < Object.keys(valor_global_1.ValorGlobal).length; index += 1) {
38
+ const seletor = new superclasse_1.SeletorModificador(valor_global_1.ValorGlobal[index], 'herdar', null);
39
+ // LEXADOR
40
+ const resultadoLexador = lexador.mapear([
41
+ "corpo {",
42
+ `${valor_global_1.ValorGlobal[index]}: ${seletor['valor']};`,
43
+ "}"
44
+ ]);
45
+ expect(resultadoLexador).toBeTruthy();
46
+ expect(resultadoLexador.simbolos).toHaveLength(7);
47
+ expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
48
+ expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
49
+ expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
50
+ expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
51
+ expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
52
+ // expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_GLOBAL }),
53
+ expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
54
+ expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
55
+ ]));
56
+ expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
57
+ expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
58
+ expect.objectContaining({ tipo: foles_1.default.NUMERO }),
59
+ ]));
60
+ // AVALIADOR SINTÁTICO
61
+ const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
62
+ expect(resultadoAvaliadorSintatico).toBeTruthy();
63
+ expect(resultadoAvaliadorSintatico).toHaveLength(1);
64
+ expect(resultadoAvaliadorSintatico[0].seletor).toBe('corpo');
65
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
66
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
67
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('herdar');
68
+ // TRADUTOR
69
+ const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
70
+ expect(resultadoTradutor).toBeTruthy();
71
+ expect(resultadoTradutor).toContain("body");
72
+ expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
73
+ expect(resultadoTradutor).toContain('inherit;');
74
+ }
75
+ });
76
+ it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
77
+ for (let index = 0; index < Object.keys(valor_global_1.ValorGlobal).length; index += 1) {
78
+ // LEXADOR - Valor Global não informado
79
+ const resultadoLexador = lexador.mapear([
80
+ "lmht {",
81
+ `${valor_global_1.ValorGlobal[index]}: ;`,
82
+ "}"
83
+ ]);
84
+ expect(resultadoLexador.simbolos).not.toHaveLength(7);
85
+ expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
86
+ // expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_GLOBAL }),
87
+ ]));
88
+ // Causar erro de digitação
89
+ const seletorIncorreto = valor_global_1.ValorGlobal[index].replace(valor_global_1.ValorGlobal[index][0], '');
90
+ const novoLexador = lexador.mapear([
91
+ "lmht {",
92
+ `${seletorIncorreto}: reverter;`,
93
+ "}"
94
+ ]);
95
+ // AVALIADOR SINTÁTICO - Erro esperado como retorno
96
+ expect(() => {
97
+ avaliador.analisar(novoLexador.simbolos);
98
+ }).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
99
+ // TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
100
+ expect(() => {
101
+ tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
102
+ }).toHaveLength(0);
103
+ }
104
+ });
105
+ });
106
+ });
107
+ //# sourceMappingURL=valor-global.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valor-global.test.js","sourceRoot":"","sources":["../../../testes/modificadores/valor-global.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,95 @@
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 lexador_1 = require("../../fontes/lexador");
8
+ const superclasse_1 = require("../../fontes/modificadores/superclasse");
9
+ const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
10
+ const tradutor_1 = require("../../fontes/tradutor");
11
+ const valor_numerico_1 = require("../listas/valor-numerico");
12
+ describe('Testando Seletores que recebem VALOR NUMÉRICO como atributo', () => {
13
+ const atributos = [
14
+ '1', '10', '0.5', '0'
15
+ ];
16
+ describe('Testes Unitários', () => {
17
+ let lexador;
18
+ let avaliador;
19
+ let tradutor;
20
+ beforeEach(() => {
21
+ lexador = new lexador_1.Lexador();
22
+ avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
23
+ tradutor = new tradutor_1.Tradutor();
24
+ });
25
+ it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
26
+ for (let index = 0; index < Object.keys(valor_numerico_1.ValorNumerico).length; index += 1) {
27
+ const seletor = new superclasse_1.SeletorModificador(valor_numerico_1.ValorNumerico[index], '3', '');
28
+ // LEXADOR
29
+ const resultadoLexador = lexador.mapear([
30
+ "corpo {",
31
+ `${valor_numerico_1.ValorNumerico[index]}: ${seletor['valor']};`,
32
+ "}"
33
+ ]);
34
+ expect(resultadoLexador).toBeTruthy();
35
+ expect(resultadoLexador.simbolos).toHaveLength(7);
36
+ expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
37
+ expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
38
+ expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
39
+ expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
40
+ expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
41
+ expect.objectContaining({ tipo: foles_1.default.NUMERO }),
42
+ expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
43
+ expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
44
+ ]));
45
+ expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
46
+ expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
47
+ ]));
48
+ // AVALIADOR SINTÁTICO
49
+ const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
50
+ expect(resultadoAvaliadorSintatico).toBeTruthy();
51
+ expect(resultadoAvaliadorSintatico).toHaveLength(1);
52
+ expect(resultadoAvaliadorSintatico[0].seletor).toBe('corpo');
53
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
54
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
55
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('3');
56
+ // TRADUTOR
57
+ const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
58
+ expect(resultadoTradutor).toBeTruthy();
59
+ expect(resultadoTradutor).toContain("body");
60
+ expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
61
+ expect(resultadoTradutor).toContain("3;");
62
+ }
63
+ });
64
+ it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
65
+ for (let index = 0; index < Object.keys(valor_numerico_1.ValorNumerico).length; index += 1) {
66
+ // LEXADOR - valor numérico não informado
67
+ const resultadoLexador = lexador.mapear([
68
+ "lmht {",
69
+ `${valor_numerico_1.ValorNumerico[index]}: ;`,
70
+ "}"
71
+ ]);
72
+ expect(resultadoLexador.simbolos).not.toHaveLength(7);
73
+ expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
74
+ expect.objectContaining({ tipo: foles_1.default.NUMERO }),
75
+ ]));
76
+ // Causar erro de digitação
77
+ const seletorIncorreto = valor_numerico_1.ValorNumerico[index].replace(valor_numerico_1.ValorNumerico[index][0], '');
78
+ const novoLexador = lexador.mapear([
79
+ "lmht {",
80
+ `${seletorIncorreto}: 1.5;`,
81
+ "}"
82
+ ]);
83
+ // AVALIADOR SINTÁTICO - Erro esperado como retorno
84
+ expect(() => {
85
+ avaliador.analisar(novoLexador.simbolos);
86
+ }).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
87
+ // TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
88
+ expect(() => {
89
+ tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
90
+ }).toHaveLength(0);
91
+ }
92
+ });
93
+ });
94
+ });
95
+ //# sourceMappingURL=valor-numerico.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valor-numerico.test.js","sourceRoot":"","sources":["../../../testes/modificadores/valor-numerico.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,95 @@
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 lexador_1 = require("../../fontes/lexador");
8
+ const superclasse_1 = require("../../fontes/modificadores/superclasse");
9
+ const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
10
+ const tradutor_1 = require("../../fontes/tradutor");
11
+ const valor_quantificador_1 = require("../listas/valor-quantificador");
12
+ describe('Testando Seletores que recebem VALOR e QUANTIFICADOR como atributos', () => {
13
+ const atributos = [
14
+ '12px', '1mm', '2em', '150cm',
15
+ ];
16
+ describe('Testes Unitários', () => {
17
+ let lexador;
18
+ let avaliador;
19
+ let tradutor;
20
+ beforeEach(() => {
21
+ lexador = new lexador_1.Lexador();
22
+ avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
23
+ tradutor = new tradutor_1.Tradutor();
24
+ });
25
+ it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
26
+ for (let index = 0; index < Object.keys(valor_quantificador_1.ValorQuantificador).length; index += 1) {
27
+ const seletor = new superclasse_1.SeletorModificador(valor_quantificador_1.ValorQuantificador[index], '12', 'px');
28
+ // LEXADOR
29
+ const resultadoLexador = lexador.mapear([
30
+ "lmht {",
31
+ `${valor_quantificador_1.ValorQuantificador[index]}: ${seletor['valor']}${seletor['quantificador']};`,
32
+ "}"
33
+ ]);
34
+ expect(resultadoLexador).toBeTruthy();
35
+ expect(resultadoLexador.simbolos).toHaveLength(8);
36
+ expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
37
+ expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
38
+ expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
39
+ expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
40
+ expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
41
+ expect.objectContaining({ tipo: foles_1.default.NUMERO }),
42
+ expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
43
+ expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
44
+ expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
45
+ ]));
46
+ // AVALIADOR SINTÁTICO
47
+ const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
48
+ expect(resultadoAvaliadorSintatico).toBeTruthy();
49
+ expect(resultadoAvaliadorSintatico).toHaveLength(1);
50
+ expect(resultadoAvaliadorSintatico[0].seletor).toBe('lmht');
51
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
52
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
53
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('12');
54
+ expect(resultadoAvaliadorSintatico[0].modificadores[0].quantificador).toStrictEqual('px');
55
+ // TRADUTOR
56
+ const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
57
+ expect(resultadoTradutor).toBeTruthy();
58
+ expect(resultadoTradutor).toContain("html");
59
+ expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
60
+ expect(resultadoTradutor).toContain("12px");
61
+ }
62
+ });
63
+ it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
64
+ for (let index = 0; index < Object.keys(valor_quantificador_1.ValorQuantificador).length; index += 1) {
65
+ // LEXADOR - valor e quantificador não informados
66
+ const resultadoLexador = lexador.mapear([
67
+ "lmht {",
68
+ `${valor_quantificador_1.ValorQuantificador[index]}: ;`,
69
+ "}"
70
+ ]);
71
+ expect(resultadoLexador.simbolos).not.toHaveLength(8);
72
+ expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
73
+ expect.objectContaining({ tipo: foles_1.default.NUMERO }),
74
+ expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
75
+ ]));
76
+ // Causar erro de digitação
77
+ const seletorIncorreto = valor_quantificador_1.ValorQuantificador[index].replace(valor_quantificador_1.ValorQuantificador[index][0], '');
78
+ const novoLexador = lexador.mapear([
79
+ "lmht {",
80
+ `${seletorIncorreto}: 12px;`,
81
+ "}"
82
+ ]);
83
+ // AVALIADOR SINTÁTICO - Erro esperado como retorno
84
+ expect(() => {
85
+ avaliador.analisar(novoLexador.simbolos);
86
+ }).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
87
+ // TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
88
+ expect(() => {
89
+ tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
90
+ }).toHaveLength(0);
91
+ }
92
+ });
93
+ });
94
+ });
95
+ //# sourceMappingURL=valor-quantificador.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valor-quantificador.test.js","sourceRoot":"","sources":["../../../testes/modificadores/valor-quantificador.test.ts"],"names":[],"mappings":"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"}