1import{c as r,a as s,t as d,G as m,i as l,I as u,b as n,F as p,d as c,u as g,h,f,o,ai as b,L as I}from"./index-DWmm2o1M.js";import{F as v}from"./FileUpload-CpMJnONB.js";import"./IconArrowsExchange-CrCgX51N.js";import"./IconFile-84bTlLhW.js";const P={class:"card margin-2x"},y={class:"card__header"},D={class:"card__header-title"},F={class:"card__body padding-2x"},$={class:"display-flex gap-1x"},U={class:"display-flex flex-justify-end"},V=["disabled"],k={key:0},_={class:"form__field-label"},j=["src","alt"],q={created(){this.$nliven({resource:"api/admin/products/account"}).then(({data:a})=>this.products=a)},data(){return{clear:!1,env:{submitting:!1},image:{file:""},inputs:{ProductID:{label:this.$t("admin.tools.update-product-image.product-id"),required:!0,type:"number",value:""}},products:[]}},methods:{readImageFile(a){const e=a.type==="drop"?a.dataTransfer.files:a.target.files;if(this.image.file=e[0],this.image.file){const t=new FileReader;t.onload=()=>{const i=t.result;this.image.value=i},t.readAsDataURL(this.image.file)}},uploadProductImage(){this.env.submitting=!0;const a=new FormData;a.append("file",this.image.file),this.$nliven({method:"POST",resource:`api/admin/products/${this.inputs.ProductID.value}/uploadImage`,body:a}).then(({success:e,data:t})=>{this.env.submitting=!1,this.image.dragging=!1,f().setToast({variant:e?"success":"danger",message:e?this.$t("admin.tools.update-product-image.success-message"):t,dismiss:e}),this.inputs.ProductID.value="",this.clear=!0})}},computed:{currentProductUrl(){var t;if(!this.products)return null;const a=(t=this.products.find(i=>i.id===parseInt(this.inputs.ProductID.value)))==null?void 0:t.imageUrl;if(!a)return null;const e=Math.random()*100;return`${a}?r=${e}`},isFormIncomplete(){const a=["ProductID"];return!this.image.file||this.image.file.type!=="image/jpeg"||!a.some(e=>this.inputs[e]&&this.inputs[e].value!=="")}}},N=Object.assign(q,{__name:"UpdateProductImage",setup(a){return(e,t)=>(o(),r("div",P,[s("div",y,[s("h3",D,d(e.$t("admin.tools.update-product-image.title")),1)]),s("div",F,[s("form",{onSubmit:t[3]||(t[3]=m((...i)=>e.uploadProductImage&&e.uploadProductImage(...i),["prevent"]))},[s("div",$,[l(u,{modelValue:e.inputs.ProductID.value,"onUpdate:modelValue":t[0]||(t[0]=i=>e.inputs.ProductID.value=i),label:e.inputs.ProductID.label,info:e.$t("admin.tools.update-product-image.product-id-instru
1ctions"),required:e.inputs.ProductID.required,type:e.inputs.ProductID.type,"data-test":"product-id"},null,8,["modelValue","label","info","required","type"]),l(u,{modelValue:e.inputs.ProductID.value,"onUpdate:modelValue":t[1]||(t[1]=i=>e.inputs.ProductID.value=i),options:e.products,name:"Product",type:"select"},null,8,["modelValue","options"])]),(o(),n(v,{onFileDropped:e.readImageFile,onFileChanged:e.readImageFile,accept:"image/jpeg, image/jpg",label:e.$t("admin.tools.update-product-image.image"),key:e.$t("admin.tools.update-product-image.image"),required:!0,clear:e.clear},null,8,["onFileDropped","onFileChanged","label","clear"])),s("div",U,[s("button",{disabled:e.isFormIncomplete||e.env.submitting,type:"submit",class:"xl-button-width button button--primary","data-test":"update-product-image"},[e.env.submitting?(o(),n(I,{key:0,size:35})):(o(),r(p,{key:1},[c(d(e.$t("admin.tools.update-product-image.title")),1)],64))],8,V)]),e.currentProductUrl?(o(),r("div",k,[s("legend",_,[s("span",null,d(e.$t("admin.tools.update-product-image.current-product-image")),1)]),s("img",{onError:t[2]||(t[2]=i=>g(b)(i)),src:e.currentProductUrl,alt:e.$t("admin.tools.update-product-image.current-product-image")},null,40,j)])):h("",!0)],32)])]))}});export{N as default}; 2//# sourceMappingURL=UpdateProductImage-FFve0SlJ.js.map
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.