2 lines
7.9 KiB
JavaScript
2 lines
7.9 KiB
JavaScript
import{D as f,d as R,aM as Y,r as c,o as _,A as H,aQ as K,L as $,aT as X,h as v,f as m,w as o,g as s,O as A,l,j as M,t as U,ac as Z,k as j,V as k,e as b,ag as I,z as S,U as ee,S as le,aY as ae,aK as te,ba as se,i as T,af as oe,x as ne,b as ie,F as ue,p as de,v as E,Q as re,Y as pe}from"./main-BhFWIRV_.js";import{u as me,_ as fe}from"./useModelEditorFunctions-Du2kfr61.js";import{R as ve}from"./RecipeCard-ZQiVryVZ.js";import{u as J,_ as ge,a as Ve}from"./ShoppingListEntryInput.vue_vue_type_style_index_1_lang-DiO3wd3y.js";import{_ as De}from"./ClosableHelpAlert.vue_vue_type_script_setup_true_lang-Bq7D6yIF.js";import{_ as be}from"./AddToShoppingDialog.vue_vue_type_script_setup_true_lang-ByrmCw9F.js";import{a as Se,V as F,b as we,c as P}from"./VTabs-BQFRhgOd.js";import{V as ye}from"./VTextarea-Dyu7dPGe.js";import"./DeleteConfirmDialog.vue_vue_type_script_setup_true_lang-C6y9GBNB.js";import"./KeywordsBar.vue_vue_type_script_setup_true_lang-9vWdzSaj.js";import"./PrivateRecipeBadge.vue_vue_type_script_setup_true_lang-CuYHMwhT.js";import"./BtnCopy.vue_vue_type_script_setup_true_lang-B_1A58TG.js";import"./VTooltip-CP00KBBq.js";import"./useFileApi-4KcBp6Fj.js";import"./model_utils-CVQgSPL_.js";import"./number_utils-1sJWKMUK.js";function B(u,p){let d=[];return u.forEach(r=>{d.push(f.fromJSDate(r).plus({days:p}).toJSDate())}),d}function L(u,p){if(u=u.sort((d,r)=>d.getTime()-r.getTime()),p<0)u.splice(u.length-Math.abs(p),Math.abs(p));else if(u.length==0)u.push(new Date);else{let d=f.fromJSDate(u[u.length-1]);for(let r=0;r<p;r++)u.push(d.plus({days:r+1}).toJSDate())}return u}const Pe=R({__name:"MealPlanEditor",props:{item:{type:{},required:!1,default:null},itemDefaults:{type:{},required:!1,default:{}},itemId:{type:[Number,String],required:!1,default:void 0},dialog:{type:Boolean,default:!1}},emits:["create","save","delete","close","changedState"],setup(u,{emit:p}){const d=u,r=p,{setupState:x,deleteObject:W,saveObject:q,isUpdate:g,editingObjName:z,applyItemDefaults:G,loading:w,editingObj:e,editingObjChanged:C,modelClass:Q}=me("MealPlan",r);Y([()=>d.item,()=>d.itemId],()=>{N()});const y=c("plan"),n=c([]);_(()=>{N()});function N(){const i=new H;w.value=!0,i.apiMealTypeList().then(a=>{let t={};a.results.forEach(D=>{D._default&&(t=D)}),Object.keys(t).length==0&&a.results.length>0&&(t=a.results[0]),x(d.item,d.itemId,{newItemFunction:()=>{e.value.fromDate=f.now().toJSDate(),e.value.toDate=f.now().toJSDate(),e.value.shared=$().userSettings.planShare,e.value.servings=1,e.value.mealType=t,e.value.addshopping=$().userSettings.mealplanAutoaddShopping,G(d.itemDefaults),e.value.toDate<e.value.fromDate&&(e.value.toDate=e.value.fromDate),O(),X(()=>{C.value=!1})},existingItemFunction:()=>{e.value=structuredClone(K(e.value)),O(),h()}})})}function V(){n.value!=null?(e.value.fromDate=n.value[0],n.value[n.value.length-1]>e.value.fromDate?e.value.toDate=n.value[n.value.length-1]:e.value.toDate=e.value.fromDate):re().addMessage(pe.WARNING,"Missing Date",7e3)}function h(){J().refreshFromAPI(e.value.id)}function O(){if(e.value.toDate&&f.fromJSDate(e.value.toDate).diff(f.fromJSDate(e.value.fromDate),"days").toObject().days>=1){n.value=[e.value.fromDate];let i=f.fromJSDate(e.value.fromDate).plus({day:1}).toJSDate();for(;i<=e.value.toDate;)n.value.push(i),i=f.fromJSDate(i).plus({day:1}).toJSDate()}else n.value=[e.value.fromDate,e.value.fromDate]}return(i,a)=>(m(),v(fe,{loading:l(w),dialog:u.dialog,onSave:a[17]||(a[17]=t=>{l(q)().then(D=>{l(E)().plans.set(D.id,D),h()})}),onDelete:a[18]||(a[18]=t=>{l(E)().plans.delete(l(e).id),l(W)()}),onClose:a[19]||(a[19]=t=>{r("close"),C.value=!1}),"is-update":l(g)(),"is-changed":l(C),"model-class":l(Q),"object-name":l(z)(),"editing-object":l(e)},{default:o(()=>[s(A,{class:"pa-0"},{default:o(()=>[s(Se,{modelValue:y.value,"onUpdate:modelValue":a[0]||(a[0]=t=>y.value=t),disabled:l(w),grow:""},{default:o(()=>[s(F,{"prepend-icon":"$mealplan",value:"plan"},{default:o(()=>[M(U(i.$t("Meal_Plan")),1)]),_:1}),s(F,{"prepend-icon":"$shopping",value:"shopping",disabled:!l(g)()},{default:o(()=>[M(U(i.$t("Shopping_list")),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue","disabled"])]),_:1}),s(A,null,{default:o(()=>[s(we,{modelValue:y.value,"onUpdate:modelValue":a[16]||(a[16]=t=>y.value=t)},{default:o(()=>[s(P,{value:"plan"},{default:o(()=>[s(Z,{disabled:l(w)},{default:o(()=>[s(j,null,{default:o(()=>[s(k,{cols:"12",md:"6"},{default:o(()=>[s(I,{model:"Recipe",modelValue:l(e).recipe,"onUpdate:modelValue":[a[1]||(a[1]=t=>l(e).recipe=t),a[2]||(a[2]=t=>l(e).servings=l(e).recipe?l(e).recipe.servings:1)]},null,8,["modelValue"]),l(e)&&l(e).recipe?(m(),v(ve,{key:0,recipe:l(e).recipe,"link-target":"_blank"},null,8,["recipe"])):b("",!0),!l(e).shopping&&l(e).recipe&&l(g)()?(m(),v(S,{key:1,"prepend-icon":"$shopping",color:"create",class:"mt-1"},{default:o(()=>[M(U(i.$t("Add"))+" ",1),s(be,{recipe:l(e).recipe,"meal-plan":l(e),onCreated:a[3]||(a[3]=t=>{h(),l(e).shopping=!0})},null,8,["recipe","meal-plan"])]),_:1})):b("",!0),l(e).recipe&&!l(g)()?(m(),v(ee,{key:2,label:i.$t("AddToShopping"),modelValue:l(e).addshopping,"onUpdate:modelValue":a[4]||(a[4]=t=>l(e).addshopping=t),"hide-details":""},null,8,["label","modelValue"])):b("",!0)]),_:1}),s(k,{cols:"12",md:"6"},{default:o(()=>[s(le,{label:i.$t("Title"),modelValue:l(e).title,"onUpdate:modelValue":a[5]||(a[5]=t=>l(e).title=t)},null,8,["label","modelValue"]),s(l(ae),{modelValue:n.value,"onUpdate:modelValue":[a[6]||(a[6]=t=>n.value=t),a[7]||(a[7]=t=>V())],"first-day-of-week":l($)().deviceSettings.mealplan_startingDayOfWeek,"show-week":l($)().deviceSettings.mealplan_displayWeekNumbers,label:i.$t("Date"),multiple:"range","prepend-icon":"","prepend-inner-icon":"$calendar","hide-details":""},null,8,["modelValue","first-day-of-week","show-week","label"]),s(te,null,{default:o(()=>[s(se,{elevation:"1",class:"w-100",divided:"",border:""},{default:o(()=>[s(S,{class:"w-25",onClick:a[8]||(a[8]=t=>{l(L)(n.value,-1),V()})},{default:o(()=>a[20]||(a[20]=[T("i",{class:"fa-solid fa-minus"},null,-1)])),_:1,__:[20]}),s(S,{class:"w-25",onClick:a[9]||(a[9]=t=>{n.value=l(B)(n.value,-1),V()})},{default:o(()=>a[21]||(a[21]=[T("i",{class:"fa-solid fa-angles-left"},null,-1)])),_:1,__:[21]}),s(S,{class:"w-25",onClick:a[10]||(a[10]=t=>{n.value=l(B)(n.value,1),V()})},{default:o(()=>a[22]||(a[22]=[T("i",{class:"fa-solid fa-angles-right"},null,-1)])),_:1,__:[22]}),s(S,{class:"w-25",onClick:a[11]||(a[11]=t=>{l(L)(n.value,1),V()})},{default:o(()=>a[23]||(a[23]=[T("i",{class:"fa-solid fa-plus"},null,-1)])),_:1,__:[23]})]),_:1})]),_:1}),s(I,{model:"MealType","allow-create":!0,modelValue:l(e).mealType,"onUpdate:modelValue":a[12]||(a[12]=t=>l(e).mealType=t)},null,8,["modelValue"]),s(oe,{"control-variant":"split",min:0,modelValue:l(e).servings,"onUpdate:modelValue":a[13]||(a[13]=t=>l(e).servings=t),label:i.$t("Servings"),precision:2},null,8,["modelValue","label"]),s(I,{model:"User","allow-create":!1,modelValue:l(e).shared,"onUpdate:modelValue":a[14]||(a[14]=t=>l(e).shared=t),"item-label":"displayName",mode:"tags"},null,8,["modelValue"])]),_:1})]),_:1}),s(j,{dense:""},{default:o(()=>[s(k,{cols:"12"},{default:o(()=>[s(ye,{label:i.$t("Note"),modelValue:l(e).note,"onUpdate:modelValue":a[15]||(a[15]=t=>l(e).note=t),rows:"3"},null,8,["label","modelValue"])]),_:1})]),_:1})]),_:1},8,["disabled"])]),_:1}),s(P,{value:"shopping"},{default:o(()=>[s(De,{class:"mb-2",text:i.$t("MealPlanShoppingHelp")},null,8,["text"]),l(g)()?(m(),v(j,{key:0,dense:"",style:{"max-height":"75vh","min-height":"30vh"},class:"overflow-y-scroll"},{default:o(()=>[s(k,null,{default:o(()=>[s(ge,{loading:l(J)().currentlyUpdating,"meal-plan":l(e)},null,8,["loading","meal-plan"]),l(e).id?(m(),v(ne,{key:0},{default:o(()=>[(m(!0),ie(ue,null,de(l(J)().getMealPlanEntries(l(e).id),t=>(m(),v(Ve,{"shopping-list-food":t,"hide-info-row":"",key:t.food.id},null,8,["shopping-list-food"]))),128))]),_:1})):b("",!0)]),_:1})]),_:1})):b("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["loading","dialog","is-update","is-changed","model-class","object-name","editing-object"]))}});export{Pe as default};
|