1define(function (){ 2 return { 3 getTrataMedidas: function () { 4 if (document.querySelector('[data-altura]')){ 5 habilitaComportamentoDeRetiradaDeFoco(); 6 habilitaComportamentoDeDigitacao(); 7 } 8 } 9 } 10 11 function recuperaLimitesMedidas(){ 12 const variacaoMedidas = { 13 inputAlturaMin : 1, 14 inputAlturaMax : 100, 15 inputLarguraMin : 8, 16 inputLarguraMax : 100, 17 inputComprimentoMin : 13, 18 inputComprimentoMax : 100 19 } 20 return variacaoMedidas 21 } 22 23 function recuperaInputs(){ 24 const ListaDeInput = { 25 inputAltura : document.querySelector('[data-altura]'), 26 inputLargura : document.querySelector('[data-largura]'), 27 inputComprimento : document.querySelector('[data-comprimento]') 28 } 29 return ListaDeInput 30 } 31 32 function habilitaComportamentoDeRetiradaDeFoco() { 33 const ObjListaDeInputs = recuperaInputs(); 34 const ObjListaDeMedidas = recuperaLimitesMedidas(); 35 36 for (const chaveElemento of Reflect.ownKeys(ObjListaDeInputs)) { 37 ObjListaDeInputs[chaveElemento].addEventListener("blur", () => { 38 if (ObjListaDeInputs[chaveElemento].value == ""){ 39 return true 40 } 41 if (validaMedidaMaxima(ObjListaDeInputs)){ 42 return false 43 } 44 validaLimitesValor(ObjListaDeInputs, ObjListaDeMedidas); 45 }); 46 } 47 } 48 function validaMedidaMaxima(ObjListaDeInputs){ 49 let soma = 0; 50 for (const chaveElemento of Reflect.ownKeys(ObjListaDeInputs)) { 51 if (ObjListaDeInputs[chaveElemento].value != ""){ 52 soma += parseInt(ObjListaDeInputs[chaveElemento].value); 53 } 54 } 55 for (const chaveElemento of Reflect.ownKeys(ObjListaDeInputs)) { 56 if (soma > 200){ 57 apresentaMensagemDeResposta('A soma das dimensões não pode exceder 200 cm'); 58 adicionaClasse(ObjListaDeInputs[chaveElemento],"item-obrigatorio"); 59 return true 60 } else { 61 removeClasse(ObjListaDeInputs[chaveElemento],"item-obrigatorio"); 62 removeMensagemDeResposta('A soma das dimensões não pode exceder 200 cm') 63 return false 64 } 65 } 66 } 67 68 function validaLimitesValor(ObjListaDeInputs, ObjListaDeMedidas){ 69 for (const chaveElemento of Reflect.ownKeys(ObjListaDeInputs)) { 70 let min = chaveElemento + 'Min'; 71 let max = chaveElemento + 'Max'; 72 if (ObjListaDeInputs[chaveElemento].value == ""){ 73 continue; 74 } 75 if (parseInt(ObjListaDeInputs[chaveElemento].value) >= ObjListaDeMedidas[min] 76 && parseInt(ObjListaDeInputs[chaveElemento].value) <= ObjListaDeMedidas[max] ){ 77 removeClasse(ObjListaDeInputs[chaveElemento], "item-obrigatorio"); 78 removeMensagemDeResposta("Valor do campo "+ ObjListaDeInputs[chaveElemento].name + " está fora dos limites estabelecidos"); 79 } else { 80 apresentaMensagemDeResposta("Valor do campo "+ ObjListaDeInputs[chaveElemento].name + " está fora dos limites estabelecidos"); 81 adicionaClasse(ObjListaDeInputs[chaveElemento], "item-obrigatorio"); 82 } 83 } 84 } 85 86 function habilitaComportamentoDeDigitacao(){ 87 const ObjListaDeInputs = recuperaInputs(); 88 for (const chaveElemento of Reflect.ownKeys(ObjListaDeInputs)) { 89 ObjListaDeInputs[chaveElemento].addEventListener("keyup", () => { 90 removeMensagemDeResposta("Informe os dados corretamente para realizar a simulação"); 91 removeMensagemDeResposta("Valor do campo "+ ObjListaDeInputs[chaveElemento].name + " está fora dos limites estabelecidos"); 92 removeMensagemDeResposta('A soma das dimensões não pode exceder 200 cm') 93 removeClasse(ObjListaDeInputs[chaveElemento], "item-obrigatorio"); 94 }) 95 } 96 } 97 98 function adicionaClasse(campo, classe){ 99 campo.classList.add(classe); 100 } 101 102 function removeClasse(campo, classe){ 103 campo.classList.remove(classe); 104 } 105 106 // // O campo label-simulacao="label-simula" irá receber todas as mensagens de erro, 107 // // vou personalizar as mensagens em relação aos campos que foram preenchidas de maneira 108 // // errada. 109 // function apresentaMensagemDeResposta(mensagem){ 110 // const labelSimulacao = document.querySelector('[label-simulacao]'); 111 // if (labelSimulacao.textContent.search(mensagem) < 0){ 112 // labelSimulacao.textContent = labelSimulacao.textContent + mensagem; 113 // } 114 // } 115 116 // function removeMensagemDeResposta(mensagem){ 117 // const labelSimulacao = document.querySelector('[label-simulacao]'); 118 // labelSimulacao.textContent = labelSimulacao.textContent.replace(mensagem, '');; 119 // } 120 121 function apresentaMensagemDeResposta(mensagem){ 122 const ListaMensagensErro = document.querySelector('.lista-mensagem-erro'); 123 const listaParagrafoErro = document.querySelectorAll('[data-paragrafo-erro]') 124 if (listaParagrafoErro.length){ 125 for (let i=0; i < listaParagrafoErro.length; i++){ 126 if (listaParagrafoErro[i].textContent == mensagem){ 127 return false 128 } 129 } 130 } 131 const quebraLinha = document.createElement('p'); 132 quebraLinha.dataset.paragrafoErro = 'mensagemparagrafoErro'; 133 quebraLinha.classList.add('paragrafo-mensagem-erro'); 134 quebraLinha.innerHTML = mensagem; 135 ListaMensagensErro.appendChild(quebraLinha); 136 } 137 138 function removeMensagemDeResposta(mensagem){ 139 const listaParagrafoErro = document.querySelectorAll('[data-paragrafo-erro]') 140 if (listaParagrafoErro.length){ 141 for (let i=0; i < listaParagrafoErro.length; i++){ 142 if (listaParagrafoErro[i].textContent == mensagem){ 143 listaParagrafoErro[i].outerHTML = '' 144 } 145 } 146 } 147 } 148 149 150});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.