{{-- Cropper Manager — gerencia o Cropper.js e o botão Registrar --}} const destroyCropper = () => { if (cropperInstance) { cropperInstance.destroy(); cropperInstance = null; } $('#gallery-cropper-wrapper-' + pickerId).hide(); $('#gallery-audio-wrapper-' + pickerId).hide(); $('#gallery-excel-wrapper-' + pickerId).hide(); $('#gallery-document-wrapper-' + pickerId).hide(); $('#upload-fields-container-' + pickerId).show(); $('#btn-register-upload-' + pickerId).hide(); $('#upload-media-alt-' + pickerId).val(''); $('#upload-media-desc-' + pickerId).val(''); }; $('#btn-cropper-rotate-' + pickerId).on('click', function() { if (cropperInstance) { cropperInstance.rotate(90); } }); $('#btn-register-upload-' + pickerId).on('click', function() { if (cropperInstance) { /* Com cropper: recorta e faz upload do recorte */ cropperInstance.getCroppedCanvas().toBlob(function(blob) { var croppedFile = new File([blob], fileToUpload.name, { type: fileToUpload.type, lastModified: Date.now() }); performUpload(croppedFile); destroyCropper(); }, fileToUpload.type); } else if (fileToUpload) { /* Sem cropper (áudio, PDF, planilha): upload direto */ performUpload(fileToUpload); destroyCropper(); } });