import{d as q,aM as x,u as z,r as m,o as G,h as H,f as Q,w as d,g as t,O as B,l,j as S,t as w,ac as Y,S as _,ag as c,af as J,z as $,G as K,A as g,Q as p,R as v,Y as X,ad as Z,L as ee}from"./main-BhFWIRV_.js";import{u as ae,_ as le}from"./useModelEditorFunctions-Du2kfr61.js";import{a as te,V as I,b as oe,c as U}from"./VTabs-BQFRhgOd.js";import{V as ie}from"./VTextarea-Dyu7dPGe.js";import{V as de}from"./VDataTableServer-PUUq4Eqa.js";import"./DeleteConfirmDialog.vue_vue_type_script_setup_true_lang-C6y9GBNB.js";const fe=q({__name:"RecipeBookEditor",props:{item:{type:{},required:!1,default:null},itemId:{type:[Number,String],required:!1,default:void 0},itemDefaults:{type:{},required:!1,default:{}},dialog:{type:Boolean,default:!1}},emits:["create","save","delete","close","changedState"],setup(V,{emit:D}){const u=V,b=D,{setupState:O,deleteObject:j,saveObject:P,isUpdate:E,editingObjName:F,loading:r,editingObj:i,editingObjChanged:k,modelClass:M}=ae("RecipeBook",b);x([()=>u.item,()=>u.itemId],()=>{T()});const{t:N}=z(),f=m("book"),s=m([]),n=m({}),R=m(1),C=m(0),h=[{title:N("Name"),key:"recipeContent.name"},{key:"action",width:"1%",noBreak:!0,align:"end"}];G(()=>{T()});function T(){O(u.item,u.itemId,{newItemFunction:()=>{i.value.shared=[],s.value=[]},existingItemFunction:()=>{s.value=[]},itemDefaults:u.itemDefaults})}function A(){let o=new g;if(Object.keys(n.value).length>0){let a=!1;s.value.forEach(e=>{e.recipe==n.value.id&&(a=!0)}),a?(n.value={},p().addMessage(X.WARNING,$t("WarningRecipeBookEntryDuplicate"),5e3)):o.apiRecipeBookEntryCreate({recipeBookEntry:{book:i.value.id,recipe:n.value.id}}).then(e=>{s.value.push(e),n.value={}}).catch(e=>{p().addError(v.CREATE_ERROR,e)})}}function L(o){new g().apiRecipeBookEntryDestroy({id:o.id}).then(e=>{s.value.splice(s.value.findIndex(y=>y.id==o.id),1),p().addPreparedMessage(Z.DELETE_SUCCESS)}).catch(e=>{p().addError(v.DELETE_ERROR,e)})}function W(o){let a=new g;r.value=!0,window.scrollTo({top:0,behavior:"smooth"}),R.value!=o.page&&(R.value=o.page),ee().deviceSettings.general_tableItemsPerPage=o.itemsPerPage,a.apiRecipeBookEntryList({page:o.page,pageSize:o.itemsPerPage,book:i.value.id}).then(e=>{s.value=e.results,C.value=e.count}).catch(e=>{p().addError(v.FETCH_ERROR,e)}).finally(()=>{r.value=!1})}return(o,a)=>(Q(),H(le,{loading:l(r),dialog:V.dialog,onSave:l(P),onDelete:l(j),onClose:a[9]||(a[9]=e=>{b("close"),k.value=!1}),"is-update":l(E)(),"is-changed":l(k),"model-class":l(M),"object-name":l(F)(),"editing-object":l(i)},{default:d(()=>[t(B,{class:"pa-0"},{default:d(()=>[t(te,{modelValue:f.value,"onUpdate:modelValue":a[0]||(a[0]=e=>f.value=e),disabled:l(r),grow:""},{default:d(()=>[t(I,{value:"book"},{default:d(()=>[S(w(o.$t("Book")),1)]),_:1}),t(I,{value:"recipes",disabled:!l(E)()},{default:d(()=>[S(w(o.$t("Recipes")),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue","disabled"])]),_:1}),t(B,null,{default:d(()=>[t(oe,{modelValue:f.value,"onUpdate:modelValue":a[8]||(a[8]=e=>f.value=e)},{default:d(()=>[t(U,{value:"book"},{default:d(()=>[t(Y,{disabled:l(r)},{default:d(()=>[t(_,{label:o.$t("Name"),modelValue:l(i).name,"onUpdate:modelValue":a[1]||(a[1]=e=>l(i).name=e)},null,8,["label","modelValue"]),t(ie,{label:o.$t("Description"),modelValue:l(i).description,"onUpdate:modelValue":a[2]||(a[2]=e=>l(i).description=e),rows:"3"},null,8,["label","modelValue"]),t(c,{model:"User",modelValue:l(i).shared,"onUpdate:modelValue":a[3]||(a[3]=e=>l(i).shared=e),mode:"tags"},null,8,["modelValue"]),t(c,{model:"CustomFilter",modelValue:l(i).filter,"onUpdate:modelValue":a[4]||(a[4]=e=>l(i).filter=e)},null,8,["modelValue"]),t(J,{label:o.$t("Order"),hint:o.$t("OrderInformation"),modelValue:l(i).order,"onUpdate:modelValue":a[5]||(a[5]=e=>l(i).order=e)},null,8,["label","hint","modelValue"])]),_:1},8,["disabled"])]),_:1}),t(U,{value:"recipes"},{default:d(()=>[t(c,{model:"Recipe",modelValue:n.value,"onUpdate:modelValue":a[7]||(a[7]=e=>n.value=e)},{append:d(()=>[t($,{icon:"",color:"create",onClick:a[6]||(a[6]=e=>A())},{default:d(()=>[t(K,{icon:"$create"})]),_:1})]),_:1},8,["modelValue"]),t(de,{"onUpdate:options":W,items:s.value,headers:h,"items-length":C.value},{"item.action":d(({item:e})=>[t($,{icon:"$delete",color:"delete",onClick:y=>L(e)},null,8,["onClick"])]),_:1},8,["items","items-length"])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["loading","dialog","onSave","onDelete","is-update","is-changed","model-class","object-name","editing-object"]))}});export{fe as default};