Files
dockerStuff/config/tandoor/staticfiles/vue3/assets/RecipeImportPage-DvlxImUu.js
2025-11-16 21:46:46 +00:00

9 lines
29 KiB
JavaScript

import{d as Ee,b as k,F as S,h as p,e as m,k as A,w as t,g as l,V as C,b7 as Fe,j as n,t as u,f as r,b8 as _e,a as el,u as ll,a7 as tl,c as al,r as g,L as Ce,o as ol,A as q,s as ul,Q as G,R as h,D as il,K as nl,B as Z,M as N,l as R,z as d,W as rl,aR as Ie,S as K,ag as We,b1 as dl,G as x,aa as ke,ab as sl,x as z,p as J,i as P,b9 as Ae,ba as Ge,aN as pl,aO as vl,O as ml,aP as gl,N as fl,af as Cl,U as _,ad as Ne,Y as Te,y as T,n as Il,bb as kl,ai as ue,H as He}from"./main-BhFWIRV_.js";import{_ as Al,m as bl,s as $l,a as Vl,l as cl}from"./step_utils-C0FnMRXv.js";import{u as yl}from"./useFileApi-4KcBp6Fj.js";import{I as Sl}from"./integration_utils-sX7uYpAT.js";import{V as j}from"./VTextarea-Dyu7dPGe.js";import{e as Rl,V as wl,a as V,b as Bl,c,d as y}from"./VStepper-lPKDXqVi.js";import{V as Ke}from"./VFileUpload-DmaEfjuX.js";import"./model_utils-CVQgSPL_.js";import"./fileDrop-BjiZTCss.js";const Ul=Ee({__name:"ImportLogViewer",props:{importLog:{type:{},required:!0}},setup(ee){const U=ee;return(ie,w)=>(r(),k(S,null,[U.importLog.importedRecipes!=null&&U.importLog.totalRecipes!=null?(r(),p(A,{key:0},{default:t(()=>[l(C,null,{default:t(()=>[l(Fe,{"model-value":U.importLog.importedRecipes/U.importLog.totalRecipes*100,height:"24",color:"primary"},{default:t(()=>[n(u(U.importLog.importedRecipes)+" / "+u(U.importLog.totalRecipes),1)]),_:1},8,["model-value"])]),_:1})]),_:1})):m("",!0),U.importLog.importedRecipes!=null&&U.importLog.totalRecipes!=null?(r(),p(A,{key:1},{default:t(()=>[l(C,null,{default:t(()=>[l(j,{"model-value":ee.importLog.msg,"max-rows":"25",loading:ee.importLog.running,"auto-grow":""},null,8,["model-value","loading"])]),_:1})]),_:1})):m("",!0)],64))}}),Ll="data:text/javascript;base64,KGZ1bmN0aW9uKCl7CgogICAgdmFyIHYgPSAiMS4zLjIiOwoKICAgIGlmICh3aW5kb3cualF1ZXJ5ID09PSB1bmRlZmluZWQgfHwgd2luZG93LmpRdWVyeS5mbi5qcXVlcnkgPCB2KSB7CiAgICAgICAgdmFyIGRvbmUgPSBmYWxzZTsKICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgc2NyaXB0LnNyYyA9ICJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8iICsgdiArICIvanF1ZXJ5Lm1pbi5qcyI7CiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpewogICAgICAgICAgICBpZiAoIWRvbmUgJiYgKCF0aGlzLnJlYWR5U3RhdGUgfHwgdGhpcy5yZWFkeVN0YXRlID09ICJsb2FkZWQiIHx8IHRoaXMucmVhZHlTdGF0ZSA9PSAiY29tcGxldGUiKSkgewogICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgICAgICAgICBpbml0Qm9va21hcmtsZXQoKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgfSBlbHNlIHsKICAgICAgICBpbml0Qm9va21hcmtsZXQoKTsKICAgIH0KICAgIGZ1bmN0aW9uIGluaXRCb29rbWFya2xldCgpIHsKICAgICAgICAod2luZG93LmJvb2ttYXJrbGV0VGFuZG9vciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBsZXQgcmVjaXBlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm91dGVySFRNTAogICAgICAgICAgICBsZXQgd2luZG93TmFtZSA9ICJJbXBvcnRSZWNpcGUiCiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaW1wb3J0VVJMJykKICAgICAgICAgICAgbGV0IHJlZGlyZWN0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JlZGlyZWN0VVJMJykKICAgICAgICAgICAgbGV0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rva2VuJykKICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHsgJ3VybCc6IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgJ2h0bWwnIDogcmVjaXBlfTsgCiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKICAgICAgICAgICAgeGhyLm9wZW4oJ1BPU1QnLCB1cmwsIHRydWUpOwogICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTsKICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB0b2tlbik7CgogICAgICAgICAgICAvLyBsaXN0ZW4gZm9yIGBvbmxvYWRgIGV2ZW50CiAgICAgICAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7CiAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHJlc3BvbnNlCiAgICAgICAgICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT0gNCAmJiB4aHIuc3RhdHVzID09IDIwMSkgewogICAgICAgICAgICAgICAgICAgIC8vIHBhcnNlIEpTT04gZGF0YQogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHJlZGlyZWN0LmNvbmNhdCgnP2Jvb2ttYXJrbGV0X2ltcG9ydD0nLCBKU09OLnBhcnNlKHhoci5yZXNwb25zZSkuaWQpICkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IhJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHhoci5zZW5kKEpTT04uc3RyaW5naWZ5KHBhcmFtcykpOwogICAgICAgICAgICB9CiAgICAgICAgKSgpOwogICAgfQp9KSgpOw==",Zl={key:1},Wl={class:"text-h5"},Gl={class:"text-h5"},Nl={key:0},Tl={key:0},Hl={key:0},Kl={key:0},jl=Ee({__name:"RecipeImportPage",setup(ee){function U(){de.value=E.value.split(`
`),I.value=!0,ie()}function ie(){let o=new q,e=de.value.pop();e!=null&&e.trim()!=""?o.apiRecipeFromSourceCreate({recipeFromSource:{url:e}}).then(s=>{s.recipe&&o.apiRecipeCreate({recipe:s.recipe}).then(B=>{te.value.push(B),be(B.id,null,s.recipe?.imageUrl).then(a=>{setTimeout(ie,500)})}).catch(B=>{}).finally(()=>{I.value=!1})}).catch(s=>{s.response.status==429?G().addPreparedMessage(Ne.RATE_LIMIT,s):G().addMessage(Te.WARNING,Je("ErrorUrlListImport"),8e3,e),E.value=e+`
`+de.value.join(`
`),v.value="url_list_input"}).finally(()=>{}):(G().addPreparedMessage(Ne.CREATE_SUCCESS),I.value=!1)}const w=_e("history",{}),{mobile:ne}=el(),re=ul(),{t:Je}=ll(),{updateRecipeImage:be,doAiImport:$e,doAppImport:Pe,fileApiLoading:Ve}=yl(),{getDjangoUrl:ce}=tl(),Xe=al(()=>`javascript:(function(){if(window.bookmarkletTandoor!==undefined){bookmarkletTandoor();} else {localStorage.setItem("importURL", "${ce("/api/bookmarklet-import/")}");localStorage.setItem("redirectURL", "${ce("/recipe/import/")}");localStorage.setItem("token", "${oe.value}");document.body.appendChild(document.createElement("script")).src="${Ll}"}})()`),f=g("url"),le=g("DEFAULT"),v=g("type"),X=g(!1),I=g(!1),W=g(""),E=g(""),de=g([]),te=g([]),L=g(""),ae=g([]),se=g(!1),pe=g(!0),ve=g(!0),me=g(!1),Y=g(null),Q=g(null),H=g("file"),O=g(Ce().activeSpace.aiDefaultProvider),ge=g(!1),oe=g(""),i=g({}),D=g(null),b=g({}),ye=g(0),fe=g(!1),Se=g({}),Re=g(0);ol(()=>{he(),w.url&&typeof w.url=="string"&&(W.value=w.url,F({url:W.value})),w.text&&typeof w.text=="string"&&(W.value=w.text,F({url:W.value})),w.bookmarklet_import&&typeof w.bookmarklet_import=="string"&&!isNaN(parseInt(w.bookmarklet_import))&&(f.value="url",F({bookmarklet:parseInt(w.bookmarklet_import)}))});function F(o){let e=new q;I.value=!0,i.value={},e.apiRecipeFromSourceCreate({recipeFromSource:o}).then(s=>{if(s.recipeId!=null){re.push({name:"RecipeViewPage",params:{id:s.recipeId}});return}i.value=s,i.value.duplicates&&i.value.duplicates.length>0?v.value="duplicates":i.value.images&&i.value.images.length>0?v.value="image_chooser":v.value="keywords_chooser"}).catch(s=>{s.response.json().then(B=>{B.error?i.value=B:G().addError(h.FETCH_ERROR,B)})}).finally(()=>{I.value=!1})}function we(){let o=null;O.value==null&&G().addError(h.CREATE_ERROR,"No AI Provider selected"),Q.value!=null&&H.value=="file"?o=$e(O.value.id,Q.value):L.value!=""&&H.value=="text"&&(o=$e(O.value.id,null,L.value)),o!=null&&(I.value=!0,o.then(e=>{I.value=!1,i.value=e,i.value.error||(i.value.images&&i.value.images.length>0?v.value="image_chooser":v.value="keywords_chooser")}).catch(e=>{G().addError(h.FETCH_ERROR,e)}))}function Ye(){Pe(ae.value,le.value,se.value,pe.value,ve.value,me.value).then(o=>{v.value="import_log",Be(o)})}function Be(o){new q().apiImportLogRetrieve({id:o}).then(s=>{Y.value=s,s.running&&setTimeout(()=>{Be(o)},1e3)}).catch(s=>{G().addError(h.FETCH_ERROR,s)})}function De(){let o=new q;i.value.recipe&&(I.value=!0,i.value.recipe.keywords=i.value.recipe.keywords.filter(e=>e.importKeyword),o.apiRecipeCreate({recipe:i.value.recipe}).then(e=>{be(e.id,null,i.value.recipe?.imageUrl).then(s=>{ge.value?re.push({name:"ModelEditPage",params:{id:e.id,model:"recipe"}}):re.push({name:"RecipeViewPage",params:{id:e.id}})})}).catch(e=>{G().addError(h.CREATE_ERROR,e)}).finally(()=>{I.value=!1}))}function Me(o){i.value.recipe&&i.value.recipe.steps.splice(i.value.recipe.steps.findIndex(e=>e===o),1)}function ze(){i.value.recipe&&i.value.recipe.steps&&(i.value.recipe.steps=bl(i.value.recipe.steps))}function je(){i.value.recipe&&i.value.recipe.steps&&$l(i.value.recipe.steps,`
`)}function Qe(o,e){o.ingredients=o.ingredients.filter(s=>s!=e)}function Oe(){if(i.value.recipe){let o=i.value.recipe.steps.flatMap(e=>e.ingredients);i.value.recipe.steps.forEach(e=>e.ingredients=[]),o.forEach(e=>{let s=!1;i.value.recipe.steps.forEach(B=>{B.instruction.toLowerCase().includes(e.food.name.trim().toLowerCase())&&!s&&(s=!0,B.ingredients.push(e))}),s||i.value.recipe.steps[0].ingredients.push(e)})}else G().addMessage(Te.ERROR,"no steps found to split")}function Ue(o){i.value.recipe?.keywords.forEach(e=>{e.importKeyword=o})}function qe(){i.value.recipe?.steps.push({ingredients:[],instruction:""})}function he(){let o=new q;o.apiAccessTokenList().then(e=>{e.forEach(s=>{s.scope=="bookmarklet"&&(oe.value=s.token)}),oe.value==""&&o.apiAccessTokenCreate({accessToken:{scope:"bookmarklet",expires:il.now().plus({year:100}).toJSDate()}}).then(s=>{oe.value=s.token})})}function Le(){location.reload()}return(o,e)=>(r(),k(S,null,[l(nl,null,{default:t(()=>[l(A,null,{default:t(()=>[l(C,null,{default:t(()=>[l(Rl,{modelValue:v.value,"onUpdate:modelValue":e[73]||(e[73]=s=>v.value=s)},{default:t(({prev:s,next:B})=>[l(wl,null,{default:t(()=>[l(V,{title:o.$t("Type"),value:"type",icon:" "},null,8,["title"]),l(Z),["url","ai","source"].includes(f.value)?(r(),k(S,{key:0},[l(V,{title:o.$t("Import"),value:"url",icon:" "},null,8,["title"]),l(Z),i.value.duplicates&&i.value.duplicates.length>0?(r(),k(S,{key:0},[l(V,{title:o.$t("Duplicate"),value:"duplicates",icon:" "},null,8,["title"]),l(Z)],64)):m("",!0),l(V,{title:o.$t("Image"),value:"image_chooser",icon:" "},null,8,["title"]),l(Z),l(V,{title:o.$t("Keywords"),value:"keywords_chooser",icon:" "},null,8,["title"]),l(Z),l(V,{title:o.$t("Steps"),value:"step_editor",icon:" "},null,8,["title"]),l(Z),l(V,{title:o.$t("Save"),value:"confirm",icon:" "},null,8,["title"])],64)):m("",!0),f.value=="app"?(r(),k(S,{key:1},[l(V,{title:o.$t("App"),value:"app",icon:" "},null,8,["title"]),l(Z),l(V,{title:o.$t("File"),value:"file",icon:" "},null,8,["title"]),l(Z),l(V,{title:o.$t("Import"),value:"import_log",icon:" "},null,8,["title"])],64)):m("",!0),f.value=="bookmarklet"?(r(),p(V,{key:2,title:o.$t("Bookmarklet"),value:"bookmarklet",icon:" "},null,8,["title"])):m("",!0),f.value=="url-list"?(r(),k(S,{key:3},[l(V,{title:o.$t("UrlList"),value:"url_list_input",icon:" "},null,8,["title"]),l(Z),l(V,{title:o.$t("Import"),value:"url_list_import",icon:" "},null,8,["title"])],64)):m("",!0)]),_:1}),l(Bl,null,{default:t(()=>[l(c,{value:"type"},{default:t(()=>[l(A,null,{default:t(()=>[l(C,{cols:"12",md:"6"},{default:t(()=>[l(N,{title:o.$t("Url_Import"),subtitle:o.$t("UrlImportSubtitle"),"prepend-icon":"$import",variant:"outlined",color:f.value=="url"?"primary":"",elevation:"1",onClick:e[0]||(e[0]=a=>f.value="url")},null,8,["title","subtitle","color"])]),_:1}),R(Ce)().activeSpace.aiEnabled?(r(),p(C,{key:0,cols:"12",md:"6"},{default:t(()=>[l(N,{title:o.$t("AI"),subtitle:o.$t("AIImportSubtitle"),"prepend-icon":"$ai",variant:"outlined",color:f.value=="ai"?"primary":"",elevation:"1",onClick:e[1]||(e[1]=a=>f.value="ai"),disabled:!R(Ce)().activeSpace.aiEnabled},null,8,["title","subtitle","color","disabled"])]),_:1})):m("",!0),l(C,{cols:"12",md:"6"},{default:t(()=>[l(N,{title:o.$t("App"),subtitle:o.$t("AppImportSubtitle"),"prepend-icon":"fa-solid fa-folder-open",variant:"outlined",color:f.value=="app"?"primary":"",elevation:"1",onClick:e[2]||(e[2]=a=>f.value="app")},null,8,["title","subtitle","color"])]),_:1}),l(C,{cols:"12",md:"6"},{default:t(()=>[l(N,{title:o.$t("Bookmarklet"),subtitle:o.$t("BookmarkletImportSubtitle"),"prepend-icon":"fa-solid fa-bookmark",variant:"outlined",color:f.value=="bookmarklet"?"primary":"",elevation:"1",onClick:e[3]||(e[3]=a=>f.value="bookmarklet")},null,8,["title","subtitle","color"])]),_:1}),l(C,{cols:"12",md:"6"},{default:t(()=>[l(N,{title:"JSON/HTML",subtitle:o.$t("SourceImportSubtitle"),"prepend-icon":"fa-solid fa-code",variant:"outlined",color:f.value=="source"?"primary":"",elevation:"1",onClick:e[4]||(e[4]=a=>f.value="source")},null,8,["subtitle","color"])]),_:1}),l(C,{cols:"12",md:"6"},{default:t(()=>[l(N,{title:o.$t("UrlList"),subtitle:o.$t("UrlListSubtitle"),"prepend-icon":"fa-solid fa-list",variant:"outlined",color:f.value=="url-list"?"primary":"",elevation:"1",onClick:e[5]||(e[5]=a=>f.value="url-list")},null,8,["title","subtitle","color"])]),_:1})]),_:1}),l(y,null,{prev:t(()=>[l(rl)]),next:t(()=>[["url","ai","source"].includes(f.value)?(r(),p(d,{key:0,onClick:e[6]||(e[6]=a=>v.value="url"),color:"success"},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})):m("",!0),f.value=="app"?(r(),p(d,{key:1,onClick:e[7]||(e[7]=a=>v.value="app"),color:"success"},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})):m("",!0),f.value=="bookmarklet"?(r(),p(d,{key:2,onClick:e[8]||(e[8]=a=>v.value="bookmarklet"),color:"success"},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})):m("",!0),f.value=="url-list"?(r(),p(d,{key:3,onClick:e[9]||(e[9]=a=>v.value="url_list_input"),color:"success"},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})):m("",!0)]),_:1})]),_:1}),l(c,{value:"url"},{default:t(()=>[f.value=="url"?(r(),p(K,{key:0,label:o.$t("Website")+" (https://...)",modelValue:W.value,"onUpdate:modelValue":e[10]||(e[10]=a=>W.value=a),loading:I.value,autofocus:"",onKeydown:e[11]||(e[11]=Ie(a=>F({url:W.value}),["enter"]))},null,8,["label","modelValue","loading"])):m("",!0),f.value=="ai"?(r(),k("div",Zl,[l(A,null,{default:t(()=>[l(C,{cols:"12",md:"6"},{default:t(()=>[l(We,{model:"AiProvider",modelValue:O.value,"onUpdate:modelValue":e[12]||(e[12]=a=>O.value=a),"hide-details":""},{append:t(()=>[l(d,{icon:"$settings",to:{name:"ModelListPage",params:{model:"AiProvider"}},color:"success"})]),_:1},8,["modelValue"])]),_:1}),l(C,{cols:"12",md:"6"},{default:t(()=>[l(dl,{class:"mb-2",border:"",divided:"",modelValue:H.value,"onUpdate:modelValue":e[13]||(e[13]=a=>H.value=a)},{default:t(()=>[l(d,{value:"file"},{default:t(()=>[n(u(o.$t("File")),1)]),_:1}),l(d,{value:"text"},{default:t(()=>[n(u(o.$t("Text")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),H.value=="file"?(r(),p(R(Ke),{key:0,modelValue:Q.value,"onUpdate:modelValue":e[14]||(e[14]=a=>Q.value=a),loading:I.value,clearable:""},{icon:t(()=>[l(x,{icon:"fa-solid fa-file-pdf"}),n(" "+u(o.$t("or"))+" ",1),l(x,{icon:"fa-solid fa-file-image"})]),_:1},8,["modelValue","loading"])):m("",!0),H.value=="text"?(r(),p(j,{key:1,modelValue:L.value,"onUpdate:modelValue":e[15]||(e[15]=a=>L.value=a),loading:I.value,autofocus:"",onKeydown:e[16]||(e[16]=Ie(a=>we(),["enter"]))},null,8,["modelValue","loading"])):m("",!0)])):m("",!0),f.value=="source"?(r(),p(j,{key:2,modelValue:L.value,"onUpdate:modelValue":e[17]||(e[17]=a=>L.value=a),label:"JSON/HTML",loading:I.value,hint:o.$t("SourceImportHelp"),"persistent-hint":"",autofocus:"",onKeydown:e[18]||(e[18]=Ie(a=>F({data:L.value}),["enter"]))},null,8,["modelValue","loading","hint"])):m("",!0),i.value.error?(r(),p(ke,{key:3,title:o.$t("Error"),text:i.value.msg,color:"warning"},null,8,["title","text"])):m("",!0),l(y,null,{prev:t(()=>[l(d,{onClick:e[19]||(e[19]=a=>{v.value="type",i.value={}})},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[f.value=="url"?(r(),p(d,{key:0,onClick:e[20]||(e[20]=a=>F({url:W.value})),disabled:W.value=="",loading:I.value},{default:t(()=>[n(u(o.$t("Load")),1)]),_:1},8,["disabled","loading"])):m("",!0),f.value=="source"?(r(),p(d,{key:1,onClick:e[21]||(e[21]=a=>F({data:L.value})),disabled:L.value=="",loading:I.value},{default:t(()=>[n(u(o.$t("Load")),1)]),_:1},8,["disabled","loading"])):m("",!0),f.value=="ai"?(r(),p(d,{key:2,onClick:e[22]||(e[22]=a=>we()),disabled:H.value=="file"&&Q.value==null||H.value=="text"&&L.value=="",loading:I.value},{default:t(()=>[n(u(o.$t("Load")),1)]),_:1},8,["disabled","loading"])):m("",!0)]),_:1})]),_:1}),l(c,{value:"duplicates"},{default:t(()=>[i.value.duplicates&&i.value.duplicates.length>0?(r(),p(ke,{key:0,variant:"tonal"},{default:t(()=>[l(sl,null,{default:t(()=>[n(u(o.$t("Duplicate")),1)]),_:1}),n(" "+u(o.$t("DuplicateFoundInfo"))+" ",1),l(z,null,{default:t(()=>[(r(!0),k(S,null,J(i.value.duplicates,a=>(r(),p(T,{to:{name:"RecipeViewPage",params:{id:a.id}},key:a.id},{default:t(()=>[n(u(a.name)+" (#"+u(a.id)+") ",1)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})):m("",!0),l(y,null,{prev:t(()=>[l(d,{onClick:e[23]||(e[23]=a=>v.value="url")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[24]||(e[24]=a=>v.value="image_chooser")},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})]),_:1})]),_:1}),l(c,{value:"image_chooser"},{default:t(()=>[l(A,null,{default:t(()=>[l(C,{cols:"12",md:"6"},{default:t(()=>[P("h2",Wl,u(o.$t("Selected")),1),l(Ae,{"max-height":"30vh",src:i.value.recipe.imageUrl},null,8,["src"])]),_:1}),l(C,{cols:"12",md:"6"},{default:t(()=>[P("h2",Gl,u(o.$t("Available")),1),l(A,{dense:""},{default:t(()=>[(r(!0),k(S,null,J(i.value.images,a=>(r(),p(C,{cols:"4"},{default:t(()=>[l(Ae,{"max-height":"10vh",cover:"","aspect-ratio":"1",src:a,onClick:M=>i.value.recipe.imageUrl=a},null,8,["src","onClick"])]),_:2},1024))),256))]),_:1})]),_:1})]),_:1}),l(y,null,{prev:t(()=>[i.value.duplicates&&i.value.duplicates.length>0?(r(),p(d,{key:0,onClick:e[25]||(e[25]=a=>v.value="duplicates")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})):(r(),p(d,{key:1,onClick:e[26]||(e[26]=a=>v.value="url")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1}))]),next:t(()=>[l(d,{onClick:e[27]||(e[27]=a=>v.value="keywords_chooser")},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})]),_:1})]),_:1}),l(c,{value:"keywords_chooser"},{default:t(()=>[l(A,null,{default:t(()=>[l(C,{class:"text-center"},{default:t(()=>[l(Ge,{border:"",divided:""},{default:t(()=>[l(d,{"prepend-icon":"fa-solid fa-square-check",onClick:e[28]||(e[28]=a=>Ue(!0))},{default:t(()=>[n(u(o.$t("SelectAll")),1)]),_:1}),l(d,{"prepend-icon":"fa-solid fa-square-minus",onClick:e[29]||(e[29]=a=>Ue(!1))},{default:t(()=>[n(u(o.$t("SelectNone")),1)]),_:1})]),_:1})]),_:1})]),_:1}),l(A,null,{default:t(()=>[l(C,null,{default:t(()=>[l(We,{model:"Keyword",modelValue:D.value,"onUpdate:modelValue":e[31]||(e[31]=a=>D.value=a),"allow-create":""},{append:t(()=>[l(d,{icon:"$add",color:"success",onClick:e[30]||(e[30]=a=>{D.value.importKeyword=!0,i.value.recipe.keywords.push(D.value),D.value=null}),disabled:D.value==null},null,8,["disabled"])]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(z,null,{default:t(()=>[(r(!0),k(S,null,J(i.value.recipe.keywords,a=>(r(),p(T,{border:"",key:a,class:Il({"bg-success":a.importKeyword}),onClick:M=>a.importKeyword=!a.importKeyword},{append:t(()=>[l(kl,{"model-value":a.importKeyword},null,8,["model-value"])]),default:t(()=>[n(u(a.label)+" ",1)]),_:2},1032,["class","onClick"]))),128))]),_:1}),l(y,null,{prev:t(()=>[l(d,{onClick:e[32]||(e[32]=a=>v.value="image_chooser")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[33]||(e[33]=a=>v.value="step_editor")},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})]),_:1})]),_:1}),l(c,{value:"step_editor"},{default:t(()=>[l(A,null,{default:t(()=>[l(C,{class:"text-center"},{default:t(()=>[l(Ge,{border:"",divided:""},{default:t(()=>[l(d,{"prepend-icon":"fa-solid fa-shuffle",onClick:e[34]||(e[34]=a=>Oe())},{default:t(()=>[R(ne)?m("",!0):(r(),k("span",Nl,u(o.$t("Auto_Sort")),1))]),_:1}),l(d,{"prepend-icon":"fa-solid fa-maximize",onClick:e[35]||(e[35]=a=>je())},{default:t(()=>[R(ne)?m("",!0):(r(),k("span",Tl,u(o.$t("Split")),1))]),_:1}),l(d,{"prepend-icon":"fa-solid fa-minimize",onClick:e[36]||(e[36]=a=>ze())},{default:t(()=>[R(ne)?m("",!0):(r(),k("span",Hl,u(o.$t("Merge")),1))]),_:1})]),_:1})]),_:1})]),_:1}),(r(!0),k(S,null,J(i.value.recipe.steps,(a,M)=>(r(),p(A,{key:M},{default:t(()=>[l(C,{cols:"12"},{default:t(()=>[l(ue,{color:"primary"},{default:t(()=>[n("#"+u(M+1),1)]),_:2},1024),l(d,{variant:"plain",size:"small",icon:"",class:"float-right"},{default:t(()=>[l(x,{icon:"$menu"}),l(He,{activator:"parent"},{default:t(()=>[l(z,null,{default:t(()=>[l(T,{"prepend-icon":"$delete",onClick:$=>Me(a)},{default:t(()=>[n(u(o.$t("Delete")),1)]),_:2},1032,["onClick"]),l(T,{"prepend-icon":"fa-solid fa-maximize",onClick:$=>R(Vl)(a,`
`)},{default:t(()=>[n(u(o.$t("Split")),1)]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024),l(C,{cols:"12",md:"6"},{default:t(()=>[l(z,null,{default:t(()=>[l(R(cl),{modelValue:a.ingredients,"onUpdate:modelValue":$=>a.ingredients=$,group:"ingredients",handle:".drag-handle","empty-insert-threshold":25},{default:t(()=>[(r(!0),k(S,null,J(a.ingredients,($,xe)=>(r(),p(T,{border:""},{append:t(()=>[l(d,{variant:"plain",size:"small",icon:"",class:"float-right"},{default:t(()=>[l(x,{icon:"$menu"}),l(He,{activator:"parent"},{default:t(()=>[l(z,null,{default:t(()=>[l(T,{"prepend-icon":"$edit",onClick:Ze=>{b.value=$,X.value=!0}},{default:t(()=>[n(u(o.$t("Edit")),1)]),_:2},1032,["onClick"]),l(T,{"prepend-icon":"$delete",onClick:Ze=>Qe(a,$)},{default:t(()=>[n(u(o.$t("Delete")),1)]),_:2},1032,["onClick"]),l(T,{"prepend-icon":"fa-solid fa-sort",onClick:Ze=>{ye.value=xe,Re.value=M,Se.value=a,fe.value=!0}},{default:t(()=>[n(u(o.$t("Move")),1)]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024)]),default:t(()=>[l(x,{size:"small",class:"drag-handle cursor-grab mr-2",icon:"$dragHandle"}),l(ue,{density:"compact",label:"",class:"mr-1"},{default:t(()=>[n(u($.amount),1)]),_:2},1024),$.unit?(r(),p(ue,{key:0,density:"compact",label:"",class:"mr-1"},{default:t(()=>[n(u($.unit.name),1)]),_:2},1024)):m("",!0),$.food?(r(),p(ue,{key:1,density:"compact",label:"",class:"mr-1"},{default:t(()=>[n(u($.food.name),1)]),_:2},1024)):m("",!0)]),_:2},1024))),256))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),l(C,{cols:"12",md:"6"},{default:t(()=>[l(j,{class:"mt-2",modelValue:a.instruction,"onUpdate:modelValue":$=>a.instruction=$,"auto-grow":""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),l(Z)]),_:2},1024))),128)),l(A,null,{default:t(()=>[l(C,{class:"text-center"},{default:t(()=>[l(d,{icon:"$add",color:"create",onClick:e[37]||(e[37]=a=>qe())})]),_:1})]),_:1}),l(pl,{"max-width":"450px",modelValue:X.value,"onUpdate:modelValue":e[47]||(e[47]=a=>X.value=a)},{default:t(()=>[l(N,null,{default:t(()=>[l(vl,{modelValue:X.value,"onUpdate:modelValue":e[38]||(e[38]=a=>X.value=a),title:o.$t("Ingredient Editor")},null,8,["modelValue","title"]),l(ml,null,{default:t(()=>[l(K,{label:o.$t("Original_Text"),modelValue:b.value.originalText,"onUpdate:modelValue":e[39]||(e[39]=a=>b.value.originalText=a),readonly:""},null,8,["label","modelValue"]),l(K,{label:o.$t("Amount"),modelValue:b.value.amount,"onUpdate:modelValue":e[40]||(e[40]=a=>b.value.amount=a)},null,8,["label","modelValue"]),b.value.unit?(r(),p(K,{key:0,label:o.$t("Unit"),modelValue:b.value.unit.name,"onUpdate:modelValue":e[42]||(e[42]=a=>b.value.unit.name=a),rules:["required"]},{"append-inner":t(()=>[l(d,{icon:"$delete",color:"delete",onClick:e[41]||(e[41]=a=>b.value.unit=null)})]),_:1},8,["label","modelValue"])):(r(),p(d,{key:1,"prepend-icon":"$create",color:"create",class:"mb-4",onClick:e[43]||(e[43]=a=>b.value.unit={name:""})},{default:t(()=>[n(u(o.$t("Unit")),1)]),_:1})),l(K,{label:o.$t("Food"),modelValue:b.value.food.name,"onUpdate:modelValue":e[44]||(e[44]=a=>b.value.food.name=a)},null,8,["label","modelValue"]),l(K,{label:o.$t("Note"),modelValue:b.value.note,"onUpdate:modelValue":e[45]||(e[45]=a=>b.value.note=a)},null,8,["label","modelValue"])]),_:1}),l(gl,null,{default:t(()=>[l(d,{class:"float-right",color:"save",onClick:e[46]||(e[46]=a=>X.value=!1)},{default:t(()=>[n(u(o.$t("Save")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(y,null,{prev:t(()=>[l(d,{onClick:e[48]||(e[48]=a=>v.value="keywords_chooser")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[49]||(e[49]=a=>v.value="confirm")},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})]),_:1})]),_:1}),l(c,{value:"confirm"},{default:t(()=>[l(N,{loading:I.value||R(Ve)},{default:t(()=>[l(fl,null,{default:t(()=>[n(u(i.value.recipe.name),1)]),_:1}),l(A,null,{default:t(()=>[l(C,{cols:"12",md:"6"},{default:t(()=>[i.value.recipe.imageUrl?(r(),p(Ae,{key:0,src:i.value.recipe.imageUrl},null,8,["src"])):m("",!0)]),_:1}),l(C,{cols:"12",md:"6"},{default:t(()=>[l(K,{label:o.$t("Name"),modelValue:i.value.recipe.name,"onUpdate:modelValue":e[50]||(e[50]=a=>i.value.recipe.name=a),rules:[["maxLength",128]]},null,8,["label","modelValue"]),l(Cl,{label:o.$t("Servings"),modelValue:i.value.recipe.servings,"onUpdate:modelValue":e[51]||(e[51]=a=>i.value.recipe.servings=a),precision:2},null,8,["label","modelValue"]),l(K,{label:o.$t("ServingsText"),modelValue:i.value.recipe.servingsText,"onUpdate:modelValue":e[52]||(e[52]=a=>i.value.recipe.servingsText=a)},null,8,["label","modelValue"]),l(j,{label:o.$t("Description"),modelValue:i.value.recipe.description,"onUpdate:modelValue":e[53]||(e[53]=a=>i.value.recipe.description=a),rules:[["maxLength",512]],counter:"",clearable:""},null,8,["label","modelValue"]),l(_,{modelValue:ge.value,"onUpdate:modelValue":e[54]||(e[54]=a=>ge.value=a),label:o.$t("Edit_Recipe"),"hide-details":""},null,8,["modelValue","label"])]),_:1})]),_:1})]),_:1},8,["loading"]),l(y,null,{prev:t(()=>[l(d,{onClick:e[55]||(e[55]=a=>v.value="step_editor")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[56]||(e[56]=a=>De()),disabled:!1,color:"success"},{default:t(()=>[n(u(o.$t("Import")),1)]),_:1})]),_:1})]),_:1}),l(c,{value:"app"},{default:t(()=>[l(A,null,{default:t(()=>[(r(!0),k(S,null,J(R(Sl),a=>(r(),p(C,{cols:"12",md:"3"},{default:t(()=>[l(N,{"prepend-icon":"fa-solid fa-carrot",title:a.name,onClick:M=>le.value=a.id,variant:"outlined",elevation:"1",color:le.value==a.id?"primary":""},{append:t(()=>[l(d,{icon:"$help",variant:"plain",href:a.helpUrl,target:"_blank"},null,8,["href"])]),_:2},1032,["title","onClick","color"])]),_:2},1024))),256))]),_:1}),l(y,null,{prev:t(()=>[l(d,{onClick:e[57]||(e[57]=a=>v.value="type")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[58]||(e[58]=a=>v.value="file")},{default:t(()=>[n(u(o.$t("Next")),1)]),_:1})]),_:1})]),_:1}),l(c,{value:"file"},{default:t(()=>[l(R(Ke),{modelValue:ae.value,"onUpdate:modelValue":e[59]||(e[59]=a=>ae.value=a),multiple:""},null,8,["modelValue"]),l(ke,{variant:"outlined",elevation:"1",density:"compact",title:o.$t("Duplicate"),text:o.$t("import_duplicates"),class:"mt-2"},{prepend:t(()=>[l(_,{modelValue:se.value,"onUpdate:modelValue":e[60]||(e[60]=a=>se.value=a)},null,8,["modelValue"])]),_:1},8,["title","text"]),le.value=="MEALIE1"?(r(),k("div",Kl,[l(_,{modelValue:pe.value,"onUpdate:modelValue":e[61]||(e[61]=a=>pe.value=a),label:o.$t("ImportMealPlans"),"hide-details":""},null,8,["modelValue","label"]),l(_,{modelValue:ve.value,"onUpdate:modelValue":e[62]||(e[62]=a=>ve.value=a),label:o.$t("ImportShoppingList"),"hide-details":""},null,8,["modelValue","label"]),l(_,{modelValue:me.value,"onUpdate:modelValue":e[63]||(e[63]=a=>me.value=a),label:o.$t("NutritionsPerServing"),hint:o.$t("NutritionsPerServingHelp"),"persistent-hint":""},null,8,["modelValue","label","hint"])])):m("",!0),l(y,null,{prev:t(()=>[l(d,{onClick:e[64]||(e[64]=a=>v.value="app")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[65]||(e[65]=a=>Ye()),disabled:ae.value.length==0,loading:R(Ve)},{default:t(()=>[n(u(o.$t("Import")),1)]),_:1},8,["disabled","loading"])]),_:1})]),_:1}),l(c,{value:"import_log"},{default:t(()=>[Y.value?(r(),p(Ul,{key:0,"import-log":Y.value},null,8,["import-log"])):m("",!0),l(y,null,{prev:t(()=>[l(d,{onClick:e[66]||(e[66]=a=>v.value="file")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[Y.value&&!Y.value.running?(r(),p(d,{key:0,to:{name:"SearchPage",query:{keywords:Y.value.keyword.id}},disabled:!1},{default:t(()=>[n(u(o.$t("View_Recipes")),1)]),_:1},8,["to"])):m("",!0)]),_:1})]),_:1}),l(c,{value:"bookmarklet"},{default:t(()=>[n(u(o.$t("BookmarkletImportSubtitle"))+" ",1),P("ol",null,[P("li",null,"1. "+u(o.$t("BookmarkletHelp1")),1),P("li",null,[l(d,{href:Xe.value,color:"primary"},{default:t(()=>[n(u(o.$t("ImportIntoTandoor")),1)]),_:1},8,["href"])]),P("li",null,"2. "+u(o.$t("BookmarkletHelp2")),1),P("li",null,"3. "+u(o.$t("BookmarkletHelp3")),1)]),l(y,null,{prev:t(()=>[l(d,{onClick:e[67]||(e[67]=a=>v.value="type")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>e[76]||(e[76]=[])),_:1})]),_:1}),l(c,{value:"url_list_input"},{default:t(()=>[l(j,{hint:o.$t("one_url_per_line"),"auto-grow":"","max-rows":"20","persistent-hint":"",modelValue:E.value,"onUpdate:modelValue":e[68]||(e[68]=a=>E.value=a)},null,8,["hint","modelValue"]),l(y,null,{prev:t(()=>[l(d,{onClick:e[69]||(e[69]=a=>v.value="type")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[70]||(e[70]=a=>{v.value="url_list_import",U()}),disabled:E.value.length==0},{default:t(()=>[n(u(o.$t("Import")),1)]),_:1},8,["disabled"])]),_:1})]),_:1}),l(c,{value:"url_list_import"},{default:t(()=>[l(Fe,{height:16,"model-value":te.value.length/E.value.split(`
`).length*100},{default:t(()=>[n(u(te.value.length)+" / "+u(E.value.split(`
`).length),1)]),_:1},8,["model-value"]),l(z,null,{default:t(()=>[(r(!0),k(S,null,J(te.value,a=>(r(),p(T,{border:"",title:a.name,subtitle:a.sourceUrl,key:a.id,to:{name:"RecipeViewPage",params:{id:a.id}},target:"_blank"},null,8,["title","subtitle","to"]))),128))]),_:1}),l(y,null,{prev:t(()=>[l(d,{onClick:e[71]||(e[71]=a=>v.value="url_list_input")},{default:t(()=>[n(u(o.$t("Back")),1)]),_:1})]),next:t(()=>[l(d,{onClick:e[72]||(e[72]=a=>Le()),disabled:I.value},{default:t(()=>[n(u(o.$t("Reset")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(A,{dense:""},{default:t(()=>[l(C,{class:"text-center"},{default:t(()=>[l(d,{size:"small","prepend-icon":"fa-solid fa-arrow-rotate-left",variant:"tonal",color:"warning",onClick:e[74]||(e[74]=s=>Le())},{default:t(()=>[n(u(o.$t("Reset")),1)]),_:1})]),_:1})]),_:1})]),_:1}),l(Al,{"step-index":Re.value,step:Se.value,recipe:i.value.recipe,modelValue:fe.value,"onUpdate:modelValue":e[75]||(e[75]=s=>fe.value=s),"ingredient-index":ye.value},null,8,["step-index","step","recipe","modelValue","ingredient-index"])],64))}});export{jl as default};