1import{d as D,r as O,w as J,J as M,e as I,c7 as Q,c6 as G,c8 as H,o as c,c as l,f,g as _,F as b,A as k,z as $,a as u,al as K,b as p,t as m,u as d,n as V,ad as T,_ as W,i as X,bs as Y,s as v}from"./index-CECfxDsp.js";import{_ as Z}from"./input.vue_vue_type_style_index_0_lang-DYWz1_NN.js";import{_ as C}from"./checkbox.vue_vue_type_style_index_0_lang-CqUG8IxO.js";import{_ as ee}from"./cropper.vue_vue_type_style_index_0_lang-CoOM0uYD.js";import{u as te}from"./files-Bwxkdus4.js";import{b as oe,a as se,c as ae,e as re}from"./categories-Cz3uxHUd.js";import{f as ie,a as ne,m as w,s as F}from"./index-sKrBdEUS.js";import"./utils-DGnOM_Au.js";import"./isJson-BEZlTCKP.js";const ce={class:"product-create"},le={class:"title is-4"},de={key:0,class:"product-categories",style:{"margin-top":"1.5rem"}},ue={class:"title is-6"},pe={key:0,style:{margin:"0 0 1.5rem 1.5rem"}},me={key:1},ge={key:1,class:"message is-warning"},fe={class:"message-body"},_e={class:"buttons"},be={class:"title is-4"},ye={key:0},he={key:1},ve={class:"figure"},Ce=["src"],we={key:0,class:"buttons",style:{width:"100%"}},Re=D({__name:"NewProduct",setup(xe){const e=O({modal:w,modalCropper:{isActive:!1,isCard:!0},product:{},form:ne,questions:[],categories:[],subCategories:[],inputs:[...ie],categoryInputs:[],display_on_beamer_input:{},display_on_beamer:!1,event:0,statusSelect:F(),exhibitor:0,submitted:!0,loading:!1,formId:0,cropper:{image:"",onSelect:s=>{console.log(s)},aspectRatio:1},cropping:!0,croppedFileName:"",confirming:!1,cropSrc:"",images:[],imageIndex:-1,productSubCategories:[],productCategories:[]}),{translations:n,contextEvent:x,eventContextRoute:P}=X(),{triggerPopupErrors:y}=Y(),E=s=>["Precio","Preço","Price"].some(o=>s.includes(o)),N=s=>{const o=parseInt(String(s),10);return isNaN(o)?"":x.value.currency==="eur"?`⬠${(o/100).toFixed(2)}`:(o/100).toFixed(2)};J(()=>e.questions.map(s=>s.answer),()=>{e.questions.forEach((s,o)=>{if(e.inputs[o]&&E(e.inputs[o].label||"")&&!e.inputs[o].error){const t=s.answer;if(t&&String(t)!==""){const a=N(t);a&&(e.inputs[o].message=`${e.inputs[o].label}: ${a}`)}else e.inputs[o].message=s.required?n.value.common.mandatory_field:void 0}})},{deep:!0}),M(async()=>{e.cropper.onSelect=A,e.event=x.value.id,e.exhibitor=parseInt(I.currentRoute.value.params.exhibitor,10),e.statusSelect=F(),e.display_on_beamer_input={id:"product-display_on_beamer",name:"product_display_on_beamer",value:!1,type:"checkbox",label:n.value.common.display_on_beamer,message:n.value.common.display_on_beamer_message,error:!1};const s=await oe({event:e.event,page_size:1e3});s&&s.data.results&&(e.subCategories=s.data.results,se({event:e.event,page_size:1e3}).then(o=>{e.categories=o.data.results,e.categories.forEach(t=>{const a=[],r=e.subCategories.filter(i=>i.category===t.id);r&&r.length>0&&r.forEach(i=>{a.push({id:`product-subcategory_${i.id}`,name:`product_subcategory_${i.id}`,value:!1,type:"checkbox",label:i.name,onClick:g=>{g==="on"?e.productSubCategories.push(i.id):e.productSubCategories=e.productSubCategories.filter(h=>i.id!==h)}})}),e.categoryInputs.push({id:`product-category_${t.id}`,name:`product_category_${t.id}`,value:!1,type:"checkbox",label:t.name,onClick:i=>{i==="on"?e.productCategories.push(t.id):e.productCategories=e.productCategories.filter(g=>t.id!==g),console.log(e.productCategories)},children:a})})})),await R()});const R=async()=>{Q(x.value.id).then(async s=>{if(s.data.results[0].id){e.formId=s.data.results[0].id;const t=(await G(e.formId)).data.results;H(e.formId).then(a=>{e.questions=a.data.results,e.questions.forEach((r,i)=>{const g=t.find(h=>h.id===r.form_field);if(g){const h=i;g.type_field>5&&g.type_field<10?e.inputs.push({id:`exhibitor-${r.id}`,name:`exhibitor_${r.id}`,label:r.display_name,placeholder:r.placeholder,type:"file",message:r.required?n.value.common.mandatory_field:void 0,onFileSelect:j=>{q(j,h)},value:""}):e.inputs.push({id:`exhibitor-${r.id}`,name:`exhibitor_${r.id}`,label:r.display_name,placeholder:r.placeholder,type:g.name==="Description"?"textarea":"text",message:r.required?n.value.common.mandatory_field:void 0,value:""})}})}).catch(a=>{console.log(a),y(a)})}}).catch(s=>{y(s)})},U=s=>e.productCategories.find(t=>`product-category_${t}`===s.id),q=(s,o)=>
1{if(e.croppedFileName=s.name,s.name.match(/.(jpg|jpeg|png|gif)$/i)){const t=new FileReader;t.onload=a=>{a&&a.target&&a.target.result&&(e.cropper={...e.cropper,image:a.target.result},e.cropping=!0,e.confirming=!1,e.modalCropper.isActive=!0,e.imageIndex=o)},t.readAsDataURL(s)}else e.inputs[o]={...e.inputs[o],value:"",message:n.value.common.file_not_image,error:!0}},A=s=>{const o=new File([s],e.croppedFileName,{type:"image/png"}),t=window.URL||window.webkitURL;e.cropSrc=t.createObjectURL(s),e.images[e.imageIndex]=o,e.cropping=!1,e.confirming=!0},z=()=>{e.modalCropper.isActive=!1},S=()=>{e.modalCropper.isActive=!1},B=()=>{e.cropping=!0,e.confirming=!1},L=async()=>{let s=!1;if(e.questions.filter(o=>o.required).forEach(o=>{(!o.answer||o.answer==="")&&(e.inputs=e.inputs.map(t=>t.id===`exhibitor-${o.id}`?(s=!0,{...t,message:n.value.common.mandatory_field,error:!0}):t))}),s)v.commit("addPopup",{message:n.value.common.form_fields_errors,type:"danger",autohide:!0});else{e.loading=!0;for(const t in e.images){const a=e.images[t],r=new FormData;r.append("file",a),await te(r).then(i=>{i&&(e.questions[t].answer=`${i.data.id}`)}).catch(i=>{y(i)})}v.dispatch("addProduct",{payload:{submitted:e.submitted,display_on_beamer:e.display_on_beamer,product:{form:e.formId,exhibitor:e.exhibitor},questions:e.questions},exhibitor:e.exhibitor,event:e.event});const o=v.subscribe(t=>{if(t.type==="newProduct"){const a=t.payload;e.productCategories.forEach(async r=>{await ae({category:r,product:a.id}).catch(i=>{y(i)})}),e.productSubCategories.forEach(async r=>{await re({subcategory:r,product:a.id}).catch(i=>{y(i)})}),I.push(`${P.value}/manage-exhibitor/${e.exhibitor}/products/`),e.loading=!1,o()}if(t.type==="setProductsError"){const a=t.payload;e.loading=!1;for(const[r,i]of Object.entries(a))e.inputs[r]={...e.inputs[r],message:i[0],error:!0};v.commit("addPopup",{message:n.value.common.something_went_wrong,type:"danger",autohide:!0})}})}};return(s,o)=>(c(),l("div",ce,[f(T,{config:d(w)},{header:_(()=>[p("h4",le,m(d(n).exhibitors.products.new_product),1)]),footer:_(()=>[p("div",_e,[p("button",{type:"button",class:"button is-light",onClick:o[2]||(o[2]=t=>d(w).close&&d(w).close())},m(d(n).common.close),1),e.inputs.length>0?(c(),l("button",{key:0,type:"button",class:V(["button is-success is-pulled-right",{"is-loading":e.loading}]),onClick:o[3]||(o[3]=t=>L())},m(d(n).common.create),3)):u("",!0)])]),default:_(()=>[e.inputs.length>1?(c(),l(b,{key:0},[(c(!0),l(b,null,k(e.inputs,(t,a)=>(c(),l(b,{key:t.id},[e.questions[a]&&(t.type==="text"||t.type==="file")?(c(),$(Z,{key:0,config:t,modelValue:e.questions[a].answer,"onUpdate:modelValue":r=>e.questions[a].answer=r},null,8,["config","modelValue","onUpdate:modelValue"])):u("",!0),e.questions[a]&&t.type==="textarea"?(c(),$(K,{key:1,config:t,modelValue:e.questions[a].answer,"onUpdate:modelValue":r=>e.questions[a].answer=r},null,8,["config","modelValue","onUpdate:modelValue"])):u("",!0)],64))),128)),e.categoryInputs.length>0?(c(),l("div",de,[p("h4",ue,m(d(n).common.category),1),(c(!0),l(b,null,k(e.categoryInputs,t=>(c(),l(b,{key:t.id},[f(C,{config:t},null,8,["config"]),t.children?(c(),l("div",pe,[(c(!0),l(b,null,k(t.children,a=>(c(),$(C,{config:a,class:V({"is-hidden":!e.categories.some(r=>U(t))}),key:a.id},null,8,["config","class"]))),128))])):u("",!0)],64))),128))])):u("",!0),e.categoryInputs.length>0?(c(),l("hr",me)):u("",!0),f(C,{config:e.display_on_beamer_input,modelValue:e.display_on_beamer,"onUpdate:modelValue":o[0]||(o[0]=t=>e.display_on_beamer=t)},null,8,["config","modelValue"]),f(C,{config:d(F)(),modelValue:e.submitted,"onUpdate:modelValue":o[1]||(o[1]=t=>e.submitted=t)},null,8,["config","modelValue"])],64)):u("",!0),e.inputs.length<2&&!e.loading?(c(),l("div",ge,[p("p",fe,m(d(n).exhibitors.products.form_not_ready),1)])):u("",!0)]),_:1},8,["config"]),f(W,{config:e.modalCropper,class:"modal-cropper"},{header:_(()=>[p("h4",be,m(d(n).exhibitors.onboarding.managedFields.crop_image),1)]),body:_(()=>[e.cropping?(c(),l("div",ye,[f(ee,{config:e.cropper},null,8,["config"])])):u("",!0),e.confirming?(c(),l("div",he,[p("div",ve,[p("img",{src:e.cropSrc,alt:"",loading:"lazy"},null,8,Ce)])])):u("",!0)]),footer:_(()=>[e.confirming?(c(),l("div",we,[p("button",{type:"button",class:"button is-success is-pulled-right",onClick:o[4]||(o[4]=t=>z())},m(d(n).common.confirm),1),p("button",{type:"button",class:"button is-light",onClick:o[5]||(o[5]=t=>S())},m(d(n).common.cancel),1),p("button",{type:"button",class:"button is-light",onClick:o[6]||(o[6]=t=>B())},m(d(n).exhibitors.onboarding.managedFields.crop_again),1)])):u("",!0),e.cropping?(c(),l("button",{key:1,type:"button",class:"button is-light",onClick:o[7]||(o[7]=t=>S())},m(d(n).common.cancel),1)):u("",!0)]),_:1}
1,8,["config"])]))}});export{Re as default};
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.