From caeb47aee913ad8632a14df50483621baab96692 Mon Sep 17 00:00:00 2001 From: smilerz Date: Sat, 28 Aug 2021 12:41:27 -0500 Subject: [PATCH] bind data in dynamic fields to parent model --- cookbook/static/vue/js/food_list_view.js | 2 +- vue/src/components/Modals/CheckboxInput.vue | 18 +++- .../components/Modals/GenericModalForm.vue | 90 ++++++++++++------- vue/src/components/Modals/LookupInput.vue | 17 +++- vue/src/components/Modals/TextInput.vue | 20 ++++- 5 files changed, 110 insertions(+), 37 deletions(-) diff --git a/cookbook/static/vue/js/food_list_view.js b/cookbook/static/vue/js/food_list_view.js index dc16015ec..265bfcc15 100644 --- a/cookbook/static/vue/js/food_list_view.js +++ b/cookbook/static/vue/js/food_list_view.js @@ -1 +1 @@ -(function(e){function t(t){for(var n,a,s=t[0],c=t[1],u=t[2],p=0,l=[];p-1:e.this_item.ignore_shopping},on:{change:function(t){var r=e.this_item.ignore_shopping,n=t.target,i=!!n.checked;if(Array.isArray(r)){var o=null,a=e._i(r,o);n.checked?a<0&&e.$set(e.this_item,"ignore_shopping",r.concat([o])):a>-1&&e.$set(e.this_item,"ignore_shopping",r.slice(0,a).concat(r.slice(a+1)))}else e.$set(e.this_item,"ignore_shopping",i)}}}),r("label",{staticClass:"form-check-label",attrs:{for:"id_food_ignore_edit"}},[e._v(e._s(this.$t("Ignore_Shopping")))])]),r("label",{attrs:{for:"id_food_category_edit"}},[e._v(e._s(this.$t("Shopping_Category")))]),r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",initial_selection:[e.this_item.supermarket_category],search_function:"listSupermarketCategorys",multiple:!1,sticky_options:[{id:null,name:e.$t("None")}],placeholder:this.$t("Shopping_Category")},on:{change:function(t){e.this_item.supermarket_category=t.val}}})],1)]),r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_food_delete",title:this.$t("Delete_Food"),"ok-title":this.$t("Delete"),"cancel-title":this.$t("Cancel")},on:{ok:function(t){return e.deleteThis(e.this_item.id,e.this_model)}}},[e._v(" "+e._s(this.$t("delete_confimation",{kw:e.this_item.name}))+" ")]),r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_food_move",title:this.$t("Move_Food"),"ok-title":this.$t("Move"),"cancel-title":this.$t("Cancel")},on:{ok:function(t){return e.moveFood(e.this_item.id,e.this_item.target.id)}}},[e._v(" "+e._s(this.$t("move_selection",{child:e.this_item.name}))+" "),r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",search_function:"listFoods",multiple:!1,sticky_options:[{id:0,name:e.$t("Root")}],tree_api:!0,placeholder:this.$t("Search")},on:{change:function(t){e.this_item.target=t.val}}})],1),r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_food_merge",title:this.$t("Merge_Food"),"ok-title":this.$t("Merge"),"cancel-title":this.$t("Cancel")},on:{ok:function(t){return e.mergeFood(e.this_item.id,e.this_item.target.id)}}},[e._v(" "+e._s(this.$t("merge_selection",{source:e.this_item.name,type:this.$t("food")}))+" "),r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",search_function:"listFoods",multiple:!1,tree_api:!0,placeholder:this.$t("Search")},on:{change:function(t){e.this_item.target=t.val}}})],1)],1)},o=[],a=r("2909"),s=r("5530"),c=(r("99af"),r("5f5b")),u=(r("2dd8"),r("fa7d")),d=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticStyle:{"margin-bottom":"4vh"},attrs:{id:"app"}},[r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-2 d-none d-md-block"}),r("div",{staticClass:"col-xl-8 col-12"},[r("div",{staticClass:"container-fluid d-flex flex-column flex-grow-1",class:{"vh-100":e.show_split}},[r("div",{staticClass:"row flex-shrink-0"},[r("div",{staticClass:"col col-md-12"},[r("b-collapse",{staticClass:"mt-2",attrs:{id:"collapse_advanced"},model:{value:e.advanced_visible,callback:function(t){e.advanced_visible=t},expression:"advanced_visible"}},[r("div",{staticClass:"card"},[r("div",{staticClass:"card-body"},[r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-3",staticStyle:{"margin-top":"1vh"}},[r("div",{staticClass:"btn btn-primary btn-block text-uppercase",on:{click:function(t){return e.$emit("item-action",{action:"new"})}}},[e._v(" "+e._s(this.text.new)+" ")])]),r("div",{staticClass:"col-md-3",staticStyle:{"margin-top":"1vh"}},[r("button",{staticClass:"btn btn-primary btn-block text-uppercase",on:{click:e.resetSearch}},[e._v(" "+e._s(this.text.reset)+" ")])]),r("div",{staticClass:"col-md-3",staticStyle:{position:"relative","margin-top":"1vh"}},[r("b-form-checkbox",{staticClass:"shadow-none",staticStyle:{position:"relative",top:"50%",transform:"translateY(-50%)"},attrs:{name:"check-button",switch:""},model:{value:e.show_split,callback:function(t){e.show_split=t},expression:"show_split"}},[e._v(" "+e._s(this.text.split)+" ")])],1)])])])])],1)]),r("div",{staticClass:"row flex-shrink-0"},[r("div",{staticClass:"col col-md"},[r("b-input-group",{staticClass:"mt-3"},[r("b-input",{staticClass:"form-control",attrs:{placeholder:this.text.search},model:{value:e.search_right,callback:function(t){e.search_right=t},expression:"search_right"}}),r("b-input-group-append",[r("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.collapse_advanced",modifiers:{collapse_advanced:!0}}],staticClass:"shadow-none",attrs:{variant:"primary"}},[e.advanced_visible?e._e():r("i",{staticClass:"fas fa-caret-down"}),e.advanced_visible?r("i",{staticClass:"fas fa-caret-up"}):e._e()])],1)],1)],1),e.show_split?r("div",{staticClass:"col col-md"},[r("b-input-group",{staticClass:"mt-3"},[r("b-input",{staticClass:"form-control",attrs:{placeholder:this.text.search},model:{value:e.search_left,callback:function(t){e.search_left=t},expression:"search_left"}})],1)],1):e._e()]),r("div",{staticClass:"row",class:{"overflow-hidden":e.show_split}},[r("div",{staticClass:"col col-md",class:{"mh-100 overflow-auto":e.show_split}},[e._t("cards-left"),r("infinite-loading",{attrs:{identifier:e.left,spinner:"waveDots"},on:{infinite:function(t){return e.infiniteHandler(t,"left")}},scopedSlots:e._u([{key:"no-more",fn:function(){return[r("span")]},proxy:!0}])})],2),e.show_split?r("div",{staticClass:"col col-md mh-100 overflow-auto"},[e._t("cards-right"),r("infinite-loading",{attrs:{identifier:e.right,spinner:"waveDots"},on:{infinite:function(t){return e.infiniteHandler(t,"right")}},scopedSlots:e._u([{key:"no-more",fn:function(){return[r("span")]},proxy:!0}],null,!1,1714849021)})],2):e._e()])])]),r("div",{staticClass:"col-md-2 d-none d-md-block"})])])},p=[],l=(r("b0c0"),r("d3b7"),r("b047")),h=r.n(l),f=r("e166"),b=r.n(f),v={name:"GenericSplitLists",components:{InfiniteLoading:b.a},props:{list_name:{type:String,default:"Blank List"},left_list:{type:Array,default:function(){return[]}},right_list:{type:Array,default:function(){return[]}}},data:function(){return{advanced_visible:!1,show_split:!1,search_right:"",search_left:"",right_page:0,left_page:0,right:+new Date,left:+new Date,isDirtyright:!1,isDirtyleft:!1,text:{new:"",name:"",reset:this.$t("Reset_Search"),split:this.$t("show_split_screen"),search:this.$t("Search")}}},mounted:function(){this.dragMenu=this.$refs.tooltip,this.text.new=this.$t("New_"+this.list_name),this.text.name=this.$t(this.list_name)},watch:{search_right:h()((function(){this.left_page=0,this.$emit("reset",{column:"left"}),this.left+=1}),700),search_left:h()((function(){this.right_page=0,this.$emit("reset",{column:"right"}),this.right+=1}),700)},methods:{resetSearch:function(){""!==this.search_right?this.search_right="":(this.left_page=1,this.$emit("reset",{column:"left"}),this.left+=1),""!==this.search_left?this.search_left="":(this.right_page=1,this.$emit("reset",{column:"right"}),this.right+=1)},infiniteHandler:function(e,t){var r=this,n={query:"left"===t?this.search_right:this.search_left,page:"left"===t?this.left_page+1:this.right_page+1,column:t};new Promise((function(e){return r.$emit("get-list",n,e)})).then((function(n){r[t+"_page"]+=1,e.loaded(),n||e.complete()})).catch((function(){e.complete()}))}}},m=v,g=(r("60bc"),r("2877")),j=Object(g["a"])(m,d,p,!1,null,null,null),O=j.exports,y=r("0e20"),_=r("7432"),S=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-modal",{staticClass:"modal",attrs:{id:"modal"},scopedSlots:e._u([{key:"modal-title",fn:function(){return[r("h4",[e._v(e._s(e.model)+" "+e._s(e.action))])]},proxy:!0},{key:"modal-footer",fn:function(){return[r("b-button",{staticClass:"float-right mx-1",attrs:{variant:"secondary"},on:{click:function(t){return e.$bvModal.hide("modal")}}},[e._v(e._s(e.$t("Cancel")))]),r("b-button",{staticClass:"float-right mx-1",attrs:{variant:"primary"},on:{click:e.doAction}},[e._v(e._s(e.buttonLabel))])]},proxy:!0}])},e._l(e.fields,(function(t,n){return r("div",{key:n},["instruction"==t.type?r("p",[e._v(e._s(t.label))]):e._e(),"lookup"==t.type?r("lookup-input",{attrs:{label:t.label}}):e._e(),e._v(" "),"checkbox"==t.type?r("checkbox-input",{attrs:{label:t.label}}):e._e(),"text"==t.type?r("text-input",{attrs:{label:t.label}}):e._e()],1)})),0),r("b-button",{on:{click:e.Button}},[e._v("ok")])],1)},k=[],w=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-form-checkbox",[e._v(e._s(e.label))])],1)},P=[],U={name:"CheckboxInput",props:{label:{type:String,default:"Checkbox Field"},show_delete:{type:Boolean,default:!0},show_move:{type:Boolean,default:!1},show_merge:{type:Boolean,default:!1}},methods:{Button:function(e){this.$bvModal.show("modal")}}},R=U,C=Object(g["a"])(R,w,P,!1,null,null,null),L=C.exports,E=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-form-group",{staticClass:"mb-3",attrs:{label:e.label}},[r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",initial_selection:[],search_function:"listSupermarketCategorys",multiple:!1,sticky_options:[{id:null,name:e.$t("None")}],placeholder:e.$t("Shopping_Category")}})],1)],1)},I=[],x={name:"LookupInput",components:{GenericMultiselect:_["a"]},props:{label:{type:String,default:"Lookup Field"},show_delete:{type:Boolean,default:!0},show_move:{type:Boolean,default:!1},show_merge:{type:Boolean,default:!1}},methods:{Button:function(e){this.$bvModal.show("modal")}}},T=x,B=Object(g["a"])(T,E,I,!1,null,null,null),F=B.exports,M=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-form-group",{staticClass:"mb-3",attrs:{label:e.label}},[r("b-form-input",{attrs:{type:"string"}})],1)],1)},q=[],A={name:"TextInput",props:{label:{type:String,default:"Text Field"},show_delete:{type:Boolean,default:!0},show_move:{type:Boolean,default:!1},show_merge:{type:Boolean,default:!1}},methods:{Button:function(e){this.$bvModal.show("modal")}}},$=A,D=Object(g["a"])($,M,q,!1,null,null,null),K=D.exports;n["default"].use(c["a"]);var N={name:"GenericModalForm",components:{CheckboxInput:L,LookupInput:F,TextInput:K},props:{model:{type:String,default:""},show:{type:Boolean,default:!1}},data:function(){return{action:"",fields:[{label:"This is a long set of instructions that tell you to be careful with what you do next or really bad things are likely to happen.",type:"instruction"},{label:"first",type:"text"},{label:"second",type:"lookup"},{label:"third",type:"checkbox"},{label:"fourth",type:"checkbox"},{label:"fifth",type:"lookup"},{label:"sixth",type:"text"}],buttons:{new:{label:this.$t("Save")},delete:{label:this.$t("Delete")},edit:{label:this.$t("Save")},move:{label:this.$t("Move")},merge:{label:this.$t("Merge")}}}},computed:{buttonLabel:function(){return this.buttons[this.action].label}},watch:{show:function(){this.show&&this.$bvModal.show("modal")}},methods:{Button:function(e){this.action="new",this.$bvModal.show("modal")},doAction:function(){this.$bvModal.hide("modal"),alert("i did it")}}},V=N,z=Object(g["a"])(V,S,k,!1,null,null,null),G=z.exports;n["default"].use(c["a"]);var H={name:"FoodListView",mixins:[u["f"],u["a"],u["b"]],components:{GenericHorizontalCard:y["a"],GenericMultiselect:_["a"],GenericSplitLists:O,GenericModalForm:G},data:function(){return{this_model:"Food",this_action:"",foods:[],foods2:[],load_more_left:!0,load_more_right:!0,blank_item:{id:void 0,name:"",description:"",recipe:null,recipe_full:void 0,ignore_shopping:!1,supermarket_category:void 0,target:{id:void 0,name:""}},this_item:{id:void 0,name:"",description:"",recipe:null,recipe_full:void 0,ignore_shopping:!1,supermarket_category:void 0,target:{id:void 0,name:""}}}},methods:{resetList:function(e){"left"===e.column?this.foods=[]:"right"===e.column&&(this.foods2=[])},startAction:function(e,t){var r,i,o=null!==(r=null===e||void 0===e?void 0:e.source)&&void 0!==r?r:this.blank_item,a=null!==(i=null===e||void 0===e?void 0:e.target)&&void 0!==i?i:void 0;switch(this.this_item=o,this.this_item.target=a||void 0,e.action){case"delete":this.$bvModal.show("id_modal_food_delete");break;case"new":this.this_item=Object(s["a"])({},this.blank_item),this.$bvModal.show("id_modal_food_edit");break;case"edit":this.$bvModal.show("id_modal_food_edit");break;case"move":null==a?this.$bvModal.show("id_modal_food_move"):this.moveFood(o.id,a.id);break;case"merge":null==a?this.$bvModal.show("id_modal_food_merge"):this.mergeFood(e.source.id,e.target.id);break;case"get-children":o.show_children?n["default"].set(o,"show_children",!1):this.getChildren(t,o);break;case"get-recipes":o.show_recipes?n["default"].set(o,"show_recipes",!1):this.getRecipes(t,o);break}},getFoods:function(e,t){var r,n=this,i=null!==(r=null===e||void 0===e?void 0:e.column)&&void 0!==r?r:"left";this.genericAPI(this.this_model,"list",e).then((function(e){e.data.results.length?("left"===i?n.foods=n.foods.concat(e.data.results):"right"===i&&(n.foods2=n.foods2.concat(e.data.results)),t(e.data.count>("left"===i?n.foods.length:n.foods2.length))):(t(!1),console.log("no data returned")),t(e.data.count<("left"===i?n.foods.length:n.foods2.length))})).catch((function(e){console.log(e),n.makeToast(n.$t("Error"),e.bodyText,"danger")}))},getThis:function(e,t){return this.genericAPI(this.this_model,"retrieve",{id:e})},saveFood:function(){var e,t,r,n,i=this,o=Object(s["a"])({},this.this_item);o.supermarket_category=null!==(e=null===(t=this.this_item.supermarket_category)||void 0===t?void 0:t.id)&&void 0!==e?e:null,o.recipe=null!==(r=null===(n=this.this_item.recipe)||void 0===n?void 0:n.id)&&void 0!==r?r:null,null!==o&&void 0!==o&&o.id?this.genericAPI(this.this_model,"updatePartial",o).then((function(e){i.refreshObject(i.this_item.id)})).catch((function(e){console.log(e)})):this.genericAPI(this.this_model,"create",o).then((function(e){i.foods=[e.data].concat(i.foods),i.show_split?i.foods2=Object(a["a"])(i.foods):i.foods2=[]})).catch((function(e){console.log(e)})),this.this_item=Object(s["a"])({},this.blank_item)},moveFood:function(e,t){var r=this;this.genericAPI(this.this_model,"move",{source:e,target:t}).then((function(n){if(0===t){var i=r.findCard(e,r.foods)||r.findCard(e,r.foods2);r.foods=[i].concat(r.destroyCard(e,r.foods)),r.foods2=[i].concat().concat(r.destroyCard(e,r.foods2)),i.parent=null}else r.foods=r.destroyCard(e,r.foods),r.foods2=r.destroyCard(e,r.foods2),r.refreshObject(t)})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},mergeFood:function(e,t){var r=this;this.genericAPI(this.this_model,"merge",{source:e,target:t}).then((function(n){r.foods=r.destroyCard(e,r.foods),r.foods2=r.destroyCard(e,r.foods2),r.refreshObject(t)})).catch((function(e){console.log("Error",e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},getChildren:function(e,t){var r=this,i={},o={root:t.id,pageSize:200};this.genericAPI(this.this_model,"list",o).then((function(o){i=r.findCard(t.id,"left"===e?r.foods:r.foods2),i&&(n["default"].set(i,"children",o.data.results),n["default"].set(i,"show_children",!0),n["default"].set(i,"show_recipes",!1))})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},getRecipes:function(e,t){var r=this,i={},o={foods:t.id,pageSize:200};this.genericAPI("recipe","list",o).then((function(o){i=r.findCard(t.id,"left"===e?r.foods:r.foods2),i&&(n["default"].set(i,"recipes",o.data.results),n["default"].set(i,"show_recipes",!0),n["default"].set(i,"show_children",!1))})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},refreshObject:function(e){var t=this;this.getThis(e).then((function(e){t.refreshCard(e.data,t.foods),t.refreshCard(Object(s["a"])({},e.data),t.foods2)}))},prepareEmoji:function(){this.$refs._edit.addText(this.this_item.icon||""),this.$refs._edit.blur(),document.getElementById("btn-emoji-default").disabled=!0},setIcon:function(e){this.this_item.icon=e},deleteThis:function(e,t){var r=this;this.genericAPI(this.this_model,"destroy",{id:e}).then((function(t){r.foods=r.destroyCard(e,r.foods),r.foods2=r.destroyCard(e,r.foods2)})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))}}},J=H,W=Object(g["a"])(J,i,o,!1,null,null,null),Z=W.exports,X=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:X["a"],render:function(e){return e(Z)}}).$mount("#app")},"0e20":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{attrs:{row:""}},[r("b-card",{class:{"border border-primary":e.over,shake:e.isError},staticStyle:{height:"10vh"},style:{"cursor:grab":e.draggable},attrs:{"no-body":"","d-flex":"","flex-column":"",draggable:e.draggable},on:{dragover:function(e){e.preventDefault()},dragenter:[function(e){e.preventDefault()},function(t){return e.handleDragEnter(t)}],dragstart:function(t){return e.handleDragStart(t)},dragleave:function(t){return e.handleDragLeave(t)},drop:function(t){return e.handleDragDrop(t)}}},[r("b-row",{staticStyle:{height:"inherit"},attrs:{"no-gutters":""}},[r("b-col",{staticStyle:{height:"inherit"},attrs:{"no-gutters":"",md:"3"}},[r("b-card-img-lazy",{staticStyle:{"object-fit":"cover",height:"10vh"},attrs:{src:e.model_image,alt:e.$t("Recipe_Image")}})],1),r("b-col",{staticStyle:{height:"inherit"},attrs:{"no-gutters":"",md:"9"}},[r("b-card-body",{staticClass:"m-0 py-0",staticStyle:{height:"inherit"}},[r("b-card-text",{staticClass:" h-100 my-0 d-flex flex-column",staticStyle:{"text-overflow":"ellipsis"}},[r("h5",{staticClass:"m-0 mt-1 text-truncate"},[e._v(e._s(e.model[e.title]))]),r("div",{staticClass:"m-0 text-truncate"},[e._v(e._s(e.model[e.subtitle]))]),r("div",{staticClass:"mt-auto mb-1 d-flex flex-row justify-content-end"},[0!=e.model[e.child_count]?r("div",{staticClass:"mx-2 btn btn-link btn-sm",staticStyle:{"z-index":"800"},on:{click:function(t){return e.$emit("item-action",{action:"get-children",source:e.model})}}},[e.model.show_children?r("div",[e._v(e._s(e.text.hide_children))]):r("div",[e._v(e._s(e.model[e.child_count])+" "+e._s(e.model_name))])]):e._e(),e.model[e.recipe_count]?r("div",{staticClass:"mx-2 btn btn-link btn-sm",staticStyle:{"z-index":"800"},on:{click:function(t){return e.$emit("item-action",{action:"get-recipes",source:e.model})}}},[e.model.show_recipes?r("div",[e._v(e._s(e.$t("Hide_Recipes")))]):r("div",[e._v(e._s(e.model[e.recipe_count])+" "+e._s(e.$t("Recipes")))])]):e._e()])])],1)],1),r("div",{staticClass:"card-img-overlay justify-content-right h-25 m-0 p-0 text-right"},[e._t("upper-right"),r("generic-context-menu",{staticClass:"p-0",attrs:{show_merge:e.merge,show_move:e.move},on:{"item-action":function(t){return e.$emit("item-action",{action:t,source:e.model})}}})],2)],1)],1),e.model.show_children?r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-11 offset-md-1"},e._l(e.model[e.children],(function(t){return r("generic-horizontal-card",{key:t.id,attrs:{draggable:e.draggable,model:t,model_name:e.model_name,title:e.title,subtitle:e.subtitle,child_count:e.child_count,children:e.children,recipe_count:e.recipe_count,recipes:e.recipes,merge:e.merge,move:e.move},on:{"item-action":function(t){return e.$emit("item-action",t)}}})})),1)]):e._e(),e.model.show_recipes?r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-11 offset-md-1"},[r("div",{staticStyle:{display:"grid","grid-template-columns":"repeat(auto-fit, minmax(200px, 1fr))","grid-gap":"1rem"}},e._l(e.model[e.recipes],(function(e){return r("recipe-card",{key:e.id,attrs:{recipe:e}})})),1)])]):e._e(),r("b-list-group",{directives:[{name:"show",rawName:"v-show",value:e.show_menu,expression:"show_menu"},{name:"on-clickaway",rawName:"v-on-clickaway",value:e.closeMenu,expression:"closeMenu"}],ref:"tooltip",staticStyle:{"z-index":"9999",cursor:"pointer"},attrs:{variant:"light"}},[e.move?r("b-list-group-item",{attrs:{action:""},on:{click:function(t){e.$emit("item-action",{action:"move",target:e.model,source:e.source}),e.closeMenu()}}},[e._v(" "+e._s(e.$t("Move"))+": "+e._s(e.$t("move_confirmation",{child:e.source.name,parent:e.model.name}))+" ")]):e._e(),e.merge?r("b-list-group-item",{attrs:{action:""},on:{click:function(t){e.$emit("item-action",{action:"merge",target:e.model,source:e.source}),e.closeMenu()}}},[e._v(" "+e._s(e.$t("Merge"))+": "+e._s(e.$t("merge_confirmation",{source:e.source.name,target:e.model.name}))+" ")]):e._e(),r("b-list-group-item",{attrs:{action:""},on:{click:function(t){return e.closeMenu()}}},[e._v(" "+e._s(e.$t("Cancel"))+" ")])],1)],1)},i=[],o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("b-dropdown",{attrs:{variant:"link","toggle-class":"text-decoration-none","no-caret":""},scopedSlots:e._u([{key:"button-content",fn:function(){return[r("i",{staticClass:"fas fa-ellipsis-v"})]},proxy:!0}])},[e.show_edit?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","edit")}}},[r("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e.$t("Edit"))+" ")]):e._e(),e.show_delete?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","delete")}}},[r("i",{staticClass:"fas fa-trash-alt fa-fw"}),e._v(" "+e._s(e.$t("Delete"))+" ")]):e._e(),e.show_move?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","move")}}},[r("i",{staticClass:"fas fa-expand-arrows-alt fa-fw"}),e._v(" "+e._s(e.$t("Move"))+" ")]):e._e(),e.show_merge?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","merge")}}},[r("i",{staticClass:"fas fa-compress-arrows-alt fa-fw"}),e._v(" "+e._s(e.$t("Merge"))+" ")]):e._e()],1)},a=[],s={name:"GenericContextMenu",props:{show_edit:{type:Boolean,default:!0},show_delete:{type:Boolean,default:!0},show_move:{type:Boolean,default:!1},show_merge:{type:Boolean,default:!1}}},c=s,u=r("2877"),d=Object(u["a"])(c,o,a,!1,null,null,null),p=d.exports,l=r("6b0a"),h=r("c7db"),f=r("39c3"),b={name:"GenericHorizontalCard",components:{GenericContextMenu:p,RecipeCard:l["a"]},mixins:[h["mixin"]],props:{model:Object,model_name:{type:String,default:"Blank Model"},draggable:{type:Boolean,default:!1},title:{type:String,default:"name"},subtitle:{type:String,default:"description"},child_count:{type:String,default:"numchild"},children:{type:String,default:"children"},recipe_count:{type:String,default:"numrecipe"},recipes:{type:String,default:"recipes"},move:{type:Boolean,default:!1},merge:{type:Boolean,default:!1}},data:function(){return{model_image:"",over:!1,show_menu:!1,dragMenu:void 0,isError:!1,source:{id:void 0,name:void 0},target:{id:void 0,name:void 0},text:{hide_children:""}}},mounted:function(){var e,t;this.model_image=null!==(e=null===(t=this.model)||void 0===t?void 0:t.image)&&void 0!==e?e:window.IMAGE_PLACEHOLDER,this.dragMenu=this.$refs.tooltip,this.text.hide_children=this.$t("Hide_"+this.model_name)},methods:{handleDragStart:function(e){this.isError=!1,e.dataTransfer.setData("source",JSON.stringify(this.model))},handleDragEnter:function(e){e.currentTarget.contains(e.relatedTarget)||null==e.relatedTarget||(this.over=!0)},handleDragLeave:function(e){e.currentTarget.contains(e.relatedTarget)||(this.over=!1)},handleDragDrop:function(e){var t=JSON.parse(e.dataTransfer.getData("source"));if(t.id!=this.model.id){this.source=t;var r={getBoundingClientRect:this.generateLocation(e.clientX,e.clientY)};this.show_menu=!0;var n=Object(f["a"])(r,this.dragMenu,{placement:"bottom-start",modifiers:[{name:"preventOverflow",options:{rootBoundary:"document"}},{name:"flip",options:{fallbackPlacements:["bottom-end","top-start","top-end","left-start","right-start"],rootBoundary:"document"}}]});n.update(),this.over=!1,this.$emit({action:"drop",target:this.model,source:this.source})}else this.isError=!0},generateLocation:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return function(){return{width:0,height:0,top:t,right:e,bottom:t,left:e}}},closeMenu:function(){this.show_menu=!1}}},v=b,m=(r("d56b"),Object(u["a"])(v,n,i,!1,null,"8f249282",null));t["a"]=m.exports},2165:function(e){e.exports=JSON.parse('{"err_fetching_resource":"","err_creating_resource":"","err_updating_resource":"","err_deleting_resource":"","success_fetching_resource":"","success_creating_resource":"","success_updating_resource":"","success_deleting_resource":"","import_running":"","all_fields_optional":"","convert_internal":"","show_only_internal":"","Log_Recipe_Cooking":"","External_Recipe_Image":"","Add_to_Shopping":"","Add_to_Plan":"","Step_start_time":"","Sort_by_new":"","Recipes_per_page":"","Manage_Books":"","Meal_Plan":"","Select_Book":"","Recipe_Image":"","Import_finished":"","View_Recipes":"","Log_Cooking":"","New_Recipe":"","Url_Import":"","Reset_Search":"","Recently_Viewed":"","Load_More":"","Keywords":"","Books":"","Proteins":"","Fats":"","Carbohydrates":"","Calories":"","Nutrition":"","Date":"","Share":"","Export":"","Copy":"","Rating":"","Close":"","Link":"","Add":"","New":"","Success":"","Failure":"","Ingredients":"","Supermarket":"","Categories":"","Category":"","Selected":"","min":"","Servings":"","Waiting":"","Preparation":"","External":"","Size":"","Files":"","File":"","Edit":"","Cancel":"","Delete":"","Open":"","Ok":"","Save":"","Step":"","Search":"","Import":"","Print":"","Settings":"","or":"","and":"","Information":"","Download":"","Create":""}')},"2b2d":function(e,t,r){"use strict";r.d(t,"a",(function(){return k}));r("d3b7"),r("3ca3"),r("ddb0"),r("2b3d"),r("ac1f"),r("5319");var n,i,o,a,s,c,u,d=r("9ab4"),p=r("bc3a"),l=r.n(p),h=(r("841c"),r("25f0"),r("b0c0"),"undefined"!==typeof window?localStorage.getItem("BASE_PATH")||"":location.protocol+"//"+location.host),f=function(){function e(e,t,r){void 0===t&&(t=h),void 0===r&&(r=l.a),this.basePath=t,this.axios=r,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}return e}(),b=function(e){function t(t,r){var n=e.call(this,r)||this;return n.field=t,n.name="RequiredError",n}return Object(d["c"])(t,e),t}(Error),v="https://example.com",m=function(e,t,r){if(null===r||void 0===r)throw new b(t,"Required parameter "+t+" was null or undefined when calling "+e+".")},g=function(e){for(var t=[],r=1;r120?r("span",[e._v(" "+e._s(e.recipe.description.substr(0,120)+"…")+" ")]):e._e(),e.recipe.description.length<=120?r("span",[e._v(" "+e._s(e.recipe.description)+" ")]):e._e()]:e._e(),r("br"),e._v(" "),r("last-cooked",{attrs:{recipe:e.recipe}}),r("keywords",{staticStyle:{"margin-top":"4px"},attrs:{recipe:e.recipe}}),e.recipe.internal?e._e():r("b-badge",{attrs:{pill:"",variant:"info"}},[e._v(e._s(e.$t("External")))])]:[e._v(e._s(e.meal_plan.note))]],2)],1),void 0!==e.footer_text?r("b-card-footer",[r("i",{class:e.footer_icon}),e._v(" "+e._s(e.footer_text)+" ")]):e._e()],1)},i=[],o=r("fc0d"),a=r("81d5"),s=r("fa7d"),c=r("ca5b"),u=r("c1df"),d=r.n(u),p=r("a026"),l=r("830a");p["default"].prototype.moment=d.a;var h={name:"RecipeCard",mixins:[s["d"]],components:{LastCooked:l["a"],RecipeRating:c["a"],Keywords:a["a"],RecipeContextMenu:o["a"]},props:{recipe:Object,meal_plan:Object,footer_text:String,footer_icon:String},data:function(){return{recipe_image:""}},mounted:function(){null==this.recipe||null===this.recipe.image?this.recipe_image=window.IMAGE_PLACEHOLDER:this.recipe_image=this.recipe.image},methods:{clickUrl:function(){return null!==this.recipe?Object(s["j"])("view_recipe",this.recipe.id):Object(s["j"])("view_plan_entry",this.meal_plan.id)}},directives:{hover:{inserted:function(e){e.addEventListener("mouseenter",(function(){e.classList.add("shadow")})),e.addEventListener("mouseleave",(function(){e.classList.remove("shadow")}))}}}},f=h,b=r("2877"),v=Object(b["a"])(f,n,i,!1,null,"6d71945d",null);t["a"]=v.exports},"6ce2":function(e){e.exports=JSON.parse('{"Import":"Importieren","import_running":"Import läuft, bitte warten!","Import_finished":"Import fertig","View_Recipes":"Rezepte Ansehen","Information":"Information","all_fields_optional":"Alle Felder sind optional und können leer gelassen werden.","convert_internal":"Zu internem Rezept wandeln","Log_Recipe_Cooking":"Kochen protokollieren","External_Recipe_Image":"Externes Rezept Bild","Add_to_Book":"Zu Buch hinzufügen","Add_to_Shopping":"Zu Einkaufsliste hinzufügen","Add_to_Plan":"Zu Plan hinzufügen","Step_start_time":"Schritt Startzeit","Select_Book":"Buch wählen","Recipe_Image":"Rezept Bild","Log_Cooking":"Kochen protokollieren","Proteins":"Proteine","Fats":"Fette","Carbohydrates":"Kohlenhydrate","Calories":"Kalorien","Nutrition":"Nährwerte","Keywords":"Stichwörter","Books":"Bücher","show_only_internal":"Nur interne Rezepte anzeigen","Ingredients":"Zutaten","min":"Min","Servings":"Portionen","Waiting":"Wartezeit","Preparation":"Vorbereitung","Edit":"Bearbeiten","Open":"Öffnen","Save":"Speichern","Step":"Schritt","Search":"Suchen","Print":"Drucken","New_Recipe":"Neues Rezept","Url_Import":"URL Import","Reset_Search":"Suche zurücksetzen","or":"oder","and":"und","Recently_Viewed":"Kürzlich angesehen","External":"Extern","Settings":"Einstellungen","Meal_Plan":"Speiseplan","Date":"Datum","Share":"Teilen","Export":"Exportieren","Rating":"Bewertung","Close":"Schließen","Add":"Hinzufügen","Copy":"Kopieren","New":"Neu","Categories":"Kategorien","Category":"Kategorie","Selected":"Ausgewählt","Supermarket":"Supermarkt","Files":"Dateien","Size":"Größe","success_fetching_resource":"Ressource erfolgreich abgerufen!","Download":"Herunterladen","Success":"Erfolgreich","err_fetching_resource":"Ein Fehler trat während dem Abrufen einer Ressource auf!","err_creating_resource":"Ein Fehler trat während dem Erstellen einer Ressource auf!","err_updating_resource":"Ein Fehler trat während dem Aktualisieren einer Ressource auf!","success_creating_resource":"Ressource erfolgreich erstellt!","success_updating_resource":"Ressource erfolgreich aktualisiert!","File":"Datei","Delete":"Löschen","err_deleting_resource":"Ein Fehler trat während dem Löschen einer Ressource auf!","Cancel":"Abbrechen","success_deleting_resource":"Ressource erfolgreich gelöscht!","Load_More":"Mehr laden","Ok":"Öffnen"}')},7:function(e,t,r){e.exports=r("0ae9")},7432:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("multiselect",{attrs:{options:e.objects,"close-on-select":!0,"clear-on-select":!0,"hide-selected":!0,"preserve-search":!0,placeholder:e.placeholder,label:e.label,"track-by":"id",multiple:e.multiple,loading:e.loading},on:{"search-change":e.search,input:e.selectionChanged},model:{value:e.selected_objects,callback:function(t){e.selected_objects=t},expression:"selected_objects"}})},i=[],o=(r("a9e3"),r("ac1f"),r("841c"),r("99af"),r("8e5f")),a=r.n(o),s=r("2b2d"),c={name:"GenericMultiselect",components:{Multiselect:a.a},data:function(){return{loading:!1,objects:[],selected_objects:[]}},props:{placeholder:String,search_function:String,label:String,parent_variable:{type:String,default:void 0},limit:{type:Number,default:10},sticky_options:{type:Array,default:function(){return[]}},initial_selection:{type:Array,default:function(){return[]}},multiple:{type:Boolean,default:!0},tree_api:{type:Boolean,default:!1}},watch:{initial_selection:function(e,t){if(this.multiple)this.selected_objects=e;else if(this.selected_objects!=(null===e||void 0===e?void 0:e[0])){var r;this.selected_objects=null!==(r=null===e||void 0===e?void 0:e[0])&&void 0!==r?r:null}}},mounted:function(){var e,t,r;(this.search(""),!this.multiple&this.selected_objects!=(null===(e=this.initial_selection)||void 0===e?void 0:e[0]))&&(this.selected_objects=null!==(t=null===(r=this.initial_selection)||void 0===r?void 0:r[0])&&void 0!==t?t:null)},methods:{search:function(e){var t=this,r=new s["a"];if(this.tree_api){var n=1,i=void 0,o=void 0,a=10;""===e&&(e=void 0),r[this.search_function](e,i,o,n,a).then((function(e){t.objects=t.sticky_options.concat(e.data.results)}))}else"listRecipes"===this.search_function?r[this.search_function](e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,25,void 0).then((function(e){t.objects=t.sticky_options.concat(e.data.results)})):r[this.search_function]({query:{query:e,limit:this.limit}}).then((function(e){t.objects=t.sticky_options.concat(e.data)}))},selectionChanged:function(){this.$emit("change",{var:this.parent_variable,val:this.selected_objects})}}},u=c,d=r("2877"),p=Object(d["a"])(u,n,i,!1,null,"61f5c6dc",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return s}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["j"])("api:recipe-detail",e);return void 0!==window.SHARE_UID&&(t+="?share="+window.SHARE_UID),i.a.get(t).then((function(e){return e.data})).catch((function(e){c(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["j"])("api:cooklog-list"),e).then((function(e){Object(o["i"])("Saved","Cook Log entry saved!","success")})).catch((function(e){c(e,"There was an error creating a resource!","danger")}))}function c(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["h"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["i"])(r,t,"danger")}else Object(o["i"])("Error",t,"danger"),console.log(e)}i.a.defaults.xsrfCookieName="csrftoken",i.a.defaults.xsrfHeaderName="X-CSRFTOKEN"},"81d5":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return e.recipe.keywords.length>0?r("div",e._l(e.recipe.keywords,(function(t){return r("span",{key:t.id,staticStyle:{padding:"2px"}},[r("b-badge",{attrs:{pill:"",variant:"light"}},[e._v(e._s(t.label))])],1)})),0):e._e()},i=[],o={name:"Keywords",props:{recipe:Object}},a=o,s=r("2877"),c=Object(s["a"])(a,n,i,!1,null,null,null);t["a"]=c.exports},"830a":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("span",[null!==e.recipe.last_cooked?r("b-badge",{attrs:{pill:"",variant:"primary"}},[r("i",{staticClass:"fas fa-utensils"}),e._v(" "+e._s(e.formatDate(e.recipe.last_cooked)))]):e._e()],1)},i=[],o=r("c1df"),a=r.n(o),s={name:"LastCooked",props:{recipe:Object},methods:{formatDate:function(e){return a.a.locale(window.navigator.language),a()(e).format("L")}}},c=s,u=r("2877"),d=Object(u["a"])(c,n,i,!1,null,"720408c0",null);t["a"]=d.exports},9225:function(e,t,r){"use strict";r("159b"),r("d3b7"),r("ddb0"),r("ac1f"),r("466d");var n=r("a026"),i=r("a925");function o(){var e=r("49f8"),t={};return e.keys().forEach((function(r){var n=r.match(/([A-Za-z0-9-_]+)\./i);if(n&&n.length>1){var i=n[1];t[i]=e(r)}})),t}n["default"].use(i["a"]),t["a"]=new i["a"]({locale:Object({NODE_ENV:"production",BASE_URL:""}).VUE_APP_I18N_LOCALE||"en",fallbackLocale:Object({NODE_ENV:"production",BASE_URL:""}).VUE_APP_I18N_FALLBACK_LOCALE||"en",messages:o()})},"9db4":function(e,t,r){},a625:function(e){e.exports=JSON.parse('{"import_running":"Er wordt geïmporteerd, even geduld!","all_fields_optional":"Alle velden zijn optioneel en kunnen leeg gelaten worden.","convert_internal":"Zet om naar intern recept","Log_Recipe_Cooking":"Log Bereiding","External_Recipe_Image":"Externe Afbeelding Recept","Add_to_Book":"Voeg toe aan Boek","Add_to_Shopping":"Voeg toe aan Boodschappenlijst","Add_to_Plan":"Voeg toe aan Plan","Step_start_time":"Starttijd stap","Select_Book":"Selecteer Boek","Recipe_Image":"Afbeelding Recept","Import_finished":"Importeren gereed","View_Recipes":"Bekijk Recepten","Log_Cooking":"Log Bereiding","Proteins":"Eiwitten","Fats":"Vetten","Carbohydrates":"Koolhydraten","Calories":"Calorieën","Nutrition":"Voedingswaarde","Date":"Datum","Share":"Deel","Export":"Exporteren","Rating":"Beoordeling","Close":"Sluiten","Add":"Voeg toe","Ingredients":"Ingrediënten","min":"min","Servings":"Porties","Waiting":"Wachten","Preparation":"Bereiding","Edit":"Bewerken","Open":"Open","Save":"Opslaan","Step":"Stap","Search":"Zoeken","Import":"Importeer","Print":"Afdrukken","Information":"Informatie","Keywords":"Etiketten","Books":"Boeken","show_only_internal":"Toon alleen interne recepten","New_Recipe":"Nieuw Recept","Url_Import":"Importeer URL","Reset_Search":"Zoeken resetten","or":"of","and":"en","Recently_Viewed":"Recent bekeken","External":"Externe","Settings":"Instellingen","Meal_Plan":"Maaltijdplan","New":"Nieuw","Supermarket":"Supermarkt","Categories":"Categorieën","Category":"Categorie","Selected":"Geselecteerd","Copy":"Kopie","Link":"Link","Sort_by_new":"Sorteer op nieuw","Recipes_per_page":"Recepten per pagina","Files":"Bestanden","Size":"Grootte","File":"Bestand","err_fetching_resource":"Bij het ophalen van een hulpbron is een foutmelding opgetreden!","err_creating_resource":"Bij het maken van een hulpbron is een foutmelding opgetreden!","err_updating_resource":"Bij het updaten van een hulpbron is een foutmelding opgetreden!","success_fetching_resource":"Hulpbron is succesvol opgehaald!","success_creating_resource":"Hulpbron succesvol aangemaakt!","success_updating_resource":"Hulpbron succesvol geüpdatet!","Success":"Succes","Download":"Download","err_deleting_resource":"Bij het verwijderen van een hulpbron is een foutmelding opgetreden!","success_deleting_resource":"Hulpbron succesvol verwijderd!","Cancel":"Annuleer","Delete":"Verwijder","Ok":"Open","Load_More":"Laad meer","Manage_Books":"Beheer Boeken","Create":"Maak","Failure":"Storing","View":"Bekijk","Recipes":"Recepten","Move":"Verplaats","Parent":"Ouder","move_confirmation":"Verplaats {child} naar ouder {parent}","merge_confirmation":"Vervang {source} with {target}","move_selection":"Selecteer een ouder om {child} naar te verplaatsen.","merge_selection":"Vervang alle voorvallen van {source} door het type {type}.","Root":"Bron","show_split_screen":"Toon gesplitste weergave","New_Keyword":"Nieuw Etiket","Delete_Keyword":"Verwijder Etiket","Edit_Keyword":"Bewerk Etiket","Move_Keyword":"Verplaats Etiket","Hide_Keywords":"Verberg Etiketten","Hide_Recipes":"Verberg Recepten","Advanced Search Settings":"Geavanceerde zoekinstellingen","Merge":"Voeg samen","delete_confimation":"Weet je zeker dat je {kw} en zijn kinderen wil verwijderen?","Merge_Keyword":"Voeg Etiket samen"}')},ca5b:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[e.recipe.rating>0?r("span",{staticClass:"d-inline"},[e._l(Math.floor(e.recipe.rating),(function(e){return r("i",{key:e,staticClass:"fas fa-star fa-xs text-primary"})})),e.recipe.rating%1>0?r("i",{staticClass:"fas fa-star-half-alt fa-xs text-primary"}):e._e(),e._l(5-Math.ceil(e.recipe.rating),(function(e){return r("i",{key:e+10,staticClass:"far fa-star fa-xs text-secondary"})}))],2):e._e()])},i=[],o={name:"RecipeRating",props:{recipe:Object}},a=o,s=r("2877"),c=Object(s["a"])(a,n,i,!1,null,"7151a4e2",null);t["a"]=c.exports},d46a:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_add_book_"+e.modal_id,title:e.$t("Manage_Books"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()},shown:e.loadBookEntries}},[r("table",e._l(this.recipe_book_list,(function(t){return r("tr",{key:t.id},[r("td",[r("button",{staticClass:"btn btn-sm btn-danger",on:{click:function(r){return e.removeFromBook(t)}}},[r("i",{staticClass:"fa fa-trash-alt"})])]),r("td",[e._v(" "+e._s(t.book_content.name))])])})),0),r("multiselect",{staticStyle:{"margin-top":"1vh"},attrs:{options:e.books_filtered,taggable:!0,"tag-placeholder":e.$t("Create"),placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1,loading:e.books_loading},on:{tag:e.createBook,"search-change":e.loadBooks},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("159b"),r("4de4"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("2b2d"),l=r("fa7d");u["default"].prototype.moment=c.a,u["default"].use(d["a"]);var h={name:"AddRecipeToBook",components:{Multiselect:a.a},props:{recipe:Object,modal_id:Number},data:function(){return{books:[],books_loading:!1,recipe_book_list:[],selected_book:null}},computed:{books_filtered:function(){var e=this,t=[];return this.books.forEach((function(r){0===e.recipe_book_list.filter((function(e){return e.book===r.id})).length&&t.push(r)})),t}},mounted:function(){},methods:{loadBooks:function(e){var t=this;this.books_loading=!0;var r=new p["a"];r.listRecipeBooks({query:{query:e}}).then((function(e){t.books=e.data.filter((function(e){return-1===t.recipe_book_list.indexOf(e)})),t.books_loading=!1}))},createBook:function(e){var t=this,r=new p["a"];r.createRecipeBook({name:e}).then((function(e){t.books.push(e.data),t.selected_book=e.data,l["e"].makeStandardToast(l["e"].SUCCESS_CREATE)}))},addToBook:function(){var e=this,t=new p["a"];t.createRecipeBookEntry({book:this.selected_book.id,recipe:this.recipe.id}).then((function(t){e.recipe_book_list.push(t.data),l["e"].makeStandardToast(l["e"].SUCCESS_CREATE)}))},removeFromBook:function(e){var t=this,r=new p["a"];r.destroyRecipeBookEntry(e.id).then((function(r){t.recipe_book_list=t.recipe_book_list.filter((function(t){return t.id!==e.id})),l["e"].makeStandardToast(l["e"].SUCCESS_DELETE)}))},loadBookEntries:function(){var e=this,t=new p["a"];t.listRecipeBookEntrys({query:{recipe:this.recipe.id}}).then((function(t){e.recipe_book_list=t.data,e.loadBooks("")}))}}},f=h,b=(r("60bc"),r("2877")),v=Object(b["a"])(f,n,i,!1,null,null,null);t["a"]=v.exports},d56b:function(e,t,r){"use strict";r("9db4")},dc43:function(e){e.exports=JSON.parse('{"err_fetching_resource":"","err_creating_resource":"","err_updating_resource":"","err_deleting_resource":"","success_fetching_resource":"","success_creating_resource":"","success_updating_resource":"","success_deleting_resource":"","import_running":"","all_fields_optional":"","convert_internal":"","show_only_internal":"","Log_Recipe_Cooking":"","External_Recipe_Image":"外部菜谱图像","Add_to_Shopping":"添加到购物","Add_to_Plan":"添加到计划","Step_start_time":"","Sort_by_new":"","Recipes_per_page":"","Manage_Books":"管理书籍","Meal_Plan":"","Select_Book":"","Recipe_Image":"菜谱图像","Import_finished":"导入完成","View_Recipes":"","Log_Cooking":"","New_Recipe":"新菜谱","Url_Import":"导入网址","Reset_Search":"重置搜索","Recently_Viewed":"最近浏览","Load_More":"加载更多","Keywords":"关键字","Books":"书籍","Proteins":"蛋白质","Fats":"脂肪","Carbohydrates":"碳水化合物","Calories":"卡路里","Nutrition":"营养","Date":"日期","Share":"分享","Export":"导出","Copy":"拷贝","Rating":"评分","Close":"关闭","Link":"链接","Add":"添加","New":"新","Success":"成功","Failure":"失败","Ingredients":"材料","Supermarket":"超级市场","Categories":"分类","Category":"分类","Selected":"选定","min":"","Servings":"份量","Waiting":"等待","Preparation":"准备","External":"外部","Size":"大小","Files":"文件","File":"文件","Edit":"编辑","Cancel":"取消","Delete":"删除","Open":"打开","Ok":"打开","Save":"储存","Step":"步骤","Search":"搜索","Import":"导入","Print":"打印","Settings":"设置","or":"或","and":"与","Information":"更多资讯","Download":"下载","Create":"创立"}')},dfc6:function(e){e.exports=JSON.parse('{"err_fetching_resource":"","err_creating_resource":"","err_updating_resource":"","err_deleting_resource":"","success_fetching_resource":"","success_creating_resource":"","success_updating_resource":"","success_deleting_resource":"","import_running":"","all_fields_optional":"","convert_internal":"","show_only_internal":"","Log_Recipe_Cooking":"","External_Recipe_Image":"","Add_to_Book":"","Add_to_Shopping":"","Add_to_Plan":"","Step_start_time":"","Meal_Plan":"","Select_Book":"","Recipe_Image":"","Import_finished":"","View_Recipes":"","Log_Cooking":"","New_Recipe":"","Url_Import":"","Reset_Search":"","Recently_Viewed":"","Load_More":"","Keywords":"","Books":"","Proteins":"","Fats":"","Carbohydrates":"","Calories":"","Nutrition":"","Date":"","Share":"","Export":"","Copy":"","Rating":"","Close":"","Link":"","Add":"","New":"","Success":"","Ingredients":"","Supermarket":"","Categories":"","Category":"","Selected":"","min":"","Servings":"","Waiting":"","Preparation":"","External":"","Size":"","Files":"","File":"","Edit":"","Cancel":"","Delete":"","Open":"","Ok":"","Save":"","Step":"","Search":"","Import":"","Print":"","Settings":"","or":"","and":"","Information":"","Download":""}')},edd4:function(e){e.exports=JSON.parse('{"err_fetching_resource":"There was an error fetching a resource!","err_creating_resource":"There was an error creating a resource!","err_updating_resource":"There was an error updating a resource!","err_deleting_resource":"There was an error deleting a resource!","success_fetching_resource":"Successfully fetched a resource!","success_creating_resource":"Successfully created a resource!","success_updating_resource":"Successfully updated a resource!","success_deleting_resource":"Successfully deleted a resource!","import_running":"Import running, please wait!","all_fields_optional":"All fields are optional and can be left empty.","convert_internal":"Convert to internal recipe","show_only_internal":"Show only internal recipes","show_split_screen":"Show split view","Log_Recipe_Cooking":"Log Recipe Cooking","External_Recipe_Image":"External Recipe Image","Add_to_Shopping":"Add to Shopping","Add_to_Plan":"Add to Plan","Step_start_time":"Step start time","Sort_by_new":"Sort by new","Recipes_per_page":"Recipes per Page","Manage_Books":"Manage Books","Meal_Plan":"Meal Plan","Select_Book":"Select Book","Recipe_Image":"Recipe Image","Import_finished":"Import finished","View_Recipes":"View Recipes","Log_Cooking":"Log Cooking","New_Recipe":"New Recipe","Url_Import":"Url Import","Reset_Search":"Reset Search","Recently_Viewed":"Recently Viewed","Load_More":"Load More","New_Keyword":"New Keyword","Delete_Keyword":"Delete Keyword","Edit_Keyword":"Edit Keyword","Move_Keyword":"Move Keyword","Merge_Keyword":"Merge Keyword","Hide_Keywords":"Hide Keywords","Hide_Recipes":"Hide Recipes","Keywords":"Keywords","Books":"Books","Proteins":"Proteins","Fats":"Fats","Carbohydrates":"Carbohydrates","Calories":"Calories","Nutrition":"Nutrition","Date":"Date","Share":"Share","Export":"Export","Copy":"Copy","Rating":"Rating","Close":"Close","Cancel":"Cancel","Link":"Link","Add":"Add","New":"New","Success":"Success","Failure":"Failure","Ingredients":"Ingredients","Supermarket":"Supermarket","Categories":"Categories","Category":"Category","Selected":"Selected","min":"min","Servings":"Servings","Waiting":"Waiting","Preparation":"Preparation","External":"External","Size":"Size","Files":"Files","File":"File","Edit":"Edit","Delete":"Delete","Open":"Open","Ok":"Open","Save":"Save","Step":"Step","Search":"Search","Import":"Import","Print":"Print","Settings":"Settings","or":"or","and":"and","Information":"Information","Download":"Download","Create":"Create","Advanced Search Settings":"Advanced Search Settings","View":"View","Recipes":"Recipes","Move":"Move","Merge":"Merge","Parent":"Parent","delete_confimation":"Are you sure that you want to delete {kw} and all of it\'s children?","move_confirmation":"Move {child} to parent {parent}","merge_confirmation":"Replace {source} with {target}","move_selection":"Select a parent to move {child} to.","merge_selection":"Replace all occurences of {source} with the selected {type}.","Root":"Root","Ignore_Shopping":"Ignore Shopping","Shopping_Category":"Shopping Category","Edit_Food":"Edit Food","Move_Food":"Move Food","New_Food":"New Food","Hide_Food":"Hide Food","Delete_Food":"Delete Food","No_ID":"ID not found, cannot delete.","Meal_Plan_Days":"Future meal plans"}')},f693:function(e){e.exports=JSON.parse('{"err_fetching_resource":"Il y a eu une erreur pour récupérer une ressource !","err_creating_resource":"Il y a eu une erreur pour créer une ressource !","err_updating_resource":"Il y a eu une erreur pour mettre à jour une ressource !","err_deleting_resource":"Il y a eu une erreur pour supprimer une ressource !","success_fetching_resource":"Ressource correctement récupérée !","success_creating_resource":"Ressource correctement créée !","success_updating_resource":"Ressource correctement mise à jour !","success_deleting_resource":"Ressource correctement supprimée !","import_running":"Importation en cours, veuillez patienter !","all_fields_optional":"Tous les champs sont optionnels et peuvent être laissés vides.","convert_internal":"Convertir en recette interne","show_only_internal":"Montrer uniquement les recettes internes","Log_Recipe_Cooking":"Marquer la recette comme cuisinée","External_Recipe_Image":"Image externe de recette","Add_to_Shopping":"Ajouter à la liste de courses","Add_to_Plan":"Ajouter au menu","Step_start_time":"Heure de départ de l\'étape","Sort_by_new":"Trier par nouveautés","Recipes_per_page":"Nombre de recettes par page","Manage_Books":"Gérer les favoris","Meal_Plan":"Menu de la semaine","Select_Book":"Sélectionnez livre","Recipe_Image":"Image de la recette","Import_finished":"Importation finie","View_Recipes":"Voir les recettes","Log_Cooking":"Marquer comme cuisiné","New_Recipe":"Nouvelle recette","Url_Import":"Importation de l\'url","Reset_Search":"Réinitialiser la recherche","Recently_Viewed":"Vu récemment","Load_More":"Charger plus","Keywords":"Mots-clés","Books":"Livres","Proteins":"Protéines","Fats":"Matières grasses","Carbohydrates":"Glucides","Calories":"Calories","Nutrition":"Informations nutritionnelles","Date":"Date","Share":"Partager","Export":"Exporter","Copy":"Copier","Rating":"Note","Close":"Fermer","Link":"Lien","Add":"Ajouter","New":"Nouveau","Success":"Réussite","Failure":"Échec","Ingredients":"Ingrédients","Supermarket":"Supermarché","Categories":"Catégories","Category":"Catégorie","Selected":"Sélectionné","min":"min","Servings":"Portions","Waiting":"Attente","Preparation":"Préparation","External":"Externe","Size":"Taille","Files":"Fichiers","File":"Fichier","Edit":"Modifier","Cancel":"Annuler","Delete":"Supprimer","Open":"Ouvrir","Ok":"Ouvrir","Save":"Sauvegarder","Step":"Étape","Search":"Rechercher","Import":"Importer","Print":"Imprimer","Settings":"Paramètres","or":"ou","and":"et","Information":"Information","Download":"Télécharger","Create":"Créer"}')},fa7d:function(e,t,r){"use strict";r.d(t,"f",(function(){return m})),r.d(t,"i",(function(){return g})),r.d(t,"e",(function(){return j})),r.d(t,"c",(function(){return O})),r.d(t,"h",(function(){return y})),r.d(t,"d",(function(){return _})),r.d(t,"j",(function(){return S})),r.d(t,"g",(function(){return w})),r.d(t,"a",(function(){return U})),r.d(t,"b",(function(){return C}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),s=r("d4ec"),c=r("bee2"),u=r("ade3"),d=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4")),p=r("9225");function l(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var s=(n+o)/(i+a);if(e===s){i+a<=t?(i+=a,n+=o,a=t+1):i>a?a=t+1:i=t+1;break}et&&(i=a,n=o),!r)return[0,n,i];var c=Math.floor(n/i);return[c,n-c*i,i]}var h=r("2b2d"),f=r("bc3a"),b=r.n(f),v=r("a026"),m={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return g(e,t,r)}}};function g(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new d["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var j=function(){function e(){Object(s["a"])(this,e)}return Object(c["a"])(e,null,[{key:"makeStandardToast",value:function(t){switch(t){case e.SUCCESS_CREATE:g(p["a"].tc("Success"),p["a"].tc("success_creating_resource"),"success");break;case e.SUCCESS_FETCH:g(p["a"].tc("Success"),p["a"].tc("success_fetching_resource"),"success");break;case e.SUCCESS_UPDATE:g(p["a"].tc("Success"),p["a"].tc("success_updating_resource"),"success");break;case e.SUCCESS_DELETE:g(p["a"].tc("Success"),p["a"].tc("success_deleting_resource"),"success");break;case e.FAIL_CREATE:g(p["a"].tc("Failure"),p["a"].tc("success_creating_resource"),"danger");break;case e.FAIL_FETCH:g(p["a"].tc("Failure"),p["a"].tc("err_fetching_resource"),"danger");break;case e.FAIL_UPDATE:g(p["a"].tc("Failure"),p["a"].tc("err_updating_resource"),"danger");break;case e.FAIL_DELETE:g(p["a"].tc("Failure"),p["a"].tc("err_deleting_resource"),"danger");break}}}]),e}();Object(u["a"])(j,"SUCCESS_CREATE","SUCCESS_CREATE"),Object(u["a"])(j,"SUCCESS_FETCH","SUCCESS_FETCH"),Object(u["a"])(j,"SUCCESS_UPDATE","SUCCESS_UPDATE"),Object(u["a"])(j,"SUCCESS_DELETE","SUCCESS_DELETE"),Object(u["a"])(j,"FAIL_CREATE","FAIL_CREATE"),Object(u["a"])(j,"FAIL_FETCH","FAIL_FETCH"),Object(u["a"])(j,"FAIL_UPDATE","FAIL_UPDATE"),Object(u["a"])(j,"FAIL_DELETE","FAIL_DELETE");var O={methods:{_:function(e){return y(e)}}};function y(e){return window.gettext(e)}var _={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return S(e,t)}}};function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(a["a"])(t))return window.Urls[e](t);if("object"==Object(a["a"])(t)){if(1===t.length)return window.Urls[e](t);if(2===t.length)return window.Urls[e](t[0],t[1]);if(3===t.length)return window.Urls[e](t[0],t[1],t[2])}}function k(e){return window.USER_PREF[e]}function w(e,t){if(k("use_fractions")){var r="",n=l(e*t,10,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return P(e*t)}function P(e){var t=k("user_fractions")?k("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}b.a.defaults.xsrfCookieName="csrftoken",b.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var U={data:function(){return{api_settings:{suffix:{list:"s"},food:{name:"Food",model_type:"tree",create:[["name","description","recipe","ignore_shopping","supermarket_category"]],partialUpdate:["id",["name","description","recipe","ignore_shopping","supermarket_category"]]},keyword:{},unit:{},recipe:{name:"Recipe",list:["query","keywords","foods","books","keywordsOr","foodsOr","booksOr","internal","random","_new","page","pageSize","options"],typing:{list:{foods:"string",keywords:"string",books:"string"}}},tree:{values:{root:"getFunction()",tree:void 0},list:["query","root","tree","page","pageSize"],typing:{move:{source:"string",target:"string"}}},default:{list:["query","page","pageSize"],destroy:["id"],retrieve:["id"],merge:["source","target"],move:["source","target"],create:[],partialUpdate:[],values:{query:void 0,page:1,pageSize:25},typing:{merge:{source:"string",target:"string"}}}}}},methods:{genericAPI:function(e,t,r){var n,a,s,c,u,d,p,l,f,b,v,m,g,j,O,y,_,S,k,w,P,U,C,L,E,I,x;e=e.toLowerCase();var T=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(n=null===(a=this.api_settings)||void 0===a?void 0:a.default)&&void 0!==n?n:{}),null!==(s=null===(c=this.api_settings)||void 0===c?void 0:c[null===(u=this.api_settings)||void 0===u||null===(d=u[e])||void 0===d?void 0:d.model_type])&&void 0!==s?s:{}),this.api_settings[e]);T.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(p=null===(l=this.api_settings)||void 0===l||null===(f=l.default)||void 0===f?void 0:f.values)&&void 0!==p?p:{}),null!==(b=null===(v=this.api_settings)||void 0===v||null===(m=v[null===(g=this.api_settings)||void 0===g||null===(j=g[e])||void 0===j?void 0:j.model_type])||void 0===m?void 0:m.values)&&void 0!==b?b:{}),this.api_settings[e].values),T.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(O=null===(y=this.api_settings)||void 0===y||null===(_=y.default)||void 0===_||null===(S=_.typing)||void 0===S?void 0:S[t])&&void 0!==O?O:{}),null!==(k=null===(w=this.api_settings)||void 0===w||null===(P=w[null===(C=this.api_settings)||void 0===C||null===(L=C[e])||void 0===L?void 0:L.model_type])||void 0===P||null===(U=P.typing)||void 0===U?void 0:U[t])&&void 0!==k?k:{}),null===(E=this.api_settings[e].typing)||void 0===E?void 0:E[t]);var B=t+T.name+(null!==(I=null===(x=this.api_settings.suffix)||void 0===x?void 0:x[t])&&void 0!==I?I:""),F=[],M=void 0;T[t].forEach((function(e,t){if(Array.isArray(e)){M={};for(var n=0,o=Object.entries(r);n-1:e.this_item.ignore_shopping},on:{change:function(t){var r=e.this_item.ignore_shopping,n=t.target,i=!!n.checked;if(Array.isArray(r)){var o=null,a=e._i(r,o);n.checked?a<0&&e.$set(e.this_item,"ignore_shopping",r.concat([o])):a>-1&&e.$set(e.this_item,"ignore_shopping",r.slice(0,a).concat(r.slice(a+1)))}else e.$set(e.this_item,"ignore_shopping",i)}}}),r("label",{staticClass:"form-check-label",attrs:{for:"id_food_ignore_edit"}},[e._v(e._s(this.$t("Ignore_Shopping")))])]),r("label",{attrs:{for:"id_food_category_edit"}},[e._v(e._s(this.$t("Shopping_Category")))]),r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",initial_selection:[e.this_item.supermarket_category],search_function:"listSupermarketCategorys",multiple:!1,sticky_options:[{id:null,name:e.$t("None")}],placeholder:this.$t("Shopping_Category")},on:{change:function(t){e.this_item.supermarket_category=t.val}}})],1)]),r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_food_delete",title:this.$t("Delete_Food"),"ok-title":this.$t("Delete"),"cancel-title":this.$t("Cancel")},on:{ok:function(t){return e.deleteThis(e.this_item.id,e.this_model)}}},[e._v(" "+e._s(this.$t("delete_confimation",{kw:e.this_item.name}))+" ")]),r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_food_move",title:this.$t("Move_Food"),"ok-title":this.$t("Move"),"cancel-title":this.$t("Cancel")},on:{ok:function(t){return e.moveFood(e.this_item.id,e.this_item.target.id)}}},[e._v(" "+e._s(this.$t("move_selection",{child:e.this_item.name}))+" "),r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",search_function:"listFoods",multiple:!1,sticky_options:[{id:0,name:e.$t("Root")}],tree_api:!0,placeholder:this.$t("Search")},on:{change:function(t){e.this_item.target=t.val}}})],1),r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_food_merge",title:this.$t("Merge_Food"),"ok-title":this.$t("Merge"),"cancel-title":this.$t("Cancel")},on:{ok:function(t){return e.mergeFood(e.this_item.id,e.this_item.target.id)}}},[e._v(" "+e._s(this.$t("merge_selection",{source:e.this_item.name,type:this.$t("food")}))+" "),r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",search_function:"listFoods",multiple:!1,tree_api:!0,placeholder:this.$t("Search")},on:{change:function(t){e.this_item.target=t.val}}})],1)],1)},o=[],a=r("2909"),s=r("5530"),c=(r("99af"),r("5f5b")),u=(r("2dd8"),r("fa7d")),d=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticStyle:{"margin-bottom":"4vh"},attrs:{id:"app"}},[r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-2 d-none d-md-block"}),r("div",{staticClass:"col-xl-8 col-12"},[r("div",{staticClass:"container-fluid d-flex flex-column flex-grow-1",class:{"vh-100":e.show_split}},[r("div",{staticClass:"row flex-shrink-0"},[r("div",{staticClass:"col col-md-12"},[r("b-collapse",{staticClass:"mt-2",attrs:{id:"collapse_advanced"},model:{value:e.advanced_visible,callback:function(t){e.advanced_visible=t},expression:"advanced_visible"}},[r("div",{staticClass:"card"},[r("div",{staticClass:"card-body"},[r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-3",staticStyle:{"margin-top":"1vh"}},[r("div",{staticClass:"btn btn-primary btn-block text-uppercase",on:{click:function(t){return e.$emit("item-action",{action:"new"})}}},[e._v(" "+e._s(this.text.new)+" ")])]),r("div",{staticClass:"col-md-3",staticStyle:{"margin-top":"1vh"}},[r("button",{staticClass:"btn btn-primary btn-block text-uppercase",on:{click:e.resetSearch}},[e._v(" "+e._s(this.text.reset)+" ")])]),r("div",{staticClass:"col-md-3",staticStyle:{position:"relative","margin-top":"1vh"}},[r("b-form-checkbox",{staticClass:"shadow-none",staticStyle:{position:"relative",top:"50%",transform:"translateY(-50%)"},attrs:{name:"check-button",switch:""},model:{value:e.show_split,callback:function(t){e.show_split=t},expression:"show_split"}},[e._v(" "+e._s(this.text.split)+" ")])],1)])])])])],1)]),r("div",{staticClass:"row flex-shrink-0"},[r("div",{staticClass:"col col-md"},[r("b-input-group",{staticClass:"mt-3"},[r("b-input",{staticClass:"form-control",attrs:{placeholder:this.text.search},model:{value:e.search_right,callback:function(t){e.search_right=t},expression:"search_right"}}),r("b-input-group-append",[r("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.collapse_advanced",modifiers:{collapse_advanced:!0}}],staticClass:"shadow-none",attrs:{variant:"primary"}},[e.advanced_visible?e._e():r("i",{staticClass:"fas fa-caret-down"}),e.advanced_visible?r("i",{staticClass:"fas fa-caret-up"}):e._e()])],1)],1)],1),e.show_split?r("div",{staticClass:"col col-md"},[r("b-input-group",{staticClass:"mt-3"},[r("b-input",{staticClass:"form-control",attrs:{placeholder:this.text.search},model:{value:e.search_left,callback:function(t){e.search_left=t},expression:"search_left"}})],1)],1):e._e()]),r("div",{staticClass:"row",class:{"overflow-hidden":e.show_split}},[r("div",{staticClass:"col col-md",class:{"mh-100 overflow-auto":e.show_split}},[e._t("cards-left"),r("infinite-loading",{attrs:{identifier:e.left,spinner:"waveDots"},on:{infinite:function(t){return e.infiniteHandler(t,"left")}},scopedSlots:e._u([{key:"no-more",fn:function(){return[r("span")]},proxy:!0}])})],2),e.show_split?r("div",{staticClass:"col col-md mh-100 overflow-auto"},[e._t("cards-right"),r("infinite-loading",{attrs:{identifier:e.right,spinner:"waveDots"},on:{infinite:function(t){return e.infiniteHandler(t,"right")}},scopedSlots:e._u([{key:"no-more",fn:function(){return[r("span")]},proxy:!0}],null,!1,1714849021)})],2):e._e()])])]),r("div",{staticClass:"col-md-2 d-none d-md-block"})])])},p=[],l=(r("b0c0"),r("d3b7"),r("b047")),h=r.n(l),f=r("e166"),b=r.n(f),v={name:"GenericSplitLists",components:{InfiniteLoading:b.a},props:{list_name:{type:String,default:"Blank List"},left_list:{type:Array,default:function(){return[]}},right_list:{type:Array,default:function(){return[]}}},data:function(){return{advanced_visible:!1,show_split:!1,search_right:"",search_left:"",right_page:0,left_page:0,right:+new Date,left:+new Date,isDirtyright:!1,isDirtyleft:!1,text:{new:"",name:"",reset:this.$t("Reset_Search"),split:this.$t("show_split_screen"),search:this.$t("Search")}}},mounted:function(){this.dragMenu=this.$refs.tooltip,this.text.new=this.$t("New_"+this.list_name),this.text.name=this.$t(this.list_name)},watch:{search_right:h()((function(){this.left_page=0,this.$emit("reset",{column:"left"}),this.left+=1}),700),search_left:h()((function(){this.right_page=0,this.$emit("reset",{column:"right"}),this.right+=1}),700)},methods:{resetSearch:function(){""!==this.search_right?this.search_right="":(this.left_page=1,this.$emit("reset",{column:"left"}),this.left+=1),""!==this.search_left?this.search_left="":(this.right_page=1,this.$emit("reset",{column:"right"}),this.right+=1)},infiniteHandler:function(e,t){var r=this,n={query:"left"===t?this.search_right:this.search_left,page:"left"===t?this.left_page+1:this.right_page+1,column:t};new Promise((function(e){return r.$emit("get-list",n,e)})).then((function(n){r[t+"_page"]+=1,e.loaded(),n||e.complete()})).catch((function(){e.complete()}))}}},m=v,g=(r("60bc"),r("2877")),j=Object(g["a"])(m,d,p,!1,null,null,null),O=j.exports,y=r("0e20"),_=r("7432"),S=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-modal",{staticClass:"modal",attrs:{id:"modal"},scopedSlots:e._u([{key:"modal-title",fn:function(){return[r("h4",[e._v(e._s(e.model)+" "+e._s(e.action))])]},proxy:!0},{key:"modal-footer",fn:function(){return[r("b-button",{staticClass:"float-right mx-1",attrs:{variant:"secondary"},on:{click:function(t){return e.$bvModal.hide("modal")}}},[e._v(e._s(e.$t("Cancel")))]),r("b-button",{staticClass:"float-right mx-1",attrs:{variant:"primary"},on:{click:e.doAction}},[e._v(e._s(e.buttonLabel))])]},proxy:!0}])},e._l(e.fields,(function(t,n){return r("div",{key:n},["instruction"==t.type?r("p",[e._v(e._s(t.label))]):e._e(),"lookup"==t.type?r("lookup-input",{attrs:{label:t.label,value:t.value,field:t.field},on:{change:e.changeValue}}):e._e(),e._v(" "),"checkbox"==t.type?r("checkbox-input",{attrs:{label:t.label,value:t.value,field:t.field}}):e._e(),"text"==t.type?r("text-input",{attrs:{label:t.label,value:t.value,field:t.field,placeholder:t.placeholder}}):e._e()],1)})),0),r("b-button",{on:{click:e.Button}},[e._v("ok")])],1)},k=[],w=r("3835"),P=(r("4fad"),function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-form-checkbox",{model:{value:e.new_value,callback:function(t){e.new_value=t},expression:"new_value"}},[e._v(e._s(e.label))])],1)}),U=[],R={name:"CheckboxInput",props:{field:{type:String,default:"You Forgot To Set Field Name"},label:{type:String,default:"Checkbox Field"},value:{type:Boolean,default:!1},show_move:{type:Boolean,default:!1},show_merge:{type:Boolean,default:!1}},data:function(){return{new_value:void 0}},mounted:function(){this.new_value=this.value},watch:{new_value:function(){this.$root.$emit("change",this.field,this.new_value)}},methods:{Button:function(e){this.$bvModal.show("modal")}}},C=R,L=Object(g["a"])(C,P,U,!1,null,null,null),E=L.exports,I=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-form-group",{staticClass:"mb-3",attrs:{label:e.label}},[r("generic-multiselect",{staticStyle:{"flex-grow":"1","flex-shrink":"1","flex-basis":"0"},attrs:{label:"name",initial_selection:[],search_function:"listSupermarketCategorys",multiple:!1,sticky_options:[{id:null,name:e.$t("None")}],placeholder:e.$t("Shopping_Category")},on:{change:function(t){e.new_value=t.val}}})],1)],1)},x=[],T={name:"LookupInput",components:{GenericMultiselect:_["a"]},props:{field:{type:String,default:"You Forgot To Set Field Name"},label:{type:String,default:"Lookup Field"},value:{type:Object,default:function(){return{}}},show_move:{type:Boolean,default:!1},show_merge:{type:Boolean,default:!1}},data:function(){return{new_value:void 0}},mounted:function(){this.new_value=this.value},watch:{new_value:function(){this.$root.$emit("change",this.field,this.new_value)}},methods:{Button:function(e){this.$bvModal.show("modal")}}},B=T,F=Object(g["a"])(B,I,x,!1,null,null,null),M=F.exports,q=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-form-group",{staticClass:"mb-3",attrs:{label:e.label}},[r("b-form-input",{attrs:{type:"string",placeholder:e.placeholder},model:{value:e.new_value,callback:function(t){e.new_value=t},expression:"new_value"}})],1)],1)},A=[],$={name:"TextInput",props:{field:{type:String,default:"You Forgot To Set Field Name"},label:{type:String,default:"Text Field"},value:{type:String,default:""},placeholder:{type:String,default:"You Should Add Placeholder Text"},show_merge:{type:Boolean,default:!1}},data:function(){return{new_value:void 0}},mounted:function(){this.new_value=this.value},watch:{new_value:function(){this.$root.$emit("change",this.field,this.new_value)}},methods:{Button:function(e){this.$bvModal.show("modal")}}},D=$,K=Object(g["a"])(D,q,A,!1,null,null,null),N=K.exports;n["default"].use(c["a"]);var V={name:"GenericModalForm",components:{CheckboxInput:E,LookupInput:M,TextInput:N},props:{model:{type:String,default:""},show:{type:Boolean,default:!1}},data:function(){return{new_item:{},action:"",fields:[{label:"This is a long set of instructions that tell you to be careful with what you do next or really bad things are likely to happen.",type:"instruction",value:void 0},{field:"name",label:"first",type:"text",value:void 0,placeholder:"do the thing"},{field:"shopping",label:"second",type:"lookup",value:void 0},{field:"isreal",label:"third",type:"checkbox",value:void 0},{field:"ignore",label:"fourth",type:"checkbox",value:void 0},{field:"another_category",label:"fifth",type:"lookup",value:void 0},{field:"description",label:"sixth",type:"text",value:void 0,placeholder:"also, do the thing"}],buttons:{new:{label:this.$t("Save")},delete:{label:this.$t("Delete")},edit:{label:this.$t("Save")},move:{label:this.$t("Move")},merge:{label:this.$t("Merge")}}}},mounted:function(){this.$root.$on("change",this.changeValue)},computed:{buttonLabel:function(){return this.buttons[this.action].label}},watch:{show:function(){this.show&&this.$bvModal.show("modal")}},methods:{Button:function(e){this.action="new",this.$bvModal.show("modal")},doAction:function(){console.log(this.new_item);for(var e="",t=0,r=Object.entries(this.fields);t("left"===i?n.foods.length:n.foods2.length))):(t(!1),console.log("no data returned")),t(e.data.count<("left"===i?n.foods.length:n.foods2.length))})).catch((function(e){console.log(e),n.makeToast(n.$t("Error"),e.bodyText,"danger")}))},getThis:function(e,t){return this.genericAPI(this.this_model,"retrieve",{id:e})},saveFood:function(){var e,t,r,n,i=this,o=Object(s["a"])({},this.this_item);o.supermarket_category=null!==(e=null===(t=this.this_item.supermarket_category)||void 0===t?void 0:t.id)&&void 0!==e?e:null,o.recipe=null!==(r=null===(n=this.this_item.recipe)||void 0===n?void 0:n.id)&&void 0!==r?r:null,null!==o&&void 0!==o&&o.id?this.genericAPI(this.this_model,"updatePartial",o).then((function(e){i.refreshObject(i.this_item.id)})).catch((function(e){console.log(e)})):this.genericAPI(this.this_model,"create",o).then((function(e){i.foods=[e.data].concat(i.foods),i.show_split?i.foods2=Object(a["a"])(i.foods):i.foods2=[]})).catch((function(e){console.log(e)})),this.this_item=Object(s["a"])({},this.blank_item)},moveFood:function(e,t){var r=this;this.genericAPI(this.this_model,"move",{source:e,target:t}).then((function(n){if(0===t){var i=r.findCard(e,r.foods)||r.findCard(e,r.foods2);r.foods=[i].concat(r.destroyCard(e,r.foods)),r.foods2=[i].concat().concat(r.destroyCard(e,r.foods2)),i.parent=null}else r.foods=r.destroyCard(e,r.foods),r.foods2=r.destroyCard(e,r.foods2),r.refreshObject(t)})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},mergeFood:function(e,t){var r=this;this.genericAPI(this.this_model,"merge",{source:e,target:t}).then((function(n){r.foods=r.destroyCard(e,r.foods),r.foods2=r.destroyCard(e,r.foods2),r.refreshObject(t)})).catch((function(e){console.log("Error",e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},getChildren:function(e,t){var r=this,i={},o={root:t.id,pageSize:200};this.genericAPI(this.this_model,"list",o).then((function(o){i=r.findCard(t.id,"left"===e?r.foods:r.foods2),i&&(n["default"].set(i,"children",o.data.results),n["default"].set(i,"show_children",!0),n["default"].set(i,"show_recipes",!1))})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},getRecipes:function(e,t){var r=this,i={},o={foods:t.id,pageSize:200};this.genericAPI("recipe","list",o).then((function(o){i=r.findCard(t.id,"left"===e?r.foods:r.foods2),i&&(n["default"].set(i,"recipes",o.data.results),n["default"].set(i,"show_recipes",!0),n["default"].set(i,"show_children",!1))})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))},refreshObject:function(e){var t=this;this.getThis(e).then((function(e){t.refreshCard(e.data,t.foods),t.refreshCard(Object(s["a"])({},e.data),t.foods2)}))},prepareEmoji:function(){this.$refs._edit.addText(this.this_item.icon||""),this.$refs._edit.blur(),document.getElementById("btn-emoji-default").disabled=!0},setIcon:function(e){this.this_item.icon=e},deleteThis:function(e,t){var r=this;this.genericAPI(this.this_model,"destroy",{id:e}).then((function(t){r.foods=r.destroyCard(e,r.foods),r.foods2=r.destroyCard(e,r.foods2)})).catch((function(e){console.log(e),r.makeToast(r.$t("Error"),e.bodyText,"danger")}))}}},W=J,Y=Object(g["a"])(W,i,o,!1,null,null,null),Z=Y.exports,X=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:X["a"],render:function(e){return e(Z)}}).$mount("#app")},"0e20":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{attrs:{row:""}},[r("b-card",{class:{"border border-primary":e.over,shake:e.isError},staticStyle:{height:"10vh"},style:{"cursor:grab":e.draggable},attrs:{"no-body":"","d-flex":"","flex-column":"",draggable:e.draggable},on:{dragover:function(e){e.preventDefault()},dragenter:[function(e){e.preventDefault()},function(t){return e.handleDragEnter(t)}],dragstart:function(t){return e.handleDragStart(t)},dragleave:function(t){return e.handleDragLeave(t)},drop:function(t){return e.handleDragDrop(t)}}},[r("b-row",{staticStyle:{height:"inherit"},attrs:{"no-gutters":""}},[r("b-col",{staticStyle:{height:"inherit"},attrs:{"no-gutters":"",md:"3"}},[r("b-card-img-lazy",{staticStyle:{"object-fit":"cover",height:"10vh"},attrs:{src:e.model_image,alt:e.$t("Recipe_Image")}})],1),r("b-col",{staticStyle:{height:"inherit"},attrs:{"no-gutters":"",md:"9"}},[r("b-card-body",{staticClass:"m-0 py-0",staticStyle:{height:"inherit"}},[r("b-card-text",{staticClass:" h-100 my-0 d-flex flex-column",staticStyle:{"text-overflow":"ellipsis"}},[r("h5",{staticClass:"m-0 mt-1 text-truncate"},[e._v(e._s(e.model[e.title]))]),r("div",{staticClass:"m-0 text-truncate"},[e._v(e._s(e.model[e.subtitle]))]),r("div",{staticClass:"mt-auto mb-1 d-flex flex-row justify-content-end"},[0!=e.model[e.child_count]?r("div",{staticClass:"mx-2 btn btn-link btn-sm",staticStyle:{"z-index":"800"},on:{click:function(t){return e.$emit("item-action",{action:"get-children",source:e.model})}}},[e.model.show_children?r("div",[e._v(e._s(e.text.hide_children))]):r("div",[e._v(e._s(e.model[e.child_count])+" "+e._s(e.model_name))])]):e._e(),e.model[e.recipe_count]?r("div",{staticClass:"mx-2 btn btn-link btn-sm",staticStyle:{"z-index":"800"},on:{click:function(t){return e.$emit("item-action",{action:"get-recipes",source:e.model})}}},[e.model.show_recipes?r("div",[e._v(e._s(e.$t("Hide_Recipes")))]):r("div",[e._v(e._s(e.model[e.recipe_count])+" "+e._s(e.$t("Recipes")))])]):e._e()])])],1)],1),r("div",{staticClass:"card-img-overlay justify-content-right h-25 m-0 p-0 text-right"},[e._t("upper-right"),r("generic-context-menu",{staticClass:"p-0",attrs:{show_merge:e.merge,show_move:e.move},on:{"item-action":function(t){return e.$emit("item-action",{action:t,source:e.model})}}})],2)],1)],1),e.model.show_children?r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-11 offset-md-1"},e._l(e.model[e.children],(function(t){return r("generic-horizontal-card",{key:t.id,attrs:{draggable:e.draggable,model:t,model_name:e.model_name,title:e.title,subtitle:e.subtitle,child_count:e.child_count,children:e.children,recipe_count:e.recipe_count,recipes:e.recipes,merge:e.merge,move:e.move},on:{"item-action":function(t){return e.$emit("item-action",t)}}})})),1)]):e._e(),e.model.show_recipes?r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-11 offset-md-1"},[r("div",{staticStyle:{display:"grid","grid-template-columns":"repeat(auto-fit, minmax(200px, 1fr))","grid-gap":"1rem"}},e._l(e.model[e.recipes],(function(e){return r("recipe-card",{key:e.id,attrs:{recipe:e}})})),1)])]):e._e(),r("b-list-group",{directives:[{name:"show",rawName:"v-show",value:e.show_menu,expression:"show_menu"},{name:"on-clickaway",rawName:"v-on-clickaway",value:e.closeMenu,expression:"closeMenu"}],ref:"tooltip",staticStyle:{"z-index":"9999",cursor:"pointer"},attrs:{variant:"light"}},[e.move?r("b-list-group-item",{attrs:{action:""},on:{click:function(t){e.$emit("item-action",{action:"move",target:e.model,source:e.source}),e.closeMenu()}}},[e._v(" "+e._s(e.$t("Move"))+": "+e._s(e.$t("move_confirmation",{child:e.source.name,parent:e.model.name}))+" ")]):e._e(),e.merge?r("b-list-group-item",{attrs:{action:""},on:{click:function(t){e.$emit("item-action",{action:"merge",target:e.model,source:e.source}),e.closeMenu()}}},[e._v(" "+e._s(e.$t("Merge"))+": "+e._s(e.$t("merge_confirmation",{source:e.source.name,target:e.model.name}))+" ")]):e._e(),r("b-list-group-item",{attrs:{action:""},on:{click:function(t){return e.closeMenu()}}},[e._v(" "+e._s(e.$t("Cancel"))+" ")])],1)],1)},i=[],o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("b-dropdown",{attrs:{variant:"link","toggle-class":"text-decoration-none","no-caret":""},scopedSlots:e._u([{key:"button-content",fn:function(){return[r("i",{staticClass:"fas fa-ellipsis-v"})]},proxy:!0}])},[e.show_edit?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","edit")}}},[r("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e.$t("Edit"))+" ")]):e._e(),e.show_delete?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","delete")}}},[r("i",{staticClass:"fas fa-trash-alt fa-fw"}),e._v(" "+e._s(e.$t("Delete"))+" ")]):e._e(),e.show_move?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","move")}}},[r("i",{staticClass:"fas fa-expand-arrows-alt fa-fw"}),e._v(" "+e._s(e.$t("Move"))+" ")]):e._e(),e.show_merge?r("b-dropdown-item",{on:{click:function(t){return e.$emit("item-action","merge")}}},[r("i",{staticClass:"fas fa-compress-arrows-alt fa-fw"}),e._v(" "+e._s(e.$t("Merge"))+" ")]):e._e()],1)},a=[],s={name:"GenericContextMenu",props:{show_edit:{type:Boolean,default:!0},show_delete:{type:Boolean,default:!0},show_move:{type:Boolean,default:!1},show_merge:{type:Boolean,default:!1}}},c=s,u=r("2877"),d=Object(u["a"])(c,o,a,!1,null,null,null),p=d.exports,l=r("6b0a"),h=r("c7db"),f=r("39c3"),b={name:"GenericHorizontalCard",components:{GenericContextMenu:p,RecipeCard:l["a"]},mixins:[h["mixin"]],props:{model:Object,model_name:{type:String,default:"Blank Model"},draggable:{type:Boolean,default:!1},title:{type:String,default:"name"},subtitle:{type:String,default:"description"},child_count:{type:String,default:"numchild"},children:{type:String,default:"children"},recipe_count:{type:String,default:"numrecipe"},recipes:{type:String,default:"recipes"},move:{type:Boolean,default:!1},merge:{type:Boolean,default:!1}},data:function(){return{model_image:"",over:!1,show_menu:!1,dragMenu:void 0,isError:!1,source:{id:void 0,name:void 0},target:{id:void 0,name:void 0},text:{hide_children:""}}},mounted:function(){var e,t;this.model_image=null!==(e=null===(t=this.model)||void 0===t?void 0:t.image)&&void 0!==e?e:window.IMAGE_PLACEHOLDER,this.dragMenu=this.$refs.tooltip,this.text.hide_children=this.$t("Hide_"+this.model_name)},methods:{handleDragStart:function(e){this.isError=!1,e.dataTransfer.setData("source",JSON.stringify(this.model))},handleDragEnter:function(e){e.currentTarget.contains(e.relatedTarget)||null==e.relatedTarget||(this.over=!0)},handleDragLeave:function(e){e.currentTarget.contains(e.relatedTarget)||(this.over=!1)},handleDragDrop:function(e){var t=JSON.parse(e.dataTransfer.getData("source"));if(t.id!=this.model.id){this.source=t;var r={getBoundingClientRect:this.generateLocation(e.clientX,e.clientY)};this.show_menu=!0;var n=Object(f["a"])(r,this.dragMenu,{placement:"bottom-start",modifiers:[{name:"preventOverflow",options:{rootBoundary:"document"}},{name:"flip",options:{fallbackPlacements:["bottom-end","top-start","top-end","left-start","right-start"],rootBoundary:"document"}}]});n.update(),this.over=!1,this.$emit({action:"drop",target:this.model,source:this.source})}else this.isError=!0},generateLocation:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return function(){return{width:0,height:0,top:t,right:e,bottom:t,left:e}}},closeMenu:function(){this.show_menu=!1}}},v=b,m=(r("d56b"),Object(u["a"])(v,n,i,!1,null,"8f249282",null));t["a"]=m.exports},2165:function(e){e.exports=JSON.parse('{"err_fetching_resource":"","err_creating_resource":"","err_updating_resource":"","err_deleting_resource":"","success_fetching_resource":"","success_creating_resource":"","success_updating_resource":"","success_deleting_resource":"","import_running":"","all_fields_optional":"","convert_internal":"","show_only_internal":"","Log_Recipe_Cooking":"","External_Recipe_Image":"","Add_to_Shopping":"","Add_to_Plan":"","Step_start_time":"","Sort_by_new":"","Recipes_per_page":"","Manage_Books":"","Meal_Plan":"","Select_Book":"","Recipe_Image":"","Import_finished":"","View_Recipes":"","Log_Cooking":"","New_Recipe":"","Url_Import":"","Reset_Search":"","Recently_Viewed":"","Load_More":"","Keywords":"","Books":"","Proteins":"","Fats":"","Carbohydrates":"","Calories":"","Nutrition":"","Date":"","Share":"","Export":"","Copy":"","Rating":"","Close":"","Link":"","Add":"","New":"","Success":"","Failure":"","Ingredients":"","Supermarket":"","Categories":"","Category":"","Selected":"","min":"","Servings":"","Waiting":"","Preparation":"","External":"","Size":"","Files":"","File":"","Edit":"","Cancel":"","Delete":"","Open":"","Ok":"","Save":"","Step":"","Search":"","Import":"","Print":"","Settings":"","or":"","and":"","Information":"","Download":"","Create":""}')},"2b2d":function(e,t,r){"use strict";r.d(t,"a",(function(){return k}));r("d3b7"),r("3ca3"),r("ddb0"),r("2b3d"),r("ac1f"),r("5319");var n,i,o,a,s,c,u,d=r("9ab4"),p=r("bc3a"),l=r.n(p),h=(r("841c"),r("25f0"),r("b0c0"),"undefined"!==typeof window?localStorage.getItem("BASE_PATH")||"":location.protocol+"//"+location.host),f=function(){function e(e,t,r){void 0===t&&(t=h),void 0===r&&(r=l.a),this.basePath=t,this.axios=r,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}return e}(),b=function(e){function t(t,r){var n=e.call(this,r)||this;return n.field=t,n.name="RequiredError",n}return Object(d["c"])(t,e),t}(Error),v="https://example.com",m=function(e,t,r){if(null===r||void 0===r)throw new b(t,"Required parameter "+t+" was null or undefined when calling "+e+".")},g=function(e){for(var t=[],r=1;r120?r("span",[e._v(" "+e._s(e.recipe.description.substr(0,120)+"…")+" ")]):e._e(),e.recipe.description.length<=120?r("span",[e._v(" "+e._s(e.recipe.description)+" ")]):e._e()]:e._e(),r("br"),e._v(" "),r("last-cooked",{attrs:{recipe:e.recipe}}),r("keywords",{staticStyle:{"margin-top":"4px"},attrs:{recipe:e.recipe}}),e.recipe.internal?e._e():r("b-badge",{attrs:{pill:"",variant:"info"}},[e._v(e._s(e.$t("External")))])]:[e._v(e._s(e.meal_plan.note))]],2)],1),void 0!==e.footer_text?r("b-card-footer",[r("i",{class:e.footer_icon}),e._v(" "+e._s(e.footer_text)+" ")]):e._e()],1)},i=[],o=r("fc0d"),a=r("81d5"),s=r("fa7d"),c=r("ca5b"),u=r("c1df"),d=r.n(u),p=r("a026"),l=r("830a");p["default"].prototype.moment=d.a;var h={name:"RecipeCard",mixins:[s["d"]],components:{LastCooked:l["a"],RecipeRating:c["a"],Keywords:a["a"],RecipeContextMenu:o["a"]},props:{recipe:Object,meal_plan:Object,footer_text:String,footer_icon:String},data:function(){return{recipe_image:""}},mounted:function(){null==this.recipe||null===this.recipe.image?this.recipe_image=window.IMAGE_PLACEHOLDER:this.recipe_image=this.recipe.image},methods:{clickUrl:function(){return null!==this.recipe?Object(s["j"])("view_recipe",this.recipe.id):Object(s["j"])("view_plan_entry",this.meal_plan.id)}},directives:{hover:{inserted:function(e){e.addEventListener("mouseenter",(function(){e.classList.add("shadow")})),e.addEventListener("mouseleave",(function(){e.classList.remove("shadow")}))}}}},f=h,b=r("2877"),v=Object(b["a"])(f,n,i,!1,null,"6d71945d",null);t["a"]=v.exports},"6ce2":function(e){e.exports=JSON.parse('{"Import":"Importieren","import_running":"Import läuft, bitte warten!","Import_finished":"Import fertig","View_Recipes":"Rezepte Ansehen","Information":"Information","all_fields_optional":"Alle Felder sind optional und können leer gelassen werden.","convert_internal":"Zu internem Rezept wandeln","Log_Recipe_Cooking":"Kochen protokollieren","External_Recipe_Image":"Externes Rezept Bild","Add_to_Book":"Zu Buch hinzufügen","Add_to_Shopping":"Zu Einkaufsliste hinzufügen","Add_to_Plan":"Zu Plan hinzufügen","Step_start_time":"Schritt Startzeit","Select_Book":"Buch wählen","Recipe_Image":"Rezept Bild","Log_Cooking":"Kochen protokollieren","Proteins":"Proteine","Fats":"Fette","Carbohydrates":"Kohlenhydrate","Calories":"Kalorien","Nutrition":"Nährwerte","Keywords":"Stichwörter","Books":"Bücher","show_only_internal":"Nur interne Rezepte anzeigen","Ingredients":"Zutaten","min":"Min","Servings":"Portionen","Waiting":"Wartezeit","Preparation":"Vorbereitung","Edit":"Bearbeiten","Open":"Öffnen","Save":"Speichern","Step":"Schritt","Search":"Suchen","Print":"Drucken","New_Recipe":"Neues Rezept","Url_Import":"URL Import","Reset_Search":"Suche zurücksetzen","or":"oder","and":"und","Recently_Viewed":"Kürzlich angesehen","External":"Extern","Settings":"Einstellungen","Meal_Plan":"Speiseplan","Date":"Datum","Share":"Teilen","Export":"Exportieren","Rating":"Bewertung","Close":"Schließen","Add":"Hinzufügen","Copy":"Kopieren","New":"Neu","Categories":"Kategorien","Category":"Kategorie","Selected":"Ausgewählt","Supermarket":"Supermarkt","Files":"Dateien","Size":"Größe","success_fetching_resource":"Ressource erfolgreich abgerufen!","Download":"Herunterladen","Success":"Erfolgreich","err_fetching_resource":"Ein Fehler trat während dem Abrufen einer Ressource auf!","err_creating_resource":"Ein Fehler trat während dem Erstellen einer Ressource auf!","err_updating_resource":"Ein Fehler trat während dem Aktualisieren einer Ressource auf!","success_creating_resource":"Ressource erfolgreich erstellt!","success_updating_resource":"Ressource erfolgreich aktualisiert!","File":"Datei","Delete":"Löschen","err_deleting_resource":"Ein Fehler trat während dem Löschen einer Ressource auf!","Cancel":"Abbrechen","success_deleting_resource":"Ressource erfolgreich gelöscht!","Load_More":"Mehr laden","Ok":"Öffnen"}')},7:function(e,t,r){e.exports=r("0ae9")},7432:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("multiselect",{attrs:{options:e.objects,"close-on-select":!0,"clear-on-select":!0,"hide-selected":!0,"preserve-search":!0,placeholder:e.placeholder,label:e.label,"track-by":"id",multiple:e.multiple,loading:e.loading},on:{"search-change":e.search,input:e.selectionChanged},model:{value:e.selected_objects,callback:function(t){e.selected_objects=t},expression:"selected_objects"}})},i=[],o=(r("a9e3"),r("ac1f"),r("841c"),r("99af"),r("8e5f")),a=r.n(o),s=r("2b2d"),c={name:"GenericMultiselect",components:{Multiselect:a.a},data:function(){return{loading:!1,objects:[],selected_objects:[]}},props:{placeholder:String,search_function:String,label:String,parent_variable:{type:String,default:void 0},limit:{type:Number,default:10},sticky_options:{type:Array,default:function(){return[]}},initial_selection:{type:Array,default:function(){return[]}},multiple:{type:Boolean,default:!0},tree_api:{type:Boolean,default:!1}},watch:{initial_selection:function(e,t){if(this.multiple)this.selected_objects=e;else if(this.selected_objects!=(null===e||void 0===e?void 0:e[0])){var r;this.selected_objects=null!==(r=null===e||void 0===e?void 0:e[0])&&void 0!==r?r:null}}},mounted:function(){var e,t,r;(this.search(""),!this.multiple&this.selected_objects!=(null===(e=this.initial_selection)||void 0===e?void 0:e[0]))&&(this.selected_objects=null!==(t=null===(r=this.initial_selection)||void 0===r?void 0:r[0])&&void 0!==t?t:null)},methods:{search:function(e){var t=this,r=new s["a"];if(this.tree_api){var n=1,i=void 0,o=void 0,a=10;""===e&&(e=void 0),r[this.search_function](e,i,o,n,a).then((function(e){t.objects=t.sticky_options.concat(e.data.results)}))}else"listRecipes"===this.search_function?r[this.search_function](e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,25,void 0).then((function(e){t.objects=t.sticky_options.concat(e.data.results)})):r[this.search_function]({query:{query:e,limit:this.limit}}).then((function(e){t.objects=t.sticky_options.concat(e.data)}))},selectionChanged:function(){this.$emit("change",{var:this.parent_variable,val:this.selected_objects})}}},u=c,d=r("2877"),p=Object(d["a"])(u,n,i,!1,null,"61f5c6dc",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return s}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["j"])("api:recipe-detail",e);return void 0!==window.SHARE_UID&&(t+="?share="+window.SHARE_UID),i.a.get(t).then((function(e){return e.data})).catch((function(e){c(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["j"])("api:cooklog-list"),e).then((function(e){Object(o["i"])("Saved","Cook Log entry saved!","success")})).catch((function(e){c(e,"There was an error creating a resource!","danger")}))}function c(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["h"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["i"])(r,t,"danger")}else Object(o["i"])("Error",t,"danger"),console.log(e)}i.a.defaults.xsrfCookieName="csrftoken",i.a.defaults.xsrfHeaderName="X-CSRFTOKEN"},"81d5":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return e.recipe.keywords.length>0?r("div",e._l(e.recipe.keywords,(function(t){return r("span",{key:t.id,staticStyle:{padding:"2px"}},[r("b-badge",{attrs:{pill:"",variant:"light"}},[e._v(e._s(t.label))])],1)})),0):e._e()},i=[],o={name:"Keywords",props:{recipe:Object}},a=o,s=r("2877"),c=Object(s["a"])(a,n,i,!1,null,null,null);t["a"]=c.exports},"830a":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("span",[null!==e.recipe.last_cooked?r("b-badge",{attrs:{pill:"",variant:"primary"}},[r("i",{staticClass:"fas fa-utensils"}),e._v(" "+e._s(e.formatDate(e.recipe.last_cooked)))]):e._e()],1)},i=[],o=r("c1df"),a=r.n(o),s={name:"LastCooked",props:{recipe:Object},methods:{formatDate:function(e){return a.a.locale(window.navigator.language),a()(e).format("L")}}},c=s,u=r("2877"),d=Object(u["a"])(c,n,i,!1,null,"720408c0",null);t["a"]=d.exports},9225:function(e,t,r){"use strict";r("159b"),r("d3b7"),r("ddb0"),r("ac1f"),r("466d");var n=r("a026"),i=r("a925");function o(){var e=r("49f8"),t={};return e.keys().forEach((function(r){var n=r.match(/([A-Za-z0-9-_]+)\./i);if(n&&n.length>1){var i=n[1];t[i]=e(r)}})),t}n["default"].use(i["a"]),t["a"]=new i["a"]({locale:Object({NODE_ENV:"production",BASE_URL:""}).VUE_APP_I18N_LOCALE||"en",fallbackLocale:Object({NODE_ENV:"production",BASE_URL:""}).VUE_APP_I18N_FALLBACK_LOCALE||"en",messages:o()})},"9db4":function(e,t,r){},a625:function(e){e.exports=JSON.parse('{"import_running":"Er wordt geïmporteerd, even geduld!","all_fields_optional":"Alle velden zijn optioneel en kunnen leeg gelaten worden.","convert_internal":"Zet om naar intern recept","Log_Recipe_Cooking":"Log Bereiding","External_Recipe_Image":"Externe Afbeelding Recept","Add_to_Book":"Voeg toe aan Boek","Add_to_Shopping":"Voeg toe aan Boodschappenlijst","Add_to_Plan":"Voeg toe aan Plan","Step_start_time":"Starttijd stap","Select_Book":"Selecteer Boek","Recipe_Image":"Afbeelding Recept","Import_finished":"Importeren gereed","View_Recipes":"Bekijk Recepten","Log_Cooking":"Log Bereiding","Proteins":"Eiwitten","Fats":"Vetten","Carbohydrates":"Koolhydraten","Calories":"Calorieën","Nutrition":"Voedingswaarde","Date":"Datum","Share":"Deel","Export":"Exporteren","Rating":"Beoordeling","Close":"Sluiten","Add":"Voeg toe","Ingredients":"Ingrediënten","min":"min","Servings":"Porties","Waiting":"Wachten","Preparation":"Bereiding","Edit":"Bewerken","Open":"Open","Save":"Opslaan","Step":"Stap","Search":"Zoeken","Import":"Importeer","Print":"Afdrukken","Information":"Informatie","Keywords":"Etiketten","Books":"Boeken","show_only_internal":"Toon alleen interne recepten","New_Recipe":"Nieuw Recept","Url_Import":"Importeer URL","Reset_Search":"Zoeken resetten","or":"of","and":"en","Recently_Viewed":"Recent bekeken","External":"Externe","Settings":"Instellingen","Meal_Plan":"Maaltijdplan","New":"Nieuw","Supermarket":"Supermarkt","Categories":"Categorieën","Category":"Categorie","Selected":"Geselecteerd","Copy":"Kopie","Link":"Link","Sort_by_new":"Sorteer op nieuw","Recipes_per_page":"Recepten per pagina","Files":"Bestanden","Size":"Grootte","File":"Bestand","err_fetching_resource":"Bij het ophalen van een hulpbron is een foutmelding opgetreden!","err_creating_resource":"Bij het maken van een hulpbron is een foutmelding opgetreden!","err_updating_resource":"Bij het updaten van een hulpbron is een foutmelding opgetreden!","success_fetching_resource":"Hulpbron is succesvol opgehaald!","success_creating_resource":"Hulpbron succesvol aangemaakt!","success_updating_resource":"Hulpbron succesvol geüpdatet!","Success":"Succes","Download":"Download","err_deleting_resource":"Bij het verwijderen van een hulpbron is een foutmelding opgetreden!","success_deleting_resource":"Hulpbron succesvol verwijderd!","Cancel":"Annuleer","Delete":"Verwijder","Ok":"Open","Load_More":"Laad meer","Manage_Books":"Beheer Boeken","Create":"Maak","Failure":"Storing","View":"Bekijk","Recipes":"Recepten","Move":"Verplaats","Parent":"Ouder","move_confirmation":"Verplaats {child} naar ouder {parent}","merge_confirmation":"Vervang {source} with {target}","move_selection":"Selecteer een ouder om {child} naar te verplaatsen.","merge_selection":"Vervang alle voorvallen van {source} door het type {type}.","Root":"Bron","show_split_screen":"Toon gesplitste weergave","New_Keyword":"Nieuw Etiket","Delete_Keyword":"Verwijder Etiket","Edit_Keyword":"Bewerk Etiket","Move_Keyword":"Verplaats Etiket","Hide_Keywords":"Verberg Etiketten","Hide_Recipes":"Verberg Recepten","Advanced Search Settings":"Geavanceerde zoekinstellingen","Merge":"Voeg samen","delete_confimation":"Weet je zeker dat je {kw} en zijn kinderen wil verwijderen?","Merge_Keyword":"Voeg Etiket samen"}')},ca5b:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[e.recipe.rating>0?r("span",{staticClass:"d-inline"},[e._l(Math.floor(e.recipe.rating),(function(e){return r("i",{key:e,staticClass:"fas fa-star fa-xs text-primary"})})),e.recipe.rating%1>0?r("i",{staticClass:"fas fa-star-half-alt fa-xs text-primary"}):e._e(),e._l(5-Math.ceil(e.recipe.rating),(function(e){return r("i",{key:e+10,staticClass:"far fa-star fa-xs text-secondary"})}))],2):e._e()])},i=[],o={name:"RecipeRating",props:{recipe:Object}},a=o,s=r("2877"),c=Object(s["a"])(a,n,i,!1,null,"7151a4e2",null);t["a"]=c.exports},d46a:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_add_book_"+e.modal_id,title:e.$t("Manage_Books"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()},shown:e.loadBookEntries}},[r("table",e._l(this.recipe_book_list,(function(t){return r("tr",{key:t.id},[r("td",[r("button",{staticClass:"btn btn-sm btn-danger",on:{click:function(r){return e.removeFromBook(t)}}},[r("i",{staticClass:"fa fa-trash-alt"})])]),r("td",[e._v(" "+e._s(t.book_content.name))])])})),0),r("multiselect",{staticStyle:{"margin-top":"1vh"},attrs:{options:e.books_filtered,taggable:!0,"tag-placeholder":e.$t("Create"),placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1,loading:e.books_loading},on:{tag:e.createBook,"search-change":e.loadBooks},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("159b"),r("4de4"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("2b2d"),l=r("fa7d");u["default"].prototype.moment=c.a,u["default"].use(d["a"]);var h={name:"AddRecipeToBook",components:{Multiselect:a.a},props:{recipe:Object,modal_id:Number},data:function(){return{books:[],books_loading:!1,recipe_book_list:[],selected_book:null}},computed:{books_filtered:function(){var e=this,t=[];return this.books.forEach((function(r){0===e.recipe_book_list.filter((function(e){return e.book===r.id})).length&&t.push(r)})),t}},mounted:function(){},methods:{loadBooks:function(e){var t=this;this.books_loading=!0;var r=new p["a"];r.listRecipeBooks({query:{query:e}}).then((function(e){t.books=e.data.filter((function(e){return-1===t.recipe_book_list.indexOf(e)})),t.books_loading=!1}))},createBook:function(e){var t=this,r=new p["a"];r.createRecipeBook({name:e}).then((function(e){t.books.push(e.data),t.selected_book=e.data,l["e"].makeStandardToast(l["e"].SUCCESS_CREATE)}))},addToBook:function(){var e=this,t=new p["a"];t.createRecipeBookEntry({book:this.selected_book.id,recipe:this.recipe.id}).then((function(t){e.recipe_book_list.push(t.data),l["e"].makeStandardToast(l["e"].SUCCESS_CREATE)}))},removeFromBook:function(e){var t=this,r=new p["a"];r.destroyRecipeBookEntry(e.id).then((function(r){t.recipe_book_list=t.recipe_book_list.filter((function(t){return t.id!==e.id})),l["e"].makeStandardToast(l["e"].SUCCESS_DELETE)}))},loadBookEntries:function(){var e=this,t=new p["a"];t.listRecipeBookEntrys({query:{recipe:this.recipe.id}}).then((function(t){e.recipe_book_list=t.data,e.loadBooks("")}))}}},f=h,b=(r("60bc"),r("2877")),v=Object(b["a"])(f,n,i,!1,null,null,null);t["a"]=v.exports},d56b:function(e,t,r){"use strict";r("9db4")},dc43:function(e){e.exports=JSON.parse('{"err_fetching_resource":"","err_creating_resource":"","err_updating_resource":"","err_deleting_resource":"","success_fetching_resource":"","success_creating_resource":"","success_updating_resource":"","success_deleting_resource":"","import_running":"","all_fields_optional":"","convert_internal":"","show_only_internal":"","Log_Recipe_Cooking":"","External_Recipe_Image":"外部菜谱图像","Add_to_Shopping":"添加到购物","Add_to_Plan":"添加到计划","Step_start_time":"","Sort_by_new":"","Recipes_per_page":"","Manage_Books":"管理书籍","Meal_Plan":"","Select_Book":"","Recipe_Image":"菜谱图像","Import_finished":"导入完成","View_Recipes":"","Log_Cooking":"","New_Recipe":"新菜谱","Url_Import":"导入网址","Reset_Search":"重置搜索","Recently_Viewed":"最近浏览","Load_More":"加载更多","Keywords":"关键字","Books":"书籍","Proteins":"蛋白质","Fats":"脂肪","Carbohydrates":"碳水化合物","Calories":"卡路里","Nutrition":"营养","Date":"日期","Share":"分享","Export":"导出","Copy":"拷贝","Rating":"评分","Close":"关闭","Link":"链接","Add":"添加","New":"新","Success":"成功","Failure":"失败","Ingredients":"材料","Supermarket":"超级市场","Categories":"分类","Category":"分类","Selected":"选定","min":"","Servings":"份量","Waiting":"等待","Preparation":"准备","External":"外部","Size":"大小","Files":"文件","File":"文件","Edit":"编辑","Cancel":"取消","Delete":"删除","Open":"打开","Ok":"打开","Save":"储存","Step":"步骤","Search":"搜索","Import":"导入","Print":"打印","Settings":"设置","or":"或","and":"与","Information":"更多资讯","Download":"下载","Create":"创立"}')},dfc6:function(e){e.exports=JSON.parse('{"err_fetching_resource":"","err_creating_resource":"","err_updating_resource":"","err_deleting_resource":"","success_fetching_resource":"","success_creating_resource":"","success_updating_resource":"","success_deleting_resource":"","import_running":"","all_fields_optional":"","convert_internal":"","show_only_internal":"","Log_Recipe_Cooking":"","External_Recipe_Image":"","Add_to_Book":"","Add_to_Shopping":"","Add_to_Plan":"","Step_start_time":"","Meal_Plan":"","Select_Book":"","Recipe_Image":"","Import_finished":"","View_Recipes":"","Log_Cooking":"","New_Recipe":"","Url_Import":"","Reset_Search":"","Recently_Viewed":"","Load_More":"","Keywords":"","Books":"","Proteins":"","Fats":"","Carbohydrates":"","Calories":"","Nutrition":"","Date":"","Share":"","Export":"","Copy":"","Rating":"","Close":"","Link":"","Add":"","New":"","Success":"","Ingredients":"","Supermarket":"","Categories":"","Category":"","Selected":"","min":"","Servings":"","Waiting":"","Preparation":"","External":"","Size":"","Files":"","File":"","Edit":"","Cancel":"","Delete":"","Open":"","Ok":"","Save":"","Step":"","Search":"","Import":"","Print":"","Settings":"","or":"","and":"","Information":"","Download":""}')},edd4:function(e){e.exports=JSON.parse('{"err_fetching_resource":"There was an error fetching a resource!","err_creating_resource":"There was an error creating a resource!","err_updating_resource":"There was an error updating a resource!","err_deleting_resource":"There was an error deleting a resource!","success_fetching_resource":"Successfully fetched a resource!","success_creating_resource":"Successfully created a resource!","success_updating_resource":"Successfully updated a resource!","success_deleting_resource":"Successfully deleted a resource!","import_running":"Import running, please wait!","all_fields_optional":"All fields are optional and can be left empty.","convert_internal":"Convert to internal recipe","show_only_internal":"Show only internal recipes","show_split_screen":"Show split view","Log_Recipe_Cooking":"Log Recipe Cooking","External_Recipe_Image":"External Recipe Image","Add_to_Shopping":"Add to Shopping","Add_to_Plan":"Add to Plan","Step_start_time":"Step start time","Sort_by_new":"Sort by new","Recipes_per_page":"Recipes per Page","Manage_Books":"Manage Books","Meal_Plan":"Meal Plan","Select_Book":"Select Book","Recipe_Image":"Recipe Image","Import_finished":"Import finished","View_Recipes":"View Recipes","Log_Cooking":"Log Cooking","New_Recipe":"New Recipe","Url_Import":"Url Import","Reset_Search":"Reset Search","Recently_Viewed":"Recently Viewed","Load_More":"Load More","New_Keyword":"New Keyword","Delete_Keyword":"Delete Keyword","Edit_Keyword":"Edit Keyword","Move_Keyword":"Move Keyword","Merge_Keyword":"Merge Keyword","Hide_Keywords":"Hide Keywords","Hide_Recipes":"Hide Recipes","Keywords":"Keywords","Books":"Books","Proteins":"Proteins","Fats":"Fats","Carbohydrates":"Carbohydrates","Calories":"Calories","Nutrition":"Nutrition","Date":"Date","Share":"Share","Export":"Export","Copy":"Copy","Rating":"Rating","Close":"Close","Cancel":"Cancel","Link":"Link","Add":"Add","New":"New","Success":"Success","Failure":"Failure","Ingredients":"Ingredients","Supermarket":"Supermarket","Categories":"Categories","Category":"Category","Selected":"Selected","min":"min","Servings":"Servings","Waiting":"Waiting","Preparation":"Preparation","External":"External","Size":"Size","Files":"Files","File":"File","Edit":"Edit","Delete":"Delete","Open":"Open","Ok":"Open","Save":"Save","Step":"Step","Search":"Search","Import":"Import","Print":"Print","Settings":"Settings","or":"or","and":"and","Information":"Information","Download":"Download","Create":"Create","Advanced Search Settings":"Advanced Search Settings","View":"View","Recipes":"Recipes","Move":"Move","Merge":"Merge","Parent":"Parent","delete_confimation":"Are you sure that you want to delete {kw} and all of it\'s children?","move_confirmation":"Move {child} to parent {parent}","merge_confirmation":"Replace {source} with {target}","move_selection":"Select a parent to move {child} to.","merge_selection":"Replace all occurences of {source} with the selected {type}.","Root":"Root","Ignore_Shopping":"Ignore Shopping","Shopping_Category":"Shopping Category","Edit_Food":"Edit Food","Move_Food":"Move Food","New_Food":"New Food","Hide_Food":"Hide Food","Delete_Food":"Delete Food","No_ID":"ID not found, cannot delete.","Meal_Plan_Days":"Future meal plans"}')},f693:function(e){e.exports=JSON.parse('{"err_fetching_resource":"Il y a eu une erreur pour récupérer une ressource !","err_creating_resource":"Il y a eu une erreur pour créer une ressource !","err_updating_resource":"Il y a eu une erreur pour mettre à jour une ressource !","err_deleting_resource":"Il y a eu une erreur pour supprimer une ressource !","success_fetching_resource":"Ressource correctement récupérée !","success_creating_resource":"Ressource correctement créée !","success_updating_resource":"Ressource correctement mise à jour !","success_deleting_resource":"Ressource correctement supprimée !","import_running":"Importation en cours, veuillez patienter !","all_fields_optional":"Tous les champs sont optionnels et peuvent être laissés vides.","convert_internal":"Convertir en recette interne","show_only_internal":"Montrer uniquement les recettes internes","Log_Recipe_Cooking":"Marquer la recette comme cuisinée","External_Recipe_Image":"Image externe de recette","Add_to_Shopping":"Ajouter à la liste de courses","Add_to_Plan":"Ajouter au menu","Step_start_time":"Heure de départ de l\'étape","Sort_by_new":"Trier par nouveautés","Recipes_per_page":"Nombre de recettes par page","Manage_Books":"Gérer les favoris","Meal_Plan":"Menu de la semaine","Select_Book":"Sélectionnez livre","Recipe_Image":"Image de la recette","Import_finished":"Importation finie","View_Recipes":"Voir les recettes","Log_Cooking":"Marquer comme cuisiné","New_Recipe":"Nouvelle recette","Url_Import":"Importation de l\'url","Reset_Search":"Réinitialiser la recherche","Recently_Viewed":"Vu récemment","Load_More":"Charger plus","Keywords":"Mots-clés","Books":"Livres","Proteins":"Protéines","Fats":"Matières grasses","Carbohydrates":"Glucides","Calories":"Calories","Nutrition":"Informations nutritionnelles","Date":"Date","Share":"Partager","Export":"Exporter","Copy":"Copier","Rating":"Note","Close":"Fermer","Link":"Lien","Add":"Ajouter","New":"Nouveau","Success":"Réussite","Failure":"Échec","Ingredients":"Ingrédients","Supermarket":"Supermarché","Categories":"Catégories","Category":"Catégorie","Selected":"Sélectionné","min":"min","Servings":"Portions","Waiting":"Attente","Preparation":"Préparation","External":"Externe","Size":"Taille","Files":"Fichiers","File":"Fichier","Edit":"Modifier","Cancel":"Annuler","Delete":"Supprimer","Open":"Ouvrir","Ok":"Ouvrir","Save":"Sauvegarder","Step":"Étape","Search":"Rechercher","Import":"Importer","Print":"Imprimer","Settings":"Paramètres","or":"ou","and":"et","Information":"Information","Download":"Télécharger","Create":"Créer"}')},fa7d:function(e,t,r){"use strict";r.d(t,"f",(function(){return m})),r.d(t,"i",(function(){return g})),r.d(t,"e",(function(){return j})),r.d(t,"c",(function(){return O})),r.d(t,"h",(function(){return y})),r.d(t,"d",(function(){return _})),r.d(t,"j",(function(){return S})),r.d(t,"g",(function(){return w})),r.d(t,"a",(function(){return U})),r.d(t,"b",(function(){return C}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),s=r("d4ec"),c=r("bee2"),u=r("ade3"),d=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4")),p=r("9225");function l(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var s=(n+o)/(i+a);if(e===s){i+a<=t?(i+=a,n+=o,a=t+1):i>a?a=t+1:i=t+1;break}et&&(i=a,n=o),!r)return[0,n,i];var c=Math.floor(n/i);return[c,n-c*i,i]}var h=r("2b2d"),f=r("bc3a"),b=r.n(f),v=r("a026"),m={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return g(e,t,r)}}};function g(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new d["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var j=function(){function e(){Object(s["a"])(this,e)}return Object(c["a"])(e,null,[{key:"makeStandardToast",value:function(t){switch(t){case e.SUCCESS_CREATE:g(p["a"].tc("Success"),p["a"].tc("success_creating_resource"),"success");break;case e.SUCCESS_FETCH:g(p["a"].tc("Success"),p["a"].tc("success_fetching_resource"),"success");break;case e.SUCCESS_UPDATE:g(p["a"].tc("Success"),p["a"].tc("success_updating_resource"),"success");break;case e.SUCCESS_DELETE:g(p["a"].tc("Success"),p["a"].tc("success_deleting_resource"),"success");break;case e.FAIL_CREATE:g(p["a"].tc("Failure"),p["a"].tc("success_creating_resource"),"danger");break;case e.FAIL_FETCH:g(p["a"].tc("Failure"),p["a"].tc("err_fetching_resource"),"danger");break;case e.FAIL_UPDATE:g(p["a"].tc("Failure"),p["a"].tc("err_updating_resource"),"danger");break;case e.FAIL_DELETE:g(p["a"].tc("Failure"),p["a"].tc("err_deleting_resource"),"danger");break}}}]),e}();Object(u["a"])(j,"SUCCESS_CREATE","SUCCESS_CREATE"),Object(u["a"])(j,"SUCCESS_FETCH","SUCCESS_FETCH"),Object(u["a"])(j,"SUCCESS_UPDATE","SUCCESS_UPDATE"),Object(u["a"])(j,"SUCCESS_DELETE","SUCCESS_DELETE"),Object(u["a"])(j,"FAIL_CREATE","FAIL_CREATE"),Object(u["a"])(j,"FAIL_FETCH","FAIL_FETCH"),Object(u["a"])(j,"FAIL_UPDATE","FAIL_UPDATE"),Object(u["a"])(j,"FAIL_DELETE","FAIL_DELETE");var O={methods:{_:function(e){return y(e)}}};function y(e){return window.gettext(e)}var _={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return S(e,t)}}};function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(a["a"])(t))return window.Urls[e](t);if("object"==Object(a["a"])(t)){if(1===t.length)return window.Urls[e](t);if(2===t.length)return window.Urls[e](t[0],t[1]);if(3===t.length)return window.Urls[e](t[0],t[1],t[2])}}function k(e){return window.USER_PREF[e]}function w(e,t){if(k("use_fractions")){var r="",n=l(e*t,10,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return P(e*t)}function P(e){var t=k("user_fractions")?k("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}b.a.defaults.xsrfCookieName="csrftoken",b.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var U={data:function(){return{api_settings:{suffix:{list:"s"},food:{name:"Food",model_type:"tree",create:[["name","description","recipe","ignore_shopping","supermarket_category"]],partialUpdate:["id",["name","description","recipe","ignore_shopping","supermarket_category"]]},keyword:{},unit:{},recipe:{name:"Recipe",list:["query","keywords","foods","books","keywordsOr","foodsOr","booksOr","internal","random","_new","page","pageSize","options"],typing:{list:{foods:"string",keywords:"string",books:"string"}}},tree:{values:{root:"getFunction()",tree:void 0},list:["query","root","tree","page","pageSize"],typing:{move:{source:"string",target:"string"}}},default:{list:["query","page","pageSize"],destroy:["id"],retrieve:["id"],merge:["source","target"],move:["source","target"],create:[],partialUpdate:[],values:{query:void 0,page:1,pageSize:25},typing:{merge:{source:"string",target:"string"}}}}}},methods:{genericAPI:function(e,t,r){var n,a,s,c,u,d,p,l,f,b,v,m,g,j,O,y,_,S,k,w,P,U,C,L,E,I,x;e=e.toLowerCase();var T=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(n=null===(a=this.api_settings)||void 0===a?void 0:a.default)&&void 0!==n?n:{}),null!==(s=null===(c=this.api_settings)||void 0===c?void 0:c[null===(u=this.api_settings)||void 0===u||null===(d=u[e])||void 0===d?void 0:d.model_type])&&void 0!==s?s:{}),this.api_settings[e]);T.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(p=null===(l=this.api_settings)||void 0===l||null===(f=l.default)||void 0===f?void 0:f.values)&&void 0!==p?p:{}),null!==(b=null===(v=this.api_settings)||void 0===v||null===(m=v[null===(g=this.api_settings)||void 0===g||null===(j=g[e])||void 0===j?void 0:j.model_type])||void 0===m?void 0:m.values)&&void 0!==b?b:{}),this.api_settings[e].values),T.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(O=null===(y=this.api_settings)||void 0===y||null===(_=y.default)||void 0===_||null===(S=_.typing)||void 0===S?void 0:S[t])&&void 0!==O?O:{}),null!==(k=null===(w=this.api_settings)||void 0===w||null===(P=w[null===(C=this.api_settings)||void 0===C||null===(L=C[e])||void 0===L?void 0:L.model_type])||void 0===P||null===(U=P.typing)||void 0===U?void 0:U[t])&&void 0!==k?k:{}),null===(E=this.api_settings[e].typing)||void 0===E?void 0:E[t]);var B=t+T.name+(null!==(I=null===(x=this.api_settings.suffix)||void 0===x?void 0:x[t])&&void 0!==I?I:""),F=[],M=void 0;T[t].forEach((function(e,t){if(Array.isArray(e)){M={};for(var n=0,o=Object.entries(r);n
- {{label}} + {{label}}
@@ -9,11 +9,25 @@ export default { name: 'CheckboxInput', props: { + field: {type: String, default: 'You Forgot To Set Field Name'}, label: {type: String, default: 'Checkbox Field'}, - show_delete: {type: Boolean, default: true}, + value: {type: Boolean, default: false}, show_move: {type: Boolean, default: false}, show_merge: {type: Boolean, default: false}, }, + data() { + return { + new_value: undefined, + } + }, + mounted() { + this.new_value = this.value + }, + watch: { + 'new_value': function () { + this.$root.$emit('change', this.field, this.new_value) + }, + }, methods: { Button: function(e) { this.$bvModal.show('modal') diff --git a/vue/src/components/Modals/GenericModalForm.vue b/vue/src/components/Modals/GenericModalForm.vue index 146d88161..919613893 100644 --- a/vue/src/components/Modals/GenericModalForm.vue +++ b/vue/src/components/Modals/GenericModalForm.vue @@ -1,25 +1,23 @@