(()=>{var e={53267:e=>{function t(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function i(e){for(var i=1;i<arguments.length;i++){var s=null!=arguments[i]?arguments[i]:{};i%2?t(Object(s),!0).forEach((function(t){r(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):t(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function r(e,t,i){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}void 0===TCB_Front.js_modules["file-upload"]&&TCB_Front.setModuleLoadedStatus("file-upload",!1),function(t){if(!TCB_Front.isModuleLoaded("file-upload")){class r{config={};$wrapper=t();$el=t();el=null;fileId=0;$fileList=t();deleteIcon='<svg width="12" height="14" viewBox="0 0 18 20"><path fill="#6D7A86" d="M17.188 2.5h-4.063L11.812.75c-.354-.472-.91-.75-1.5-.75H7.188c-.59 0-1.146.278-1.5.75L4.375 2.5H.312C.14 2.5 0 2.64 0 2.813v.624c0 .173.14.313.313.313h.738l1.297 14.543c.087.966.897 1.707 1.867 1.707h9.07c.97 0 1.78-.74 1.867-1.707L16.45 3.75h.738c.173 0 .313-.14.313-.313v-.624c0-.173-.14-.313-.313-.313zm-10.5-1c.118-.157.303-.25.5-.25h3.125c.196 0 .381.093.5.25l.75 1H5.936l.75-1zm7.218 16.68c-.026.323-.297.57-.62.57H4.214c-.324 0-.595-.247-.621-.57L2.304 3.75h12.891l-1.289 14.43z"/></svg>';uploader=null;errorTemplates={};files={};uploadInProgress=!1;fieldName="";fieldMapping="";constructor(e,t={}){if(!e.data("tcb-file-upload")&&(this.$wrapper=e,this.url=t.url?t.url:tve_frontend_options.ajaxurl,this.plUploadExtraOptions=t.uploadExtraOptions?t.uploadExtraOptions:{},this.$el=this.$wrapper.find(".tve_lg_file"),this.$el.find(".tcb-button-link.tcb-file-upload-trigger").attr("href","javascript:void(0)"),this.$wrapper.data("tcb-file-upload",this),this.$el.length)){this.el=this.$el[0];try{this.readConfig()}catch(e){return this.$el.remove(),void console.log("File upload error",e)}this.dom(),this.plupload()}}get maxFileSize(){return(this.config.max_size||1)+"mb"}get fileCount(){return Object.keys(this.files).length}isValid(){return!this.el||(this.uploadInProgress?this.errorTemplates.upload_progress||"File upload in progress. Please wait for the upload to finish and try again.":!(this.config.required&&!this.fileCount)||this.errorTemplates.file_required||"At least one file is required")}dom(){const e=this.$el.find('input[type="file"]').remove();this.fieldName=e.attr("name"),this.fieldMapping=e.attr("data-mapping"),this.$fileList=t('<div class="tcb-file-list tcb-plain-text"></div>').insertAfter(this.$el),this.$fileList.on("click.tcb",".tcb-file-remove",(e=>{this.removeFile(e.currentTarget.dataset.fileId)}));const i="tve-state-active",r=()=>this.el.classList.remove(i);return this.$el.off("dragover.tcb dragenter.tcb dragleave.tcb drop.tcb").on("dragenter.tcb",(()=>this.el.classList.add(i))).on("dragover.tcb",(e=>e.originalEvent.dataTransfer.dropEffect="copy")).on("drop.tcb dragend.tcb",r).on("dragleave.tcb",(e=>{e.originalEvent.relatedTarget&&!t.contains(this.el,e.originalEvent.relatedTarget)&&r()})),this}readConfig(){if(this.fileId=parseInt(this.$wrapper.attr("data-f-id")||0),this.$wrapper.removeAttr("data-f-id"),this.config=TCB_Front.Utils.jsonParse(this.$el,"data-file-setup"),this.$el.removeAttr("data-file-setup"),!this.fileId||!this.config)throw new Error("Missing file ID / setup");try{this.errorTemplates=JSON.parse(this.$wrapper.find(".tve-lg-err-msg").val())}catch(e){this.errorTemplates={}}this.errorTemplates=i(i({},{file_extension:"Sorry, {fileextension} files are not allowed",file_size:"{file} exceeds the maximum file size of {filelimit}",max_files:"Sorry, the maximum number of files is {maxfiles}"}),this.errorTemplates)}$fileItem(e){return"string"!=typeof e&&e.id&&(e=e.id),this.$fileList.children(`[data-id="${e}"]`)}formatFileSize(e){if(!e.origSize)return"";let t="B",i=e.origSize;return i>1e3&&(i/=1024,t="KB"),i>1e3&&(i/=1024,t="MB"),i!==parseInt(i)&&(i=i.toFixed(1)),i+" "+t}template(e){let i=this.$fileItem(e.id);const r=`<div class="tcb-file-info"><span class="tcb-file-name">${e.name}</span><span class="tcb-file-size">${this.formatFileSize(e)}</span></div>`,s=`<button data-file-id="${e.id}" type="button" class="tcb-file-remove">${this.deleteIcon}</button>`;return i.length||(i=t(`<div class="tcb-file-item" data-id="${e.id}">${r}<span class="tcb-upload-progress"><span class="progress-bg"></span></span>${s}<div class="tcb-file-loader"><span class="tcb-form-loader-icon thrv-icon-spinner9"></span></div></div>`).appendTo(this.$fileList)),i}clearErrors(){this.$fileList.children(".tcb-error").remove()}plupload(){let e;if(plupload.addFileFilter("max_files",(function(t,i,r){this._tcbInstance.fileCount>=t?(clearTimeout(e),e=setTimeout((()=>{this._tcbInstance.clearErrors(),this._tcbInstance.uploader.trigger("Error",{code:800,message:this._tcbInstance.getErrorMessage("max_files",i),file:i})}),100),r(!1)):r(!0)})),this.uploader=new plupload.Uploader(i({runtimes:"html5,html4",dragdrop:!0,drop_element:this.el,browse_button:this.$el.find(".tcb-file-upload-trigger")[0],container:this.el,url:this.url+"?action=tcb_file_upload&id="+encodeURIComponent(this.fileId),filters:{max_files:this.config.max_files||1,max_file_size:this.maxFileSize,mime_types:[{title:"Custom",extensions:this.config.allowed?this.config.allowed.join(","):""}]},init:{FilesAdded:this.onFilesAdded.bind(this),FilesRemoved:this.onFilesRemoved.bind(this),UploadFile:this.onUploadStart.bind(this),UploadProgress:this.onUploadProgress.bind(this),FileUploaded:this.onFileUploaded.bind(this),Error:this.onUploadError.bind(this),FileFiltered:this.onFileFiltered.bind(this),UploadComplete:this.onUploadComplete.bind(this)}},this.plUploadExtraOptions)),this.uploader._tcbInstance=this,this.uploader.init(),TCB_Front.browser.ios){const e=this.$wrapper.find(".tcb-file-upload-trigger");e.replaceWith(e.clone()),this.$wrapper.on("click",".tcb-file-upload-trigger",(()=>{this.$wrapper.find("input[type=file]")[0].click()}))}}markFileError(e,t){return this.template(e).removeClass("tcb-uploading tcb-done").addClass("tcb-error").find(".tcb-file-info").html(t),this}isUploaded(e){return e="string"==typeof e?e:e.id,this.$wrapper.find(`input#file-${e}`).length}getUploadedFileId(e){return e="string"==typeof e?e:e.id,this.$wrapper.find(`input#file-${e}`).val()}getUploadedFileNonce(e){return e="string"==typeof e?e:e.id,this.$wrapper.find(`input#file-${e}`).attr("data-key")}removeFile(e){e="string"==typeof e?e:e.id,delete this.files[e],this.uploader.removeFile(e),this.$fileItem(e).remove();const r=this.getUploadedFileId(e);r&&t.ajax(i(i({},this.plUploadExtraOptions),{},{url:this.url,type:"post",data:{action:"tcb_file_remove",id:this.fileId,file_id:r,post_id:tve_frontend_options.post_id,nonce:this.getUploadedFileNonce(e)}})),this.$wrapper.find(`input#file-${e}`).remove()}appendExtraData(e){return this.fieldName&&(e+="&tcb_file_field="+encodeURIComponent(this.fieldName)+"&tcb_file_id="+this.fileId),e}getErrorMessage(e,t){if(!this.errorTemplates[e])return"Unknown error";const i=t.name.split(".").pop();return this.errorTemplates[e].replace(/({file})/g,t.name).replace(/{filelimit}/g,this.maxFileSize.toUpperCase()).replace(/{fileextension}/g,i).replace(/{maxfiles}/g,this.config.max_files||1)}clear(){this.$fileList.empty(),this.files={},this.uploader&&(this.uploader.files=[])}onFilesAdded(e,t){plupload.each(t,(e=>{this.$fileList.append(this.template(e))}));const i=this.$wrapper.find('input[type="email"]').val();this.uploader.setOption("url",this.url+"?action=tcb_file_upload&id="+encodeURIComponent(this.fileId)+"&email="+encodeURIComponent(i)),this.uploader.start()}onFilesRemoved(e,t){plupload.each(t,(e=>{delete this.files[e.id],this.$fileItem(e).remove()}))}onUploadStart(e,t){this.$el.removeClass("tcb-form-input-error").next(".tcb-form-error").remove(),this.uploadInProgress=!0,this.$fileItem(t).addClass("tcb-uploading")}onUploadProgress(e,t){const i=`${t.percent}%`;this.template(t).addClass("tcb-uploading").find(".progress-bg").attr("data-percent",i).css("width",i)}onUploadError(e,t){if(!t.file)throw new Error("missing file data");let i=t.response||t.message;if(t.response)try{const e=JSON.parse(t.response);e.error&&(i=e.error)}catch(e){}switch(t.code){case plupload.FILE_SIZE_ERROR:i=this.getErrorMessage("file_size",t.file);break;case plupload.FILE_EXTENSION_ERROR:i=this.getErrorMessage("file_extension",t.file)+` (${t.file.name})`;break;default:i+=` (${t.file.name})`}delete this.files[t.file.id],this.markFileError(t.file,i)}onFileFiltered(e,t){this.files[t.id]=t}onFileUploaded(e,t,i){this.template(t).removeClass("tcb-uploading").addClass("tcb-done");try{if(200!==i.status)throw new Error("Something went wrong. Response was: "+i.response);const e=JSON.parse(i.response);if(!e.file_id)throw new Error("Something went wrong while uploading the file");this.$wrapper.find("form").append(`<input data-mapping="${this.fieldMapping}" type="hidden" data-key="${e.nonce}" id="file-${t.id}" name="_tcb_files[${e.nonce}]" value="${e.file_id}">`)}catch(e){this.markFileError(t,e.message)}}onUploadComplete(){this.uploadInProgress=!1}}window.TCB_Front.FileUpload=r,e.exports=r,TCB_Front.setModuleLoadedStatus("file-upload",!0)}}(ThriveGlobal.$j)}},t={};!function i(r){var s=t[r];if(void 0!==s)return s.exports;var l=t[r]={exports:{}};return e[r](l,l.exports,i),l.exports}(53267)})();