!function(e){var a=[],r=[];e.fn.CodeDropz_Uploader=function(s){let n=document.querySelector("form.wpcf7-form");if(n){let o=new FormData;o.append("action","wpcf7_upload_pro_nonce"),o.append("nonce",dnd_cf7_uploader.nonce),fetch(dnd_cf7_uploader.ajax_url,{method:"POST",body:o}).then(e=>e.json()).then(({data:e,success:a})=>a&&(dnd_cf7_uploader.nonce=e)).catch(console.error)}this.each(function(){var n=e(this),o=e.extend({handler:n,color:"#000",background:"",upload_dir:n.parents("form").find("[name='upload_dir']"),server_max_error:"Uploaded file exceeds the maximum upload size of your server.",max_file:n.data("max")?n.data("max"):5,max_upload_size:n.data("limit")?n.data("limit"):"10485760",supported_type:n.data("type")?n.data("type"):"jpg|jpeg|JPG|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv|xls",max_total_size:"100MB",parallel_uploads:2,chunks:!1,chunk_size:1e4,text:"Drag & Drop Files Here",separator:"or",button_text:"Browse Files",err_message:{maxNumFiles:"You have reached the maximum number of files(Only %s files allowed)",maxUploadLimit:"Note:Some of the files could not be uploaded(Only %s files allowed)",maxTotalSize:"The total file(s) size exceeding the max size limit of %s."},on_success:"",in_progress:"",completed:""},s),t={parallelUploads:o.parallel_uploads,chunking:o.chunks,chunkSize:o.chunk_size,progress__id:"codedropz--results"},i=1048576*parseInt(o.max_total_size.replace("[^0-9]/g","")),d=n.attr("data-name"),l='<div class="codedropz-upload-handler"><div class="codedropz-upload-container"><div class="codedropz-upload-inner"><'+dnd_cf7_uploader.heading_tag+">"+o.text+"</"+dnd_cf7_uploader.heading_tag+"><span>"+o.separator+'</span><div class="codedropz-btn-wrap"><a class="cd-upload-btn" href="javascript:void(0)">'+o.button_text+'</a></div></div></div><span class="dnd-upload-counter"><span>0</span> '+dnd_cf7_uploader.dnd_text_counter+" "+parseInt(o.max_file)+"</span></div>";o.handler.wrapAll('<div class="codedropz-upload-wrapper"></div>');var p=o.handler.parents("form"),u=o.handler.parents(".codedropz-upload-wrapper");o.handler.after(l),"column"==dnd_cf7_uploader.preview_layout&&!e(".codedropz--preview",u).length>0&&u.append('<div class="codedropz--preview"></div>');var c={init:function(){var s=this;r[d=this.getFieldName(d)]=[],a[d]={total:0,uploaded:0,uploading:!0,maxTotalSize:0,maxSize:o.max_upload_size,maxFile:o.max_file},e(".codedropz-upload-handler",u).on("drag dragstart dragend dragover dragenter dragleave drop",function(e){e.preventDefault(),e.stopPropagation()}),e(".codedropz-upload-handler",u).on("dragover dragenter",function(a){e(this).addClass("codedropz-dragover")}),e(".codedropz-upload-handler",u).on("dragleave dragend drop",function(a){e(this).removeClass("codedropz-dragover")}),this.getUploadFiles(),e("body").on("click","a.remove-file",function(a){e(this).hasClass("deleting")||s.deleteFiles(e(this).data("index"),e(this),e(this).data("name"))}),/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)&&n.removeAttr("accept")},previewThumbnail:function(a){if(a.file){if(-1===e.inArray(a.file.type,["image/png","image/jpg","image/jpeg","image/gif","image/tiff","image/xheic"]))return!1;var r=new FileReader;r.onload=function(r){e("#"+a.progressbar).find(".dnd-upload-image").addClass("has-bg").append('<img title="'+a.name+'" src="'+r.target.result+'">')},r.readAsDataURL(a.file)}},getFieldName:function(e){return e.replace(/[^a-zA-Z0-9_-]/g,"")},deleteFiles:function(a,s,n){var t,i=r[n],d=this;s.addClass("deleting").text(dnd_cf7_uploader.delete_text);for(var l=0;l<i.length;l++)if(t=i[l],i[l].hasOwnProperty("file")&&("undefined"===e.type(a)||t.index===a)){if(t.queued&&!1==t.complete&&!t.error)s.addClass("deleting").text("aborting..."),this.abortFile(t),this.removeFile(t,l,n);else if(t.complete){var p={_file:t,_index:l,_name:n};data={security:dnd_cf7_uploader.nonce,action:"dnd_codedropz_upload_delete",path:e("#"+t.progressbar).find('input[type="hidden"]').val()},e.post(o.ajax_url,data,function(e){e.success&&(d.removeFile(p._file,p._index,p._name),console.log(p._file.name+" - file deleted."))})}else this.removeFile(t,l,n)}},abortFile:function(e){t.chunking?e.chunkTransfer&&e.chunkTransfer.abort():e.transfer.abort()},removeFile:function(r,s,n){var t=e("#"+r.progressbar).parents(".codedropz-upload-wrapper");r&&r.hasOwnProperty("file")&&null!=r.progressbar&&((progressBar=t.find("#"+r.progressbar)).length>0?(r.deleted=!0,a[n].total--,a[n].maxTotalSize=a[n].maxTotalSize-r.size,r.complete&&a[n].uploaded>0&&a[n].uploaded--,progressBar.remove(),this.resetQueue(n)):console.log("Progress Bar not exists!"),a[n].uploaded<a[n].maxFile&&t.find("span.has-error-msg").remove(),a[n].maxTotalSize>i&&(u=t,this.validateFiles.setError(o.err_message.maxTotalSize,!1,o.max_total_size)),e(".dnd-upload-counter span",e('input[data-name="'+n+'"]').parents(".codedropz-upload-wrapper")).text(a[n].total))},getUploadFiles:function(){var a=this;e(".codedropz-upload-handler",u).on("drop",function(e){a.handleFiles(e.originalEvent.dataTransfer.files)}),e("a.cd-upload-btn",u).on("click",function(e){e.preventDefault(),o.handler.val(null),o.handler.click()}),o.handler.on("change",function(e){a.handleFiles(this.files)})},handleFiles:function(s){var n=s.length,t=[];if(a[d].maxFile){var l=a[d].maxFile-a[d].uploaded;l>=0&&s.length>l&&(n=l),0==a[d].uploaded&&a[d].total>0&&(n=a[d].maxFile-a[d].total)}if(e("span.has-error-msg",u).remove(),a[d].total>=a[d].maxFile)return this.validateFiles.setError(o.err_message.maxNumFiles,!0,o.max_file);if(n>0)for(var p=0;p<n;p++)s[p]&&(t={index:$unique_index="index-"+Date.now().toString(36)+Math.random().toString(36).substr(2,5),file:s[p],name:s[p].name,size:s[p].size,queued:!1,complete:!1,error:!1,pause:!1,transfer:null,progressbar:null,deleted:!1},(newName=this.validateFiles.checkValidName(t.name))&&(t.name=newName),s.length-n>0&&this.validateFiles.setError(o.err_message.maxUploadLimit,!1,o.max_file),a[d].total++,a[d].maxTotalSize+=t.size,t.progressbar=this.progressBar.make(t),!1===this.validateFiles.check(t,d)&&(t.error=!0),a[d].maxTotalSize>i&&(this.validateFiles.setError(o.err_message.maxTotalSize,!0,o.max_total_size),t.pause=!0),r[d].push(t));a[d].uploading=!0,this.processQueue(r[d],d)},validateFiles:{setError:function(a,r,s){if(e("span.has-error-msg",u).remove(),e("."+t.progress__id,u).after('<span class="has-error-msg">'+a.replace("%s",s)+"</span>"),r)return!1},check:function(r,s){if(!r)return!0;if(r.progressbar){var n=e("#"+r.progressbar).find(".dnd-upload-details");if(e("#"+r.progressbar).find(".has-error").remove(),r.size>a[s].maxSize&&!t.chunking)return n.append('<span class="has-error">'+dnd_cf7_uploader.drag_n_drop_upload.large_file+"</span>"),!1;if(0===r.size)return n.append('<span class="has-error">File is empty. Please upload something more substantial.</span>'),!1;if(!(regex_type=RegExp("(.*?).("+o.supported_type+")$")).test(r.name.toLowerCase()))return n.append('<span class="has-error">'+dnd_cf7_uploader.drag_n_drop_upload.invalid_type+"</span>"),!1}return r},checkValidName:function(e){return!!RegExp(/[{>="'<:;/\}]+/g).test(e)&&encodeURIComponent(e.replace(/[{>="'<:;/\} ]/g,"_"))}},resetQueue:function(e){var s=[];if(a[e].uploading=!0,r[e].length>0)for(var n in r[e])!0==!r[e][n].deleted&&s.push(r[e][n]),!0==r[e][n].pause&&a[e].maxTotalSize<i&&(r[e][n].pause=!1);s.length>0&&(r[e]=s),this.processQueue(r[e],e),console.log(r[e]),console.log(a[e]),console.log(c.bytesToSize(a[e].maxTotalSize)+" of "+o.max_total_size)},processQueue:function(s,n){var i=0,d=[];if(a[n].uploading){for(var l in s)!1==s[l].complete&&!1==s[l].error&&!1==s[l].pause&&d.push(s[l]);e.isFunction(o.in_progress)&&o.in_progress.call(this,p,d,r[n]);for(var l=0;l<d.length;l++)if(d[l].hasOwnProperty("file")&&(!1==d[l].queued&&this.uploadFile(r[n],d[l],n),++i>=t.parallelUploads))return;0==i&&(a[n].uploading=!1,e.isFunction(o.completed)&&o.completed.call(this,p,a[n],r[n]))}},progressBar:{make:function(a){var r="dnd-file-"+Math.random().toString(36).substr(2,9),s=!1;!0==dnd_cf7_uploader.image_preview&&(s=c.previewThumbnail(a));var n='<div class="dnd-upload-image">'+(!1===s?'<span class="dnd-icon-blank-file"></span>':"")+'</div><div class="dnd-upload-details"><span class="name"><span title="'+decodeURIComponent(a.name)+'">'+decodeURIComponent(a.name)+"</span> <em>("+c.bytesToSize(a.size)+')</em></span><a href="javascript:void(0)" title="'+dnd_cf7_uploader.remove_text+'" class="remove-file" data-name="'+d+'" data-index="'+a.index+'"><span class="dnd-icon-remove"></span></a><span class="dnd-progress-bar"><span></span></span></div>';return!e("."+t.progress__id,u).length>0&&u.append('<div class="'+t.progress__id+'"></div>'),e("."+t.progress__id,u).append('<div id="'+r+'" class="dnd-upload-status _uploading">'+n+"</div>"),r},setProgress:function(a,r){var s=e(".dnd-progress-bar",e("#"+a));return s.length>0&&(progress_width=r*s.width()/100,e("span",s).addClass("in-progress").animate({width:progress_width},10).text(r+"% "),100==r&&(e("span",s).addClass("complete").removeClass("in-progress"),e("#"+a).removeClass("_uploading"))),!1}},uploadFile:function(r,s,i){var d=this,l=new FormData,u=1024*t.chunkSize;l.append("supported_type",o.supported_type),l.append("size_limit",o.max_upload_size),l.append("action","dnd_codedropz_upload"),l.append("upload_dir",o.upload_dir.val()),l.append("post_id",p.find("[name='_wpcf7_container_post']").val()),l.append("security",dnd_cf7_uploader.nonce),l.append("form_id",n.data("id")),l.append("upload_name",n.data("name")),(newName=this.validateFiles.checkValidName(s.file.name))&&l.append("orig-name",decodeURIComponent(newName)),t.chunking&&s.size>u?(s.queued=!0,s.chunkSize=u,s.totalChunks=Math.ceil(s.size/s.chunkSize),s.currentChunk=0,this.uploadChunks(r,s,i)):(s.queued=!0,l.append("upload-file",s.file),s.transfer=e.ajax({url:o.ajax_url,type:p.attr("method"),data:l,dataType:"json",cache:!1,contentType:!1,processData:!1,xhr:function(){var e=new window.XMLHttpRequest;return e.upload.onprogress=function(e){if(e.lengthComputable){var a=parseInt(e.loaded/e.total*100);d.progressBar.setProgress(s.progressbar,a-1)}},e},success:function(n){n.success?(d.progressBar.setProgress(s.progressbar,100),s.complete=!0,a[i].uploaded++,d.processQueue(r,i),e.isFunction(o.on_success)&&o.on_success.call(this,s.progressbar,n,i,a[i])):(e("#"+s.progressbar).find(".dnd-upload-details").append('<span class="has-error">'+n.data+"</span>"),s.error=!0,d.processQueue(r,i))},error:function(a,n,o){e("#"+s.progressbar).find(".dnd-upload-details").append('<span class="has-error">'+o+"</span>"),s.error=!0,d.processQueue(r,i)}}))},uploadChunks:function(r,s,t){var i=s.chunkSize*s.currentChunk,d=i+s.chunkSize,l=this;d>s.size&&(d=s.size);var u=this.sliceFile(s.file,i,d),c=new FormData;c.append("security",dnd_cf7_uploader.nonce),c.append("start",i),c.append("end",d),c.append("total_chunks",s.totalChunks),c.append("chunk_size",s.chunkSize),c.append("upload_dir",o.upload_dir.val()),c.append("chunk",s.currentChunk),c.append("chunks-file",u,s.file.name),c.append("unique",s.progressbar),c.append("post_id",p.find("[name='_wpcf7_container_post']").val()),c.append("action","dnd_codedropz_upload_chunks"),c.append("form_id",n.data("id")),c.append("upload_name",n.data("name")),s.chunkTransfer=e.ajax({url:o.ajax_url,type:p.attr("method"),dataType:"json",data:c,type:"POST",contentType:!1,processData:!1,cache:!1,success:function(n,i,d){n&&void 0!==n&&(s.currentChunk++,n.data.partial_chunks&&s.currentChunk<s.totalChunks&&l.uploadChunks(r,s,t),console.log(s.name+" [chunk -"+s.currentChunk+" of "+s.totalChunks+"]"),n.data.file?(s.currentChunk==s.totalChunks&&l.progressBar.setProgress(s.progressbar,100),s.complete=!0,a[t].uploaded++,l.processQueue(r,t),e.isFunction(o.on_success)&&o.on_success.call(this,s.progressbar,n,t,a[t])):!1==n.success&&(e("#"+s.progressbar).find(".dnd-upload-details").append('<span class="has-error">'+n.data+"</span>"),s.error=!0,l.processQueue(r,t)))},error:function(a,n,o){e("#"+s.progressbar).find(".dnd-upload-details").append('<span class="has-error">'+o+"</span>"),s.error=!0,l.processQueue(r,t)},xhr:function(){var e=new window.XMLHttpRequest;return e.upload.onprogress=function(e){if(e.lengthComputable){var a=e.loaded/e.total,r=Math.ceil(1/s.totalChunks*99),n=s.currentChunk/s.totalChunks*99,o=0==s.currentChunk?r*a:r*a+n;l.progressBar.setProgress(s.progressbar,parseInt(o))}},e}})},sliceFile:function(e,a,r){return(e.mozSlice?e.mozSlice:e.webkitSlice?e.webkitSlice:e.slice?e.slice:{}).bind(e)(a,r)},bytesToSize:function(e){return 0===e?"0":fileSize=(kBytes=e/1024)>=1024?(kBytes/1024).toFixed(2)+"MB":kBytes.toFixed(2)+"KB"}};c.init();var m=["wpcf7mailsent","wpcf7spam","wpcf7mailfailed"];for(var h in m)document.addEventListener(m[h],function(e){r[name=c.getFieldName(d)]=[],a[name]={total:0,uploaded:0,uploading:!0,maxTotalSize:0,maxSize:o.max_upload_size,maxFile:o.max_file}},!1)})}}(jQuery);
jQuery(document).ready(function($){
window.initDragDrop=function(file_name){
var TextOJB=dnd_cf7_uploader.drag_n_drop_upload;
var dnd_options={
'color':'#fff',
'ajax_url':dnd_cf7_uploader.ajax_url,
'text':TextOJB.text,
'separator':TextOJB.or_separator,
'button_text':TextOJB.browse,
'server_max_error':TextOJB.server_max_error,
'parallel_uploads':dnd_cf7_uploader.parallel_uploads,
'chunks':dnd_cf7_uploader.chunks,
'chunk_size':dnd_cf7_uploader.chunk_size,
'max_total_size':dnd_cf7_uploader.max_total_size,
'err_message':{
'maxNumFiles':dnd_cf7_uploader.err_message.maxNumFiles,
'maxTotalSize':dnd_cf7_uploader.err_message.maxTotalSize,
'maxUploadLimit':dnd_cf7_uploader.err_message.maxUploadLimit
},
'in_progress':function(form_handler, queue, data){
var submitBtn=$('input[type="submit"]', form_handler);
if(submitBtn.length > 0){
submitBtn.addClass('disable').prop("disabled", true);
}
dndmfu_cf7_event(form_handler, 'in_progress', data);
},
'on_success':function(progressBar, response, fieldName, Record){
var progressDetails=$('#' + progressBar),
parentWrap=progressDetails.parents('.codedropz-upload-wrapper');
if(dnd_cf7_uploader.preview_layout=='column'){
if(! response.data.is_image||response.data.preview===false){
$('.dnd-upload-image', progressDetails).addClass('has-icon has-bg');
}
$('.codedropz--preview', parentWrap).append(progressDetails);
progressDetails.find('.dnd-upload-image').fadeIn();
}
if(typeof response.data.preview!=="boolean"){
$('.dnd-icon-blank-file', progressDetails).css('background-image', 'url(' + response.data.preview + ')');
}
$('.dnd-upload-details', progressDetails)
.append('<span><input type="hidden" name="'+ fieldName +'[]" value="'+ response.data.path + response.data.file +'"></span>');
$('.dnd-upload-counter span', parentWrap).text(Record.uploaded);
dndmfu_cf7_event(progressDetails, 'success', response);
},
'completed':function(form_handler, fileData, data){
var $span=$('.wpcf7-acceptance', form_handler);
var $input=$('input:checkbox', $span);
var $max_total_size=(dnd_options.max_total_size ? dnd_options.max_total_size:'100MB');
var $totalSizeLimit=parseInt($max_total_size.replace('[^0-9]/g',''));
if($('.in-progress', form_handler).length===0){
if($span.hasClass('optional')||$input.is(':checked')||$span.length==0||form_handler.hasClass('wpcf7-acceptance-as-validation')){
if(fileData.maxTotalSize <($totalSizeLimit * 1048576)){
$('input[type="submit"]', form_handler).removeAttr('disabled');
}}
dndmfu_cf7_event(form_handler, 'completed', data);
}}
};
if(file_name){
$('input[data-name="'+ file_name +'"]').CodeDropz_Uploader(dnd_options);
}else{
$('.wpcf7-drag-n-drop-file').CodeDropz_Uploader(dnd_options);
}}
window.initDragDrop();
if($('.wpcf7cf_repeater').length > 0){
$('form').on('click.wpcf7cf', function(e){
if($(e.target).attr('class')!='wpcf7cf_add'){
return;
}
var $repeater_count=$('input[name="'+ $('.wpcf7cf_repeater').data('id') +'_count"]').val();
var $sub=$('.wpcf7cf_repeater_sub:last');
var $file_upload=$('.wpcf7-drag-n-drop-file', $sub);
var $uploader_name=$($file_upload, $sub).attr('data-name') +'__'+ parseInt($repeater_count);
$file_upload.attr('data-name', $uploader_name);
window.initDragDrop($uploader_name);
});
}
if($('.cf7-repeater').length > 0){
$('.cf7-button-repeater a').on('click', function(){
var firstUploader=$('.wpcf7-drag-n-drop-file').first();
var lastField=$('.cf7-repeater-filed:last');
var fileUploader=$('.wpcf7-drag-n-drop-file', lastField);
var dataNames=$('.cf7-remove-repeater', lastField).attr('data-name').split(',');
const currentIndex=dataNames[0].split('-').splice(-1);
var uploaderName=fileUploader.attr('data-name-'+currentIndex[0]);
fileUploader.unwrap();
fileUploader.attr('data-name', uploaderName);
fileUploader.removeAttr('data-name-'+currentIndex[0]);
$('.codedropz-upload-handler', lastField).remove();
$('.codedropz--results', lastField).remove();
window.initDragDrop(uploaderName);
firstUploader.val('');
});
}
var dndmfu_cf7_event=function(target, name, data){
var event=new CustomEvent('dndmfu_cf7_' + name, {
bubbles:true,
detail:data
});
$(target).get(0).dispatchEvent(event);
}
document.addEventListener('wpcf7mailsent', function(event){
var inputFile=$('.wpcf7-drag-n-drop-file');
if(event.detail.apiResponse){
var api_Response=event.detail.apiResponse;
if(typeof api_Response.drag_n_drop.upload_dir!=='undefined'){
$(api_Response.into).find("input[name='upload_dir']").val(api_Response.drag_n_drop.upload_dir);
}
if(typeof api_Response.drag_n_drop.generate_name!=='undefined'){
$(api_Response.into).find("input[name='generate_name']").val(api_Response.drag_n_drop.generate_name);
}}
$('.dnd-upload-status', inputFile.parents('form')).remove();
$('span.has-error-msg').remove();
dndmfu_cf7_reset_progress();
});
document.addEventListener('wpcf7spam', function(event){
if(dnd_cf7_uploader.delete_files_on_failed==1){
$('.dnd-upload-status').remove();
dndmfu_cf7_reset_progress();
}});
document.addEventListener('wpcf7mailfailed', function(event){
if(dnd_cf7_uploader.delete_files_on_failed==1){
$('.dnd-upload-status').remove();
dndmfu_cf7_reset_progress();
}});
if(dnd_cf7_uploader.disable_btn_submission){
$('form.wpcf7-form input.wpcf7-submit').click(function(){
var $this=$(this);
setTimeout(function(){
if($('form.wpcf7-form').hasClass('submitting')){
$this.prop("disabled",true);
}}, 50);
});
document.addEventListener('wpcf7submit',function(event){
$('form.wpcf7-form input.wpcf7-submit').prop('disabled', false);
}, false);
}
var Dnd__ExcludeInputFile={
files:$('input.wpcf7-drag-n-drop-file'),
init:function(){
const self=this;
$('form.wpcf7-form input.wpcf7-submit').click(function(){
self.action('delete_name');
});
document.addEventListener('wpcf7submit',function(event){
self.action('add_name');
}, false);
},
action:function(a){
for(var i=0; i<this.files.length; i++){
if(a=='delete_name'){
$(this.files[i]).removeAttr('name');
}else{
$(this.files[i]).attr('name',  $(this.files[i]).data('name'));
}}
}}
function dndmfu_cf7_reset_progress(){
$('.dnd-upload-counter span').text('0');
$('form.wpcf7-form input.wpcf7-submit').prop('disabled', false);
}
document.addEventListener('dndmfu_cf7_success', function(event){
});
});