let selections = { genero: "", estetica: "", visual: "", tipoCamera: "", marca: "", modelo: "", lente: "", abertura: "", velocidade: "", iso: "", formato: "", efeito: "", iluminacao: "", sujeito: "", artMedium: "", camera: "", color: "", dimensionality: "", display: "", geometry: "", intangibles: "", lighting: "", material: "", postProcessing: "", artist: "", style: "", aspectRatio: "", acao: "", local: "", detalhesFundo: "", vestuario: "", perspectiva: "", epocaTema: "", expressao: "", motivo: "", detalhesCena: "", // Novo campo adicionado }; function populateSelect(selector, items) { const $select = $(selector); $select.empty(); $select.append(''); items.forEach((item) => { $select.append( `` ); }); $select.select2({ templateResult: formatOption, templateSelection: formatOption, allowClear: true, placeholder: "Selecione uma opção ou deixe em branco", }); // Inicializa tooltips no dropdown quando aberto $select.on("select2:open", function () { setTimeout(() => { // Remove tooltips antigos $(".select2-results__option .fas.fa-question-circle").tooltip("dispose"); // Inicializa novos tooltips nos ícones $(".select2-results__option .fas.fa-question-circle").each(function () { const $this = $(this); const description = $this.attr("title"); if (description) { $this.tooltip({ placement: "right", trigger: "hover", container: "body", boundary: "window", }); } }); }, 0); }); // Remove todos os tooltips ao fechar o dropdown $select.on("select2:close", function () { setTimeout(() => { $(".tooltip").remove(); }, 100); }); // Inicializa tooltips na opção selecionada ao mudar $select.on("change", function () { $(".select2-selection__rendered .fas.fa-question-circle").tooltip( "dispose" ); $(".select2-selection__rendered .fas.fa-question-circle").each(function () { const $this = $(this); const description = $this.attr("title"); if (description) { $this.tooltip({ placement: "bottom", trigger: "hover", container: "body", boundary: "window", }); } }); }); } function formatOption(option) { // Caso seja o placeholder vazio if (!option.id && option.text === "") { return $("Selecione uma opção ou deixe em branco"); } // Obtém a descrição da opção const description = option.element ? option.element.dataset.description || "" : ""; // Cria o elemento de texto const $text = $(`${option.text}`); // Cria um container flex para alinhar texto e ícone const $option = $( '' ); $option.append($text); // Se houver descrição, adiciona o ícone com tooltip if (description) { const $icon = $(''); $icon.attr("data-bs-toggle", "tooltip").attr("title", description); $option.append($icon); } return $option; } function updatePrompt() { let prompt = []; if (selections.genero) prompt.push(`Uma foto de ${selections.genero.toLowerCase()}`); if (selections.estetica && selections.estetica !== "Nenhum") prompt.push(`no estilo ${selections.estetica.toLowerCase()}`); if (selections.visual && selections.visual !== "Nenhum") prompt.push(`mostrando ${selections.visual.toLowerCase()}`); if (selections.sujeito) prompt.push(`de ${selections.sujeito}`); if (selections.acao) prompt.push(`realizando a ação ${selections.acao.toLowerCase()}`); if (selections.local) prompt.push(`em um local ${selections.local.toLowerCase()}`); if (selections.detalhesFundo) prompt.push( `com detalhes de fundo como ${selections.detalhesFundo.toLowerCase()}` ); if (selections.vestuario) prompt.push(`vestindo ${selections.vestuario.toLowerCase()}`); if (selections.perspectiva) prompt.push(`na perspectiva ${selections.perspectiva.toLowerCase()}`); if (selections.epocaTema) prompt.push(`com tema ou época ${selections.epocaTema.toLowerCase()}`); if (selections.expressao) prompt.push(`com expressão ${selections.expressao.toLowerCase()}`); if (selections.motivo) prompt.push(`por motivo de ${selections.motivo.toLowerCase()}`); if (selections.detalhesCena) prompt.push( `com detalhes da cena como ${selections.detalhesCena.toLowerCase()}` ); if (selections.aspectRatio) prompt.push(`em aspect ratio ${selections.aspectRatio.toLowerCase()}`); if ( selections.tipoCamera === "Câmera Profissional" && selections.marca && selections.modelo ) { prompt.push( `tirada com uma câmera ${selections.marca} ${selections.modelo}` ); if (selections.lente) prompt.push(`lente ${selections.lente}`); if (selections.abertura) prompt.push(`abertura ${selections.abertura}`); if (selections.velocidade) prompt.push(`velocidade do obturador ${selections.velocidade}`); if (selections.iso) prompt.push(`ISO ${selections.iso}`); if (selections.formato) prompt.push(`em formato ${selections.formato}`); } else if (selections.tipoCamera) { prompt.push(`tirada com ${selections.tipoCamera.toLowerCase()}`); } if (selections.efeito && selections.efeito !== "Nenhum") prompt.push(`com efeito ${selections.efeito.toLowerCase()}`); if (selections.iluminacao && selections.iluminacao !== "Nenhum") prompt.push(`com iluminação ${selections.iluminacao.toLowerCase()}`); if (selections.artMedium) prompt.push(`em meio artístico ${selections.artMedium.toLowerCase()}`); if (selections.camera) prompt.push(`usando câmera ${selections.camera.toLowerCase()}`); if (selections.color) prompt.push(`em ${selections.color.toLowerCase()}`); if (selections.dimensionality) prompt.push(`em ${selections.dimensionality.toLowerCase()}`); if (selections.display) prompt.push(`exibido em ${selections.display.toLowerCase()}`); if (selections.geometry) prompt.push(`com geometria ${selections.geometry.toLowerCase()}`); if (selections.intangibles) prompt.push(`evocando ${selections.intangibles.toLowerCase()}`); if (selections.lighting) prompt.push(`com iluminação ${selections.lighting.toLowerCase()}`); if (selections.material) prompt.push(`feito de ${selections.material.toLowerCase()}`); if (selections.postProcessing) prompt.push( `com pós-processamento ${selections.postProcessing.toLowerCase()}` ); if (selections.artist) prompt.push(`arte inspirada em ${selections.artist.toLowerCase()}`); if (selections.style) prompt.push(`no estilo de ${selections.style.toLowerCase()}`); $(".textarea-prompt").val(prompt.length ? `${prompt.join(", ")}.` : ""); } $(document).ready(function () { $(".select2").select2({ allowClear: true, placeholder: "Selecione uma opção ou deixe em branco", }); populateSelect(".select-genero", options.generos); populateSelect(".select-estetica", options.esteticas); populateSelect(".select-visual", options.visuais); populateSelect(".select-tipo-camera", options.tiposCamera); populateSelect(".select-marca", options.marcas); populateSelect(".select-modelo", options.modelos.Canon); populateSelect(".select-lente", options.lentes.Canon); populateSelect(".select-abertura", options.aberturas); populateSelect(".select-velocidade", options.velocidades); populateSelect(".select-iso", options.isos); populateSelect(".select-formato", options.formatos); populateSelect(".select-efeito", options.efeitos); populateSelect(".select-iluminacao", options.iluminacoes); // Novo select para iluminação populateSelect(".select-art-medium", options.artMedium); populateSelect(".select-camera", options.camera); populateSelect(".select-color", options.color); populateSelect(".select-dimensionality", options.dimensionalities); populateSelect(".select-display", options.displays); populateSelect(".select-geometry", options.geometries); populateSelect(".select-intangibles", options.intangibles); populateSelect(".select-lighting", options.lightings); populateSelect(".select-material", options.materials); populateSelect(".select-post-processing", options.postProcessings); populateSelect(".select-artist", options.artists); populateSelect(".select-style", options.styles); populateSelect(".select-aspect-ratio", options.aspectRatios); populateSelect(".select-perspectiva", options.perspectivas); $(".select-marca").on("change", function () { const marca = $(this).val() || ""; selections.marca = marca; populateSelect( ".select-modelo", options.modelos[marca] || [{ value: "", text: "Nenhum", description: "" }] ); populateSelect( ".select-lente", options.lentes[marca] || [{ value: "", text: "Nenhum", description: "" }] ); selections.modelo = ""; selections.lente = ""; updatePrompt(); }); $(".select-genero").on("change", function () { selections.genero = $(this).val() || ""; updatePrompt(); }); $(".select-estetica").on("change", function () { selections.estetica = $(this).val() || ""; updatePrompt(); }); $(".select-visual").on("change", function () { selections.visual = $(this).val() || ""; updatePrompt(); }); $(".select-tipo-camera").on("change", function () { selections.tipoCamera = $(this).val() || ""; if (selections.tipoCamera === "Câmera Profissional") { $("#camera-profissional-options").show(); } else { $("#camera-profissional-options").hide(); } updatePrompt(); }); $(".select-modelo").on("change", function () { selections.modelo = $(this).val() || ""; updatePrompt(); }); $(".select-lente").on("change", function () { selections.lente = $(this).val() || ""; updatePrompt(); }); $(".select-abertura").on("change", function () { selections.abertura = $(this).val() || ""; updatePrompt(); }); $(".select-velocidade").on("change", function () { selections.velocidade = $(this).val() || ""; updatePrompt(); }); $(".select-iso").on("change", function () { selections.iso = $(this).val() || ""; updatePrompt(); }); $(".select-formato").on("change", function () { selections.formato = $(this).val() || ""; updatePrompt(); }); $(".select-efeito").on("change", function () { selections.efeito = $(this).val() || ""; updatePrompt(); }); $(".select-iluminacao").on("change", function () { // Alterado para select selections.iluminacao = $(this).val() || ""; updatePrompt(); }); $("#select-sujeito").on("input", function () { selections.sujeito = $(this).val(); updatePrompt(); }); $(".select-art-medium").on("change", function () { selections.artMedium = $(this).val() || ""; updatePrompt(); }); $(".select-camera").on("change", function () { selections.camera = $(this).val() || ""; updatePrompt(); }); $(".select-color").on("change", function () { selections.color = $(this).val() || ""; updatePrompt(); }); $(".select-dimensionality").on("change", function () { selections.dimensionality = $(this).val() || ""; updatePrompt(); }); $(".select-display").on("change", function () { selections.display = $(this).val() || ""; updatePrompt(); }); $(".select-geometry").on("change", function () { selections.geometry = $(this).val() || ""; updatePrompt(); }); $(".select-intangibles").on("change", function () { selections.intangibles = $(this).val() || ""; updatePrompt(); }); $(".select-lighting").on("change", function () { selections.lighting = $(this).val() || ""; updatePrompt(); }); $(".select-material").on("change", function () { selections.material = $(this).val() || ""; updatePrompt(); }); $(".select-post-processing").on("change", function () { selections.postProcessing = $(this).val() || ""; updatePrompt(); }); $(".select-artist").on("change", function () { selections.artist = $(this).val() || ""; updatePrompt(); }); $(".select-style").on("change", function () { selections.style = $(this).val() || ""; updatePrompt(); }); $(".select-aspect-ratio").on("change", function () { selections.aspectRatio = $(this).val() || ""; updatePrompt(); }); $("#input-acao").on("input", function () { selections.acao = $(this).val(); updatePrompt(); }); $("#input-local").on("input", function () { selections.local = $(this).val(); updatePrompt(); }); $("#input-detalhes-fundo").on("input", function () { selections.detalhesFundo = $(this).val(); updatePrompt(); }); $("#input-vestuario").on("input", function () { selections.vestuario = $(this).val(); updatePrompt(); }); $(".select-perspectiva").on("change", function () { selections.perspectiva = $(this).val() || ""; updatePrompt(); }); $("#input-epoca-tema").on("input", function () { selections.epocaTema = $(this).val(); updatePrompt(); }); $("#input-expressao").on("input", function () { selections.expressao = $(this).val(); updatePrompt(); }); $("#input-motivo").on("input", function () { selections.motivo = $(this).val(); updatePrompt(); }); $("#input-detalhes-cena").on("input", function () { // Novo listener selections.detalhesCena = $(this).val(); updatePrompt(); }); $("#copyBtn").on("click", function (event) { event.preventDefault(); event.stopPropagation(); const promptText = $("#textarea-prompt").val(); if (promptText) { navigator.clipboard .writeText(promptText) .then(() => { const originalText = $("#copyBtn").text(); $("#copyBtn").text("Copiado!"); setTimeout(() => { $("#copyBtn").text(originalText); }, 2000); }) .catch((err) => { console.error("Erro ao copiar o texto: ", err); }); } }); $("#resetBtn").on("click", function () { $(".select2").val("").trigger("change"); $(".form-control").val(""); selections = { genero: "", estetica: "", visual: "", tipoCamera: "", marca: "", modelo: "", lente: "", abertura: "", velocidade: "", iso: "", formato: "", efeito: "", iluminacao: "", sujeito: "", artMedium: "", camera: "", color: "", dimensionality: "", display: "", geometry: "", intangibles: "", lighting: "", material: "", postProcessing: "", artist: "", style: "", aspectRatio: "", acao: "", local: "", detalhesFundo: "", vestuario: "", perspectiva: "", epocaTema: "", expressao: "", motivo: "", detalhesCena: "", }; $("#camera-profissional-options").hide(); updatePrompt(); }); });