UNPKG

@designliquido/foles

Version:

Linguagem de folhas de estilo para documentos em geral em português

84 lines 3.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Tradutor = void 0; const declaracoes_1 = require("../declaracoes"); const seletor_estruturas_html_1 = require("../estruturas/seletor-estruturas-html"); const superclasse_1 = require("../modificadores/superclasse"); const seletores_1 = require("../seletores"); const estruturas_html_1 = __importDefault(require("./estruturas-html")); class Tradutor { constructor() { this.linha = 1; this.atual = 1; } calcularPragmasSeletor(traducaoSeletor) { const novosPragmasSeletor = { linha: this.linha, colunaInicial: this.atual, colunaFinal: this.atual, }; this.atual += traducaoSeletor.length; novosPragmasSeletor.colunaFinal = this.atual - 1; return novosPragmasSeletor; } calcularPragmasModificador(modificador) { const novosPragmasModificador = { linha: this.linha, colunaInicial: this.atual, colunaFinal: this.atual, }; this.atual += modificador.propriedadeCss.length; novosPragmasModificador.colunaFinal = this.atual - 1; return novosPragmasModificador; } traduzirSeletorEstrutura(seletor) { const seletorLmht = String(seletor.estrutura.constructor.name).toLowerCase(); const traducaoSeletor = estruturas_html_1.default[seletorLmht]; const novosPragmasSeletor = this.calcularPragmasSeletor(traducaoSeletor); const estruturaTraduzida = new seletor_estruturas_html_1.SeletorEstruturasHtml(traducaoSeletor, seletor.pragmas); const seletorTraduzido = new seletores_1.SeletorEstrutura(estruturaTraduzida, seletor.pseudoclasse); seletorTraduzido.pragmasTraducao = novosPragmasSeletor; return seletorTraduzido; } traduzirModificador(modificador) { this.linha = modificador.pragmas.linha; const novosPragmasModificador = this.calcularPragmasModificador(modificador); const modificadorTraduzido = new superclasse_1.SeletorModificador(Array.isArray(modificador.nomeFoles) ? modificador.nomeFoles[0] : modificador.nomeFoles, modificador.valores, modificador.pragmas, modificador.variavel); modificadorTraduzido.pragmasTraducao = novosPragmasModificador; return modificadorTraduzido; } traduzir(declaracoes) { this.linha = 1; this.atual = 1; const declaracoesTraduzidas = []; for (const declaracao of declaracoes) { const seletoresTraduzidos = []; const modificadoresTraduzidos = []; if (declaracao instanceof declaracoes_1.BlocoDeclaracao) { for (const seletor of declaracao.seletores) { this.linha = seletor.pragmas.linha; if (seletor instanceof seletores_1.SeletorEstrutura) { seletoresTraduzidos.push(this.traduzirSeletorEstrutura(seletor)); continue; } seletoresTraduzidos.push(seletor); } for (const modificador of declaracao.modificadores) { modificadoresTraduzidos.push(this.traduzirModificador(modificador)); } declaracoesTraduzidas.push(new declaracoes_1.BlocoDeclaracao(seletoresTraduzidos, modificadoresTraduzidos, [])); } else if (declaracao instanceof declaracoes_1.DeclaracaoVariavel) { declaracoesTraduzidas.push(declaracao); } } return declaracoesTraduzidas; } } exports.Tradutor = Tradutor; //# sourceMappingURL=tradutor.js.map