From 35dc9817130437a52a3bd25feac672a0aa655b9f Mon Sep 17 00:00:00 2001 From: smilerz Date: Tue, 24 Aug 2021 17:30:09 -0500 Subject: [PATCH] generic api mixin --- cookbook/static/vue/css/food_list_view.css | 2 +- cookbook/static/vue/css/keyword_list_view.css | 2 +- cookbook/static/vue/js/chunk-vendors.js | 10 +- cookbook/static/vue/js/food_list_view.js | 2 +- .../static/vue/js/import_response_view.js | 2 +- cookbook/static/vue/js/keyword_list_view.js | 2 +- cookbook/static/vue/js/offline_view.js | 2 +- cookbook/static/vue/js/recipe_search_view.js | 2 +- cookbook/static/vue/js/recipe_view.js | 2 +- cookbook/static/vue/js/supermarket_view.js | 2 +- cookbook/static/vue/js/user_file_view.js | 2 +- vue/package-lock.json | 8 - vue/package.json | 1 - vue/src/apps/FoodListView/FoodListView.vue | 185 ++++----------- vue/src/components/GenericHorizontalCard.vue | 45 +--- vue/src/components/GenericSplitLists.vue | 52 +---- vue/src/utils/utils.js | 214 ++++++++++++++++++ 17 files changed, 288 insertions(+), 247 deletions(-) diff --git a/cookbook/static/vue/css/food_list_view.css b/cookbook/static/vue/css/food_list_view.css index 50b5393e4..40e25e469 100644 --- a/cookbook/static/vue/css/food_list_view.css +++ b/cookbook/static/vue/css/food_list_view.css @@ -1 +1 @@ -.shake[data-v-05ce8dfc]{-webkit-animation:shake-data-v-05ce8dfc .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake-data-v-05ce8dfc .82s cubic-bezier(.36,.07,.19,.97) both;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@-webkit-keyframes shake-data-v-05ce8dfc{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake-data-v-05ce8dfc{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}} \ No newline at end of file +.shake[data-v-8f249282]{-webkit-animation:shake-data-v-8f249282 .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake-data-v-8f249282 .82s cubic-bezier(.36,.07,.19,.97) both;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@-webkit-keyframes shake-data-v-8f249282{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake-data-v-8f249282{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}} \ No newline at end of file diff --git a/cookbook/static/vue/css/keyword_list_view.css b/cookbook/static/vue/css/keyword_list_view.css index 50b5393e4..40e25e469 100644 --- a/cookbook/static/vue/css/keyword_list_view.css +++ b/cookbook/static/vue/css/keyword_list_view.css @@ -1 +1 @@ -.shake[data-v-05ce8dfc]{-webkit-animation:shake-data-v-05ce8dfc .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake-data-v-05ce8dfc .82s cubic-bezier(.36,.07,.19,.97) both;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@-webkit-keyframes shake-data-v-05ce8dfc{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake-data-v-05ce8dfc{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}} \ No newline at end of file +.shake[data-v-8f249282]{-webkit-animation:shake-data-v-8f249282 .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake-data-v-8f249282 .82s cubic-bezier(.36,.07,.19,.97) both;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@-webkit-keyframes shake-data-v-8f249282{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake-data-v-8f249282{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}} \ No newline at end of file diff --git a/cookbook/static/vue/js/chunk-vendors.js b/cookbook/static/vue/js/chunk-vendors.js index 7fa92a5d6..3b3487921 100644 --- a/cookbook/static/vue/js/chunk-vendors.js +++ b/cookbook/static/vue/js/chunk-vendors.js @@ -38,7 +38,7 @@ var t=e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_ //! moment.js locale configuration var t=e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},"1be4":function(e,t,n){var i=n("d066");e.exports=i("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1c7e":function(e,t,n){var i=n("b622"),r=i("iterator"),o=!1;try{var a=0,s={next:function(){return{done:!!a++}},return:function(){o=!0}};s[r]=function(){return this},Array.from(s,(function(){throw 2}))}catch(c){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(c){}return n}},"1cdc":function(e,t,n){var i=n("342f");e.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(i)},"1cfd":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration -var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},i={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(t,r,o,a){var s=n(t),c=i[e][n(t)];return 2===s&&(c=c[r?0:1]),c.replace(/%d/i,t)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],a=e.defineLocale("ar-ly",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});return a}))},"1d2b":function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i=51||!i((function(){var t=[],n=t.constructor={};return n[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},"1fc1":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; +var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},i={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(t,r,o,a){var s=n(t),c=i[e][n(t)];return 2===s&&(c=c[r?0:1]),c.replace(/%d/i,t)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],a=e.defineLocale("ar-ly",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});return a}))},"1d2b":function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i=51||!i((function(){var t=[],n=t.constructor={};return n[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},"1fc1":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration function t(e,t){var n=e.split("_");return t%10===1&&t%100!==11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,i){var r={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===i?n?"хвіліна":"хвіліну":"h"===i?n?"гадзіна":"гадзіну":e+" "+t(r[i],+e)}var i=e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!==2&&e%10!==3||e%100===12||e%100===13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}});return i}))},"201b":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration @@ -68,7 +68,7 @@ var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta" //! moment.js locale configuration var t=e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}});return t}))},"2cf4":function(e,t,n){var i,r,o,a=n("da84"),s=n("d039"),c=n("0366"),u=n("1be4"),d=n("cc12"),l=n("1cdc"),f=n("605d"),h=a.location,p=a.setImmediate,m=a.clearImmediate,b=a.process,g=a.MessageChannel,v=a.Dispatch,y=0,_={},O="onreadystatechange",j=function(e){if(_.hasOwnProperty(e)){var t=_[e];delete _[e],t()}},w=function(e){return function(){j(e)}},k=function(e){j(e.data)},M=function(e){a.postMessage(e+"",h.protocol+"//"+h.host)};p&&m||(p=function(e){var t=[],n=1;while(arguments.length>n)t.push(arguments[n++]);return _[++y]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},i(y),y},m=function(e){delete _[e]},f?i=function(e){b.nextTick(w(e))}:v&&v.now?i=function(e){v.now(w(e))}:g&&!l?(r=new g,o=r.port2,r.port1.onmessage=k,i=c(o.postMessage,o,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts&&h&&"file:"!==h.protocol&&!s(M)?(i=M,a.addEventListener("message",k,!1)):i=O in d("script")?function(e){u.appendChild(d("script"))[O]=function(){u.removeChild(this),j(e)}}:function(e){setTimeout(w(e),0)}),e.exports={set:p,clear:m}},"2d00":function(e,t,n){var i,r,o=n("da84"),a=n("342f"),s=o.process,c=s&&s.versions,u=c&&c.v8;u?(i=u.split("."),r=i[0]<4?1:i[0]+i[1]):a&&(i=a.match(/Edge\/(\d+)/),(!i||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/),i&&(r=i[1]))),e.exports=r&&+r},"2d83":function(e,t,n){"use strict";var i=n("387f");e.exports=function(e,t,n,r,o){var a=new Error(e);return i(a,t,n,r,o)}},"2dd8":function(e,t,n){},"2e39":function(e,t,n){"use strict";function i(e,t){var n=t.length,i=e.length;if(i>n)return!1;if(i===n)return e===t;e:for(var r=0,o=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e=Object(i["b"])(e).filter(r["a"]),e.some((function(e){return t[e]||n[e]}))},s=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};e=Object(i["b"])(e).filter(r["a"]);for(var c=0;cc)r.f(e,n=i[c++],t[n]);return e}},"387f":function(e,t,n){"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},3886:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; +var t=e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}});return t}))},"2f79":function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));n("b42e");var i="_uid"},"30b5":function(e,t,n){"use strict";var i=n("c532");function r(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(i.isURLSearchParams(t))o=t.toString();else{var a=[];i.forEach(t,(function(e,t){null!==e&&"undefined"!==typeof e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,(function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),a.push(r(t)+"="+r(e))})))})),o=a.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},"342f":function(e,t,n){var i=n("d066");e.exports=i("navigator","userAgent")||""},"34ef":function(e){e.exports=JSON.parse('[{"group":0,"emojiList":[{"unicode":"😀","tags":["face","grin"]},{"unicode":"😃","tags":["face","mouth","open","smile"]},{"unicode":"😄","tags":["eye","face","mouth","open","smile"]},{"unicode":"😁","tags":["eye","face","grin","smile"]},{"unicode":"😆","tags":["face","laugh","mouth","satisfied","smile"]},{"unicode":"😅","tags":["cold","face","open","smile","sweat"]},{"unicode":"🤣","tags":["face","floor","laugh","rolling"]},{"unicode":"😂","tags":["face","joy","laugh","tear"]},{"unicode":"🙂","tags":["face","smile"]},{"unicode":"🙃","tags":["face","upside-down"]},{"unicode":"😉","tags":["face","wink"]},{"unicode":"😊","tags":["blush","eye","face","smile"]},{"unicode":"😇","tags":["angel","face","fantasy","halo","innocent"]},{"unicode":"🥰","tags":["adore","crush","hearts","in love"]},{"unicode":"😍","tags":["eye","face","love","smile"]},{"unicode":"🤩","tags":["eyes","face","grinning","star"]},{"unicode":"😘","tags":["face","kiss"]},{"unicode":"😗","tags":["face","kiss"]},{"unicode":"☺️","tags":["face","outlined","relaxed","smile"]},{"unicode":"😚","tags":["closed","eye","face","kiss"]},{"unicode":"😙","tags":["eye","face","kiss","smile"]},{"unicode":"🥲","tags":["grateful","proud","relieved","smiling","tear","touched"]},{"unicode":"😋","tags":["delicious","face","savouring","smile","yum"]},{"unicode":"😛","tags":["face","tongue"]},{"unicode":"😜","tags":["eye","face","joke","tongue","wink"]},{"unicode":"🤪","tags":["eye","goofy","large","small"]},{"unicode":"😝","tags":["eye","face","horrible","taste","tongue"]},{"unicode":"🤑","tags":["face","money","mouth"]},{"unicode":"🤗","tags":["face","hug","hugging"]},{"unicode":"🤭","tags":["whoops"]},{"unicode":"🤫","tags":["quiet","shush"]},{"unicode":"🤔","tags":["face","thinking"]},{"unicode":"🤐","tags":["face","mouth","zipper"]},{"unicode":"🤨","tags":["distrust","skeptic"]},{"unicode":"😐️","tags":["deadpan","face","meh","neutral"]},{"unicode":"😑","tags":["expressionless","face","inexpressive","meh","unexpressive"]},{"unicode":"😶","tags":["face","mouth","quiet","silent"]},{"unicode":"😏","tags":["face","smirk"]},{"unicode":"😒","tags":["face","unamused","unhappy"]},{"unicode":"🙄","tags":["eyeroll","eyes","face","rolling"]},{"unicode":"😬","tags":["face","grimace"]},{"unicode":"🤥","tags":["face","lie","pinocchio"]},{"unicode":"😌","tags":["face","relieved"]},{"unicode":"😔","tags":["dejected","face","pensive"]},{"unicode":"😪","tags":["face","sleep"]},{"unicode":"🤤","tags":["drooling","face"]},{"unicode":"😴","tags":["face","sleep","zzz"]},{"unicode":"😷","tags":["cold","doctor","face","mask","sick"]},{"unicode":"🤒","tags":["face","ill","sick","thermometer"]},{"unicode":"🤕","tags":["bandage","face","hurt","injury"]},{"unicode":"🤢","tags":["face","nauseated","vomit"]},{"unicode":"🤮","tags":["sick","vomit"]},{"unicode":"🤧","tags":["face","gesundheit","sneeze"]},{"unicode":"🥵","tags":["feverish","heat stroke","hot","red-faced","sweating"]},{"unicode":"🥶","tags":["blue-faced","cold","freezing","frostbite","icicles"]},{"unicode":"🥴","tags":["dizzy","intoxicated","tipsy","uneven eyes","wavy mouth"]},{"unicode":"😵","tags":["dizzy","face"]},{"unicode":"🤯","tags":["mind blown","shocked"]},{"unicode":"🤠","tags":["cowboy","cowgirl","face","hat"]},{"unicode":"🥳","tags":["celebration","hat","horn","party"]},{"unicode":"🥸","tags":["disguise","face","glasses","incognito","nose"]},{"unicode":"😎","tags":["bright","cool","face","sun","sunglasses"]},{"unicode":"🤓","tags":["face","geek","nerd"]},{"unicode":"🧐","tags":["stuffy"]},{"unicode":"😕","tags":["confused","face","meh"]},{"unicode":"😟","tags":["face","worried"]},{"unicode":"🙁","tags":["face","frown"]},{"unicode":"☹️","tags":["face","frown"]},{"unicode":"😮","tags":["face","mouth","open","sympathy"]},{"unicode":"😯","tags":["face","hushed","stunned","surprised"]},{"unicode":"😲","tags":["astonished","face","shocked","totally"]},{"unicode":"😳","tags":["dazed","face","flushed"]},{"unicode":"🥺","tags":["begging","mercy","puppy eyes"]},{"unicode":"😦","tags":["face","frown","mouth","open"]},{"unicode":"😧","tags":["anguished","face"]},{"unicode":"😨","tags":["face","fear","fearful","scared"]},{"unicode":"😰","tags":["blue","cold","face","rushed","sweat"]},{"unicode":"😥","tags":["disappointed","face","relieved","whew"]},{"unicode":"😢","tags":["cry","face","sad","tear"]},{"unicode":"😭","tags":["cry","face","sad","sob","tear"]},{"unicode":"😱","tags":["face","fear","munch","scared","scream"]},{"unicode":"😖","tags":["confounded","face"]},{"unicode":"😣","tags":["face","persevere"]},{"unicode":"😞","tags":["disappointed","face"]},{"unicode":"😓","tags":["cold","face","sweat"]},{"unicode":"😩","tags":["face","tired","weary"]},{"unicode":"😫","tags":["face","tired"]},{"unicode":"🥱","tags":["bored","tired","yawn"]},{"unicode":"😤","tags":["face","triumph","won"]},{"unicode":"😡","tags":["angry","face","mad","pouting","rage","red"]},{"unicode":"😠","tags":["angry","face","mad"]},{"unicode":"🤬","tags":["swearing"]},{"unicode":"😈","tags":["face","fairy tale","fantasy","horns","smile"]},{"unicode":"👿","tags":["demon","devil","face","fantasy","imp"]},{"unicode":"💀","tags":["death","face","fairy tale","monster"]},{"unicode":"☠️","tags":["crossbones","death","face","monster","skull"]},{"unicode":"💩","tags":["dung","face","monster","poo","poop"]},{"unicode":"🤡","tags":["clown","face"]},{"unicode":"👹","tags":["creature","face","fairy tale","fantasy","monster"]},{"unicode":"👺","tags":["creature","face","fairy tale","fantasy","monster"]},{"unicode":"👻","tags":["creature","face","fairy tale","fantasy","monster"]},{"unicode":"👽️","tags":["creature","extraterrestrial","face","fantasy","ufo"]},{"unicode":"👾","tags":["alien","creature","extraterrestrial","face","monster","ufo"]},{"unicode":"🤖","tags":["face","monster"]},{"unicode":"😺","tags":["cat","face","grinning","mouth","open","smile"]},{"unicode":"😸","tags":["cat","eye","face","grin","smile"]},{"unicode":"😹","tags":["cat","face","joy","tear"]},{"unicode":"😻","tags":["cat","eye","face","heart","love","smile"]},{"unicode":"😼","tags":["cat","face","ironic","smile","wry"]},{"unicode":"😽","tags":["cat","eye","face","kiss"]},{"unicode":"🙀","tags":["cat","face","oh","surprised","weary"]},{"unicode":"😿","tags":["cat","cry","face","sad","tear"]},{"unicode":"😾","tags":["cat","face","pouting"]},{"unicode":"🙈","tags":["evil","face","forbidden","monkey","see"]},{"unicode":"🙉","tags":["evil","face","forbidden","hear","monkey"]},{"unicode":"🙊","tags":["evil","face","forbidden","monkey","speak"]},{"unicode":"💋","tags":["kiss","lips"]},{"unicode":"💌","tags":["heart","letter","love","mail"]},{"unicode":"💘","tags":["arrow","cupid"]},{"unicode":"💝","tags":["ribbon","valentine"]},{"unicode":"💖","tags":["excited","sparkle"]},{"unicode":"💗","tags":["excited","growing","nervous","pulse"]},{"unicode":"💓","tags":["beating","heartbeat","pulsating"]},{"unicode":"💞","tags":["revolving"]},{"unicode":"💕","tags":["love"]},{"unicode":"💟","tags":["heart"]},{"unicode":"❣️","tags":["exclamation","mark","punctuation"]},{"unicode":"💔","tags":["break","broken"]},{"unicode":"❤️","tags":["heart"]},{"unicode":"🧡","tags":["orange"]},{"unicode":"💛","tags":["yellow"]},{"unicode":"💚","tags":["green"]},{"unicode":"💙","tags":["blue"]},{"unicode":"💜","tags":["purple"]},{"unicode":"🤎","tags":["brown","heart"]},{"unicode":"🖤","tags":["black","evil","wicked"]},{"unicode":"🤍","tags":["heart","white"]},{"unicode":"💯","tags":["100","full","hundred","score"]},{"unicode":"💢","tags":["angry","comic","mad"]},{"unicode":"💥","tags":["boom","comic"]},{"unicode":"💫","tags":["comic","star"]},{"unicode":"💦","tags":["comic","splashing","sweat"]},{"unicode":"💨","tags":["comic","dash","running"]},{"unicode":"🕳️","tags":["hole"]},{"unicode":"💣️","tags":["comic"]},{"unicode":"💬","tags":["balloon","bubble","comic","dialog","speech"]},{"unicode":"👁️‍🗨️","tags":["eye","speech bubble","witness"]},{"unicode":"🗨️","tags":["dialog","speech"]},{"unicode":"🗯️","tags":["angry","balloon","bubble","mad"]},{"unicode":"💭","tags":["balloon","bubble","comic","thought"]},{"unicode":"💤","tags":["comic","sleep"]}]},{"group":1,"emojiList":[{"unicode":"👋","tags":["hand","wave","waving"],"skins":[{"unicode":"👋🏻"},{"unicode":"👋🏼"},{"unicode":"👋🏽"},{"unicode":"👋🏾"},{"unicode":"👋🏿"}]},{"unicode":"🤚","tags":["backhand","raised"],"skins":[{"unicode":"🤚🏻"},{"unicode":"🤚🏼"},{"unicode":"🤚🏽"},{"unicode":"🤚🏾"},{"unicode":"🤚🏿"}]},{"unicode":"🖐️","tags":["finger","hand","splayed"],"skins":[{"unicode":"🖐🏻"},{"unicode":"🖐🏼"},{"unicode":"🖐🏽"},{"unicode":"🖐🏾"},{"unicode":"🖐🏿"}]},{"unicode":"✋","tags":["hand"],"skins":[{"unicode":"✋🏻"},{"unicode":"✋🏼"},{"unicode":"✋🏽"},{"unicode":"✋🏾"},{"unicode":"✋🏿"}]},{"unicode":"🖖","tags":["finger","hand","spock","vulcan"],"skins":[{"unicode":"🖖🏻"},{"unicode":"🖖🏼"},{"unicode":"🖖🏽"},{"unicode":"🖖🏾"},{"unicode":"🖖🏿"}]},{"unicode":"👌","tags":["hand","ok"],"skins":[{"unicode":"👌🏻"},{"unicode":"👌🏼"},{"unicode":"👌🏽"},{"unicode":"👌🏾"},{"unicode":"👌🏿"}]},{"unicode":"🤌","tags":["fingers","hand gesture","interrogation","pinched","sarcastic"],"skins":[{"unicode":"🤌🏻"},{"unicode":"🤌🏼"},{"unicode":"🤌🏽"},{"unicode":"🤌🏾"},{"unicode":"🤌🏿"}]},{"unicode":"🤏","tags":["small amount"],"skins":[{"unicode":"🤏🏻"},{"unicode":"🤏🏼"},{"unicode":"🤏🏽"},{"unicode":"🤏🏾"},{"unicode":"🤏🏿"}]},{"unicode":"✌️","tags":["hand","v","victory"],"skins":[{"unicode":"✌🏻"},{"unicode":"✌🏼"},{"unicode":"✌🏽"},{"unicode":"✌🏾"},{"unicode":"✌🏿"}]},{"unicode":"🤞","tags":["cross","finger","hand","luck"],"skins":[{"unicode":"🤞🏻"},{"unicode":"🤞🏼"},{"unicode":"🤞🏽"},{"unicode":"🤞🏾"},{"unicode":"🤞🏿"}]},{"unicode":"🤟","tags":["hand","ily"],"skins":[{"unicode":"🤟🏻"},{"unicode":"🤟🏼"},{"unicode":"🤟🏽"},{"unicode":"🤟🏾"},{"unicode":"🤟🏿"}]},{"unicode":"🤘","tags":["finger","hand","horns","rock-on"],"skins":[{"unicode":"🤘🏻"},{"unicode":"🤘🏼"},{"unicode":"🤘🏽"},{"unicode":"🤘🏾"},{"unicode":"🤘🏿"}]},{"unicode":"🤙","tags":["call","hand"],"skins":[{"unicode":"🤙🏻"},{"unicode":"🤙🏼"},{"unicode":"🤙🏽"},{"unicode":"🤙🏾"},{"unicode":"🤙🏿"}]},{"unicode":"👈️","tags":["backhand","finger","hand","index","point"],"skins":[{"unicode":"👈🏻"},{"unicode":"👈🏼"},{"unicode":"👈🏽"},{"unicode":"👈🏾"},{"unicode":"👈🏿"}]},{"unicode":"👉️","tags":["backhand","finger","hand","index","point"],"skins":[{"unicode":"👉🏻"},{"unicode":"👉🏼"},{"unicode":"👉🏽"},{"unicode":"👉🏾"},{"unicode":"👉🏿"}]},{"unicode":"👆️","tags":["backhand","finger","hand","point","up"],"skins":[{"unicode":"👆🏻"},{"unicode":"👆🏼"},{"unicode":"👆🏽"},{"unicode":"👆🏾"},{"unicode":"👆🏿"}]},{"unicode":"🖕","tags":["finger","hand"],"skins":[{"unicode":"🖕🏻"},{"unicode":"🖕🏼"},{"unicode":"🖕🏽"},{"unicode":"🖕🏾"},{"unicode":"🖕🏿"}]},{"unicode":"👇️","tags":["backhand","down","finger","hand","point"],"skins":[{"unicode":"👇🏻"},{"unicode":"👇🏼"},{"unicode":"👇🏽"},{"unicode":"👇🏾"},{"unicode":"👇🏿"}]},{"unicode":"☝️","tags":["finger","hand","index","point","up"],"skins":[{"unicode":"☝🏻"},{"unicode":"☝🏼"},{"unicode":"☝🏽"},{"unicode":"☝🏾"},{"unicode":"☝🏿"}]},{"unicode":"👍️","tags":["+1","hand","thumb","up"],"skins":[{"unicode":"👍🏻"},{"unicode":"👍🏼"},{"unicode":"👍🏽"},{"unicode":"👍🏾"},{"unicode":"👍🏿"}]},{"unicode":"👎️","tags":["-1","down","hand","thumb"],"skins":[{"unicode":"👎🏻"},{"unicode":"👎🏼"},{"unicode":"👎🏽"},{"unicode":"👎🏾"},{"unicode":"👎🏿"}]},{"unicode":"✊","tags":["clenched","fist","hand","punch"],"skins":[{"unicode":"✊🏻"},{"unicode":"✊🏼"},{"unicode":"✊🏽"},{"unicode":"✊🏾"},{"unicode":"✊🏿"}]},{"unicode":"👊","tags":["clenched","fist","hand","punch"],"skins":[{"unicode":"👊🏻"},{"unicode":"👊🏼"},{"unicode":"👊🏽"},{"unicode":"👊🏾"},{"unicode":"👊🏿"}]},{"unicode":"🤛","tags":["fist","leftwards"],"skins":[{"unicode":"🤛🏻"},{"unicode":"🤛🏼"},{"unicode":"🤛🏽"},{"unicode":"🤛🏾"},{"unicode":"🤛🏿"}]},{"unicode":"🤜","tags":["fist","rightwards"],"skins":[{"unicode":"🤜🏻"},{"unicode":"🤜🏼"},{"unicode":"🤜🏽"},{"unicode":"🤜🏾"},{"unicode":"🤜🏿"}]},{"unicode":"👏","tags":["clap","hand"],"skins":[{"unicode":"👏🏻"},{"unicode":"👏🏼"},{"unicode":"👏🏽"},{"unicode":"👏🏾"},{"unicode":"👏🏿"}]},{"unicode":"🙌","tags":["celebration","gesture","hand","hooray","raised"],"skins":[{"unicode":"🙌🏻"},{"unicode":"🙌🏼"},{"unicode":"🙌🏽"},{"unicode":"🙌🏾"},{"unicode":"🙌🏿"}]},{"unicode":"👐","tags":["hand","open"],"skins":[{"unicode":"👐🏻"},{"unicode":"👐🏼"},{"unicode":"👐🏽"},{"unicode":"👐🏾"},{"unicode":"👐🏿"}]},{"unicode":"🤲","tags":["prayer"],"skins":[{"unicode":"🤲🏻"},{"unicode":"🤲🏼"},{"unicode":"🤲🏽"},{"unicode":"🤲🏾"},{"unicode":"🤲🏿"}]},{"unicode":"🤝","tags":["agreement","hand","meeting","shake"]},{"unicode":"🙏","tags":["ask","hand","please","pray","thanks"],"skins":[{"unicode":"🙏🏻"},{"unicode":"🙏🏼"},{"unicode":"🙏🏽"},{"unicode":"🙏🏾"},{"unicode":"🙏🏿"}]},{"unicode":"✍️","tags":["hand","write"],"skins":[{"unicode":"✍🏻"},{"unicode":"✍🏼"},{"unicode":"✍🏽"},{"unicode":"✍🏾"},{"unicode":"✍🏿"}]},{"unicode":"💅","tags":["care","cosmetics","manicure","nail","polish"],"skins":[{"unicode":"💅🏻"},{"unicode":"💅🏼"},{"unicode":"💅🏽"},{"unicode":"💅🏾"},{"unicode":"💅🏿"}]},{"unicode":"🤳","tags":["camera","phone"],"skins":[{"unicode":"🤳🏻"},{"unicode":"🤳🏼"},{"unicode":"🤳🏽"},{"unicode":"🤳🏾"},{"unicode":"🤳🏿"}]},{"unicode":"💪","tags":["biceps","comic","flex","muscle"],"skins":[{"unicode":"💪🏻"},{"unicode":"💪🏼"},{"unicode":"💪🏽"},{"unicode":"💪🏾"},{"unicode":"💪🏿"}]},{"unicode":"🦾","tags":["accessibility","prosthetic"]},{"unicode":"🦿","tags":["accessibility","prosthetic"]},{"unicode":"🦵","tags":["kick","limb"],"skins":[{"unicode":"🦵🏻"},{"unicode":"🦵🏼"},{"unicode":"🦵🏽"},{"unicode":"🦵🏾"},{"unicode":"🦵🏿"}]},{"unicode":"🦶","tags":["kick","stomp"],"skins":[{"unicode":"🦶🏻"},{"unicode":"🦶🏼"},{"unicode":"🦶🏽"},{"unicode":"🦶🏾"},{"unicode":"🦶🏿"}]},{"unicode":"👂️","tags":["body"],"skins":[{"unicode":"👂🏻"},{"unicode":"👂🏼"},{"unicode":"👂🏽"},{"unicode":"👂🏾"},{"unicode":"👂🏿"}]},{"unicode":"🦻","tags":["accessibility","hard of hearing"],"skins":[{"unicode":"🦻🏻"},{"unicode":"🦻🏼"},{"unicode":"🦻🏽"},{"unicode":"🦻🏾"},{"unicode":"🦻🏿"}]},{"unicode":"👃","tags":["body"],"skins":[{"unicode":"👃🏻"},{"unicode":"👃🏼"},{"unicode":"👃🏽"},{"unicode":"👃🏾"},{"unicode":"👃🏿"}]},{"unicode":"🧠","tags":["intelligent"]},{"unicode":"🫀","tags":["anatomical","cardiology","heart","organ","pulse"]},{"unicode":"🫁","tags":["breath","exhalation","inhalation","organ","respiration"]},{"unicode":"🦷","tags":["dentist"]},{"unicode":"🦴","tags":["skeleton"]},{"unicode":"👀","tags":["eye","face"]},{"unicode":"👁️","tags":["body"]},{"unicode":"👅","tags":["body"]},{"unicode":"👄","tags":["lips"]},{"unicode":"👶","tags":["young"],"skins":[{"unicode":"👶🏻"},{"unicode":"👶🏼"},{"unicode":"👶🏽"},{"unicode":"👶🏾"},{"unicode":"👶🏿"}]},{"unicode":"🧒","tags":["gender-neutral","unspecified gender","young"],"skins":[{"unicode":"🧒🏻"},{"unicode":"🧒🏼"},{"unicode":"🧒🏽"},{"unicode":"🧒🏾"},{"unicode":"🧒🏿"}]},{"unicode":"👦","tags":["young"],"skins":[{"unicode":"👦🏻"},{"unicode":"👦🏼"},{"unicode":"👦🏽"},{"unicode":"👦🏾"},{"unicode":"👦🏿"}]},{"unicode":"👧","tags":["virgo","young","zodiac"],"skins":[{"unicode":"👧🏻"},{"unicode":"👧🏼"},{"unicode":"👧🏽"},{"unicode":"👧🏾"},{"unicode":"👧🏿"}]},{"unicode":"🧑","tags":["adult","gender-neutral","unspecified gender"],"skins":[{"unicode":"🧑🏻"},{"unicode":"🧑🏼"},{"unicode":"🧑🏽"},{"unicode":"🧑🏾"},{"unicode":"🧑🏿"}]},{"unicode":"👱","tags":["blond","blond-haired person","hair"],"skins":[{"unicode":"👱🏻"},{"unicode":"👱🏼"},{"unicode":"👱🏽"},{"unicode":"👱🏾"},{"unicode":"👱🏿"}]},{"unicode":"👨","tags":["adult"],"skins":[{"unicode":"👨🏻"},{"unicode":"👨🏼"},{"unicode":"👨🏽"},{"unicode":"👨🏾"},{"unicode":"👨🏿"}]},{"unicode":"🧔","tags":["beard","man","person"],"skins":[{"unicode":"🧔🏻"},{"unicode":"🧔🏼"},{"unicode":"🧔🏽"},{"unicode":"🧔🏾"},{"unicode":"🧔🏿"}]},{"unicode":"👨‍🦰","tags":["adult","man","red hair"],"skins":[{"unicode":"👨🏻‍🦰"},{"unicode":"👨🏼‍🦰"},{"unicode":"👨🏽‍🦰"},{"unicode":"👨🏾‍🦰"},{"unicode":"👨🏿‍🦰"}]},{"unicode":"👨‍🦱","tags":["adult","curly hair","man"],"skins":[{"unicode":"👨🏻‍🦱"},{"unicode":"👨🏼‍🦱"},{"unicode":"👨🏽‍🦱"},{"unicode":"👨🏾‍🦱"},{"unicode":"👨🏿‍🦱"}]},{"unicode":"👨‍🦳","tags":["adult","man","white hair"],"skins":[{"unicode":"👨🏻‍🦳"},{"unicode":"👨🏼‍🦳"},{"unicode":"👨🏽‍🦳"},{"unicode":"👨🏾‍🦳"},{"unicode":"👨🏿‍🦳"}]},{"unicode":"👨‍🦲","tags":["adult","bald","man"],"skins":[{"unicode":"👨🏻‍🦲"},{"unicode":"👨🏼‍🦲"},{"unicode":"👨🏽‍🦲"},{"unicode":"👨🏾‍🦲"},{"unicode":"👨🏿‍🦲"}]},{"unicode":"👩","tags":["adult"],"skins":[{"unicode":"👩🏻"},{"unicode":"👩🏼"},{"unicode":"👩🏽"},{"unicode":"👩🏾"},{"unicode":"👩🏿"}]},{"unicode":"👩‍🦰","tags":["adult","red hair","woman"],"skins":[{"unicode":"👩🏻‍🦰"},{"unicode":"👩🏼‍🦰"},{"unicode":"👩🏽‍🦰"},{"unicode":"👩🏾‍🦰"},{"unicode":"👩🏿‍🦰"}]},{"unicode":"🧑‍🦰","tags":["adult","gender-neutral","person","red hair","unspecified gender"],"skins":[{"unicode":"🧑🏻‍🦰"},{"unicode":"🧑🏼‍🦰"},{"unicode":"🧑🏽‍🦰"},{"unicode":"🧑🏾‍🦰"},{"unicode":"🧑🏿‍🦰"}]},{"unicode":"👩‍🦱","tags":["adult","curly hair","woman"],"skins":[{"unicode":"👩🏻‍🦱"},{"unicode":"👩🏼‍🦱"},{"unicode":"👩🏽‍🦱"},{"unicode":"👩🏾‍🦱"},{"unicode":"👩🏿‍🦱"}]},{"unicode":"🧑‍🦱","tags":["adult","curly hair","gender-neutral","person","unspecified gender"],"skins":[{"unicode":"🧑🏻‍🦱"},{"unicode":"🧑🏼‍🦱"},{"unicode":"🧑🏽‍🦱"},{"unicode":"🧑🏾‍🦱"},{"unicode":"🧑🏿‍🦱"}]},{"unicode":"👩‍🦳","tags":["adult","white hair","woman"],"skins":[{"unicode":"👩🏻‍🦳"},{"unicode":"👩🏼‍🦳"},{"unicode":"👩🏽‍🦳"},{"unicode":"👩🏾‍🦳"},{"unicode":"👩🏿‍🦳"}]},{"unicode":"🧑‍🦳","tags":["adult","gender-neutral","person","unspecified gender","white hair"],"skins":[{"unicode":"🧑🏻‍🦳"},{"unicode":"🧑🏼‍🦳"},{"unicode":"🧑🏽‍🦳"},{"unicode":"🧑🏾‍🦳"},{"unicode":"🧑🏿‍🦳"}]},{"unicode":"👩‍🦲","tags":["adult","bald","woman"],"skins":[{"unicode":"👩🏻‍🦲"},{"unicode":"👩🏼‍🦲"},{"unicode":"👩🏽‍🦲"},{"unicode":"👩🏾‍🦲"},{"unicode":"👩🏿‍🦲"}]},{"unicode":"🧑‍🦲","tags":["adult","bald","gender-neutral","person","unspecified gender"],"skins":[{"unicode":"🧑🏻‍🦲"},{"unicode":"🧑🏼‍🦲"},{"unicode":"🧑🏽‍🦲"},{"unicode":"🧑🏾‍🦲"},{"unicode":"🧑🏿‍🦲"}]},{"unicode":"👱‍♀️","tags":["blond-haired woman","blonde","hair","woman"],"skins":[{"unicode":"👱🏻‍♀️"},{"unicode":"👱🏼‍♀️"},{"unicode":"👱🏽‍♀️"},{"unicode":"👱🏾‍♀️"},{"unicode":"👱🏿‍♀️"}]},{"unicode":"👱‍♂️","tags":["blond","blond-haired man","hair","man"],"skins":[{"unicode":"👱🏻‍♂️"},{"unicode":"👱🏼‍♂️"},{"unicode":"👱🏽‍♂️"},{"unicode":"👱🏾‍♂️"},{"unicode":"👱🏿‍♂️"}]},{"unicode":"🧓","tags":["adult","gender-neutral","old","unspecified gender"],"skins":[{"unicode":"🧓🏻"},{"unicode":"🧓🏼"},{"unicode":"🧓🏽"},{"unicode":"🧓🏾"},{"unicode":"🧓🏿"}]},{"unicode":"👴","tags":["adult","man","old"],"skins":[{"unicode":"👴🏻"},{"unicode":"👴🏼"},{"unicode":"👴🏽"},{"unicode":"👴🏾"},{"unicode":"👴🏿"}]},{"unicode":"👵","tags":["adult","old","woman"],"skins":[{"unicode":"👵🏻"},{"unicode":"👵🏼"},{"unicode":"👵🏽"},{"unicode":"👵🏾"},{"unicode":"👵🏿"}]},{"unicode":"🙍","tags":["frown","gesture"],"skins":[{"unicode":"🙍🏻"},{"unicode":"🙍🏼"},{"unicode":"🙍🏽"},{"unicode":"🙍🏾"},{"unicode":"🙍🏿"}]},{"unicode":"🙍‍♂️","tags":["frowning","gesture","man"],"skins":[{"unicode":"🙍🏻‍♂️"},{"unicode":"🙍🏼‍♂️"},{"unicode":"🙍🏽‍♂️"},{"unicode":"🙍🏾‍♂️"},{"unicode":"🙍🏿‍♂️"}]},{"unicode":"🙍‍♀️","tags":["frowning","gesture","woman"],"skins":[{"unicode":"🙍🏻‍♀️"},{"unicode":"🙍🏼‍♀️"},{"unicode":"🙍🏽‍♀️"},{"unicode":"🙍🏾‍♀️"},{"unicode":"🙍🏿‍♀️"}]},{"unicode":"🙎","tags":["gesture","pouting"],"skins":[{"unicode":"🙎🏻"},{"unicode":"🙎🏼"},{"unicode":"🙎🏽"},{"unicode":"🙎🏾"},{"unicode":"🙎🏿"}]},{"unicode":"🙎‍♂️","tags":["gesture","man","pouting"],"skins":[{"unicode":"🙎🏻‍♂️"},{"unicode":"🙎🏼‍♂️"},{"unicode":"🙎🏽‍♂️"},{"unicode":"🙎🏾‍♂️"},{"unicode":"🙎🏿‍♂️"}]},{"unicode":"🙎‍♀️","tags":["gesture","pouting","woman"],"skins":[{"unicode":"🙎🏻‍♀️"},{"unicode":"🙎🏼‍♀️"},{"unicode":"🙎🏽‍♀️"},{"unicode":"🙎🏾‍♀️"},{"unicode":"🙎🏿‍♀️"}]},{"unicode":"🙅","tags":["forbidden","gesture","hand","person gesturing no","prohibited"],"skins":[{"unicode":"🙅🏻"},{"unicode":"🙅🏼"},{"unicode":"🙅🏽"},{"unicode":"🙅🏾"},{"unicode":"🙅🏿"}]},{"unicode":"🙅‍♂️","tags":["forbidden","gesture","hand","man","man gesturing no","prohibited"],"skins":[{"unicode":"🙅🏻‍♂️"},{"unicode":"🙅🏼‍♂️"},{"unicode":"🙅🏽‍♂️"},{"unicode":"🙅🏾‍♂️"},{"unicode":"🙅🏿‍♂️"}]},{"unicode":"🙅‍♀️","tags":["forbidden","gesture","hand","prohibited","woman","woman gesturing no"],"skins":[{"unicode":"🙅🏻‍♀️"},{"unicode":"🙅🏼‍♀️"},{"unicode":"🙅🏽‍♀️"},{"unicode":"🙅🏾‍♀️"},{"unicode":"🙅🏿‍♀️"}]},{"unicode":"🙆","tags":["gesture","hand","ok","person gesturing ok"],"skins":[{"unicode":"🙆🏻"},{"unicode":"🙆🏼"},{"unicode":"🙆🏽"},{"unicode":"🙆🏾"},{"unicode":"🙆🏿"}]},{"unicode":"🙆‍♂️","tags":["gesture","hand","man","man gesturing ok","ok"],"skins":[{"unicode":"🙆🏻‍♂️"},{"unicode":"🙆🏼‍♂️"},{"unicode":"🙆🏽‍♂️"},{"unicode":"🙆🏾‍♂️"},{"unicode":"🙆🏿‍♂️"}]},{"unicode":"🙆‍♀️","tags":["gesture","hand","ok","woman","woman gesturing ok"],"skins":[{"unicode":"🙆🏻‍♀️"},{"unicode":"🙆🏼‍♀️"},{"unicode":"🙆🏽‍♀️"},{"unicode":"🙆🏾‍♀️"},{"unicode":"🙆🏿‍♀️"}]},{"unicode":"💁","tags":["hand","help","information","sassy","tipping"],"skins":[{"unicode":"💁🏻"},{"unicode":"💁🏼"},{"unicode":"💁🏽"},{"unicode":"💁🏾"},{"unicode":"💁🏿"}]},{"unicode":"💁‍♂️","tags":["man","sassy","tipping hand"],"skins":[{"unicode":"💁🏻‍♂️"},{"unicode":"💁🏼‍♂️"},{"unicode":"💁🏽‍♂️"},{"unicode":"💁🏾‍♂️"},{"unicode":"💁🏿‍♂️"}]},{"unicode":"💁‍♀️","tags":["sassy","tipping hand","woman"],"skins":[{"unicode":"💁🏻‍♀️"},{"unicode":"💁🏼‍♀️"},{"unicode":"💁🏽‍♀️"},{"unicode":"💁🏾‍♀️"},{"unicode":"💁🏿‍♀️"}]},{"unicode":"🙋","tags":["gesture","hand","happy","raised"],"skins":[{"unicode":"🙋🏻"},{"unicode":"🙋🏼"},{"unicode":"🙋🏽"},{"unicode":"🙋🏾"},{"unicode":"🙋🏿"}]},{"unicode":"🙋‍♂️","tags":["gesture","man","raising hand"],"skins":[{"unicode":"🙋🏻‍♂️"},{"unicode":"🙋🏼‍♂️"},{"unicode":"🙋🏽‍♂️"},{"unicode":"🙋🏾‍♂️"},{"unicode":"🙋🏿‍♂️"}]},{"unicode":"🙋‍♀️","tags":["gesture","raising hand","woman"],"skins":[{"unicode":"🙋🏻‍♀️"},{"unicode":"🙋🏼‍♀️"},{"unicode":"🙋🏽‍♀️"},{"unicode":"🙋🏾‍♀️"},{"unicode":"🙋🏿‍♀️"}]},{"unicode":"🧏","tags":["accessibility","deaf","ear","hear"],"skins":[{"unicode":"🧏🏻"},{"unicode":"🧏🏼"},{"unicode":"🧏🏽"},{"unicode":"🧏🏾"},{"unicode":"🧏🏿"}]},{"unicode":"🧏‍♂️","tags":["deaf","man"],"skins":[{"unicode":"🧏🏻‍♂️"},{"unicode":"🧏🏼‍♂️"},{"unicode":"🧏🏽‍♂️"},{"unicode":"🧏🏾‍♂️"},{"unicode":"🧏🏿‍♂️"}]},{"unicode":"🧏‍♀️","tags":["deaf","woman"],"skins":[{"unicode":"🧏🏻‍♀️"},{"unicode":"🧏🏼‍♀️"},{"unicode":"🧏🏽‍♀️"},{"unicode":"🧏🏾‍♀️"},{"unicode":"🧏🏿‍♀️"}]},{"unicode":"🙇","tags":["apology","bow","gesture","sorry"],"skins":[{"unicode":"🙇🏻"},{"unicode":"🙇🏼"},{"unicode":"🙇🏽"},{"unicode":"🙇🏾"},{"unicode":"🙇🏿"}]},{"unicode":"🙇‍♂️","tags":["apology","bowing","favor","gesture","man","sorry"],"skins":[{"unicode":"🙇🏻‍♂️"},{"unicode":"🙇🏼‍♂️"},{"unicode":"🙇🏽‍♂️"},{"unicode":"🙇🏾‍♂️"},{"unicode":"🙇🏿‍♂️"}]},{"unicode":"🙇‍♀️","tags":["apology","bowing","favor","gesture","sorry","woman"],"skins":[{"unicode":"🙇🏻‍♀️"},{"unicode":"🙇🏼‍♀️"},{"unicode":"🙇🏽‍♀️"},{"unicode":"🙇🏾‍♀️"},{"unicode":"🙇🏿‍♀️"}]},{"unicode":"🤦","tags":["disbelief","exasperation","face","palm"],"skins":[{"unicode":"🤦🏻"},{"unicode":"🤦🏼"},{"unicode":"🤦🏽"},{"unicode":"🤦🏾"},{"unicode":"🤦🏿"}]},{"unicode":"🤦‍♂️","tags":["disbelief","exasperation","facepalm","man"],"skins":[{"unicode":"🤦🏻‍♂️"},{"unicode":"🤦🏼‍♂️"},{"unicode":"🤦🏽‍♂️"},{"unicode":"🤦🏾‍♂️"},{"unicode":"🤦🏿‍♂️"}]},{"unicode":"🤦‍♀️","tags":["disbelief","exasperation","facepalm","woman"],"skins":[{"unicode":"🤦🏻‍♀️"},{"unicode":"🤦🏼‍♀️"},{"unicode":"🤦🏽‍♀️"},{"unicode":"🤦🏾‍♀️"},{"unicode":"🤦🏿‍♀️"}]},{"unicode":"🤷","tags":["doubt","ignorance","indifference","shrug"],"skins":[{"unicode":"🤷🏻"},{"unicode":"🤷🏼"},{"unicode":"🤷🏽"},{"unicode":"🤷🏾"},{"unicode":"🤷🏿"}]},{"unicode":"🤷‍♂️","tags":["doubt","ignorance","indifference","man","shrug"],"skins":[{"unicode":"🤷🏻‍♂️"},{"unicode":"🤷🏼‍♂️"},{"unicode":"🤷🏽‍♂️"},{"unicode":"🤷🏾‍♂️"},{"unicode":"🤷🏿‍♂️"}]},{"unicode":"🤷‍♀️","tags":["doubt","ignorance","indifference","shrug","woman"],"skins":[{"unicode":"🤷🏻‍♀️"},{"unicode":"🤷🏼‍♀️"},{"unicode":"🤷🏽‍♀️"},{"unicode":"🤷🏾‍♀️"},{"unicode":"🤷🏿‍♀️"}]},{"unicode":"🧑‍⚕️","tags":["doctor","healthcare","nurse","therapist"],"skins":[{"unicode":"🧑🏻‍⚕️"},{"unicode":"🧑🏼‍⚕️"},{"unicode":"🧑🏽‍⚕️"},{"unicode":"🧑🏾‍⚕️"},{"unicode":"🧑🏿‍⚕️"}]},{"unicode":"👨‍⚕️","tags":["doctor","healthcare","man","nurse","therapist"],"skins":[{"unicode":"👨🏻‍⚕️"},{"unicode":"👨🏼‍⚕️"},{"unicode":"👨🏽‍⚕️"},{"unicode":"👨🏾‍⚕️"},{"unicode":"👨🏿‍⚕️"}]},{"unicode":"👩‍⚕️","tags":["doctor","healthcare","nurse","therapist","woman"],"skins":[{"unicode":"👩🏻‍⚕️"},{"unicode":"👩🏼‍⚕️"},{"unicode":"👩🏽‍⚕️"},{"unicode":"👩🏾‍⚕️"},{"unicode":"👩🏿‍⚕️"}]},{"unicode":"🧑‍🎓","tags":["graduate"],"skins":[{"unicode":"🧑🏻‍🎓"},{"unicode":"🧑🏼‍🎓"},{"unicode":"🧑🏽‍🎓"},{"unicode":"🧑🏾‍🎓"},{"unicode":"🧑🏿‍🎓"}]},{"unicode":"👨‍🎓","tags":["graduate","man","student"],"skins":[{"unicode":"👨🏻‍🎓"},{"unicode":"👨🏼‍🎓"},{"unicode":"👨🏽‍🎓"},{"unicode":"👨🏾‍🎓"},{"unicode":"👨🏿‍🎓"}]},{"unicode":"👩‍🎓","tags":["graduate","student","woman"],"skins":[{"unicode":"👩🏻‍🎓"},{"unicode":"👩🏼‍🎓"},{"unicode":"👩🏽‍🎓"},{"unicode":"👩🏾‍🎓"},{"unicode":"👩🏿‍🎓"}]},{"unicode":"🧑‍🏫","tags":["instructor","professor"],"skins":[{"unicode":"🧑🏻‍🏫"},{"unicode":"🧑🏼‍🏫"},{"unicode":"🧑🏽‍🏫"},{"unicode":"🧑🏾‍🏫"},{"unicode":"🧑🏿‍🏫"}]},{"unicode":"👨‍🏫","tags":["instructor","man","professor","teacher"],"skins":[{"unicode":"👨🏻‍🏫"},{"unicode":"👨🏼‍🏫"},{"unicode":"👨🏽‍🏫"},{"unicode":"👨🏾‍🏫"},{"unicode":"👨🏿‍🏫"}]},{"unicode":"👩‍🏫","tags":["instructor","professor","teacher","woman"],"skins":[{"unicode":"👩🏻‍🏫"},{"unicode":"👩🏼‍🏫"},{"unicode":"👩🏽‍🏫"},{"unicode":"👩🏾‍🏫"},{"unicode":"👩🏿‍🏫"}]},{"unicode":"🧑‍⚖️","tags":["scales"],"skins":[{"unicode":"🧑🏻‍⚖️"},{"unicode":"🧑🏼‍⚖️"},{"unicode":"🧑🏽‍⚖️"},{"unicode":"🧑🏾‍⚖️"},{"unicode":"🧑🏿‍⚖️"}]},{"unicode":"👨‍⚖️","tags":["justice","man","scales"],"skins":[{"unicode":"👨🏻‍⚖️"},{"unicode":"👨🏼‍⚖️"},{"unicode":"👨🏽‍⚖️"},{"unicode":"👨🏾‍⚖️"},{"unicode":"👨🏿‍⚖️"}]},{"unicode":"👩‍⚖️","tags":["judge","scales","woman"],"skins":[{"unicode":"👩🏻‍⚖️"},{"unicode":"👩🏼‍⚖️"},{"unicode":"👩🏽‍⚖️"},{"unicode":"👩🏾‍⚖️"},{"unicode":"👩🏿‍⚖️"}]},{"unicode":"🧑‍🌾","tags":["gardener","rancher"],"skins":[{"unicode":"🧑🏻‍🌾"},{"unicode":"🧑🏼‍🌾"},{"unicode":"🧑🏽‍🌾"},{"unicode":"🧑🏾‍🌾"},{"unicode":"🧑🏿‍🌾"}]},{"unicode":"👨‍🌾","tags":["farmer","gardener","man","rancher"],"skins":[{"unicode":"👨🏻‍🌾"},{"unicode":"👨🏼‍🌾"},{"unicode":"👨🏽‍🌾"},{"unicode":"👨🏾‍🌾"},{"unicode":"👨🏿‍🌾"}]},{"unicode":"👩‍🌾","tags":["farmer","gardener","rancher","woman"],"skins":[{"unicode":"👩🏻‍🌾"},{"unicode":"👩🏼‍🌾"},{"unicode":"👩🏽‍🌾"},{"unicode":"👩🏾‍🌾"},{"unicode":"👩🏿‍🌾"}]},{"unicode":"🧑‍🍳","tags":["chef"],"skins":[{"unicode":"🧑🏻‍🍳"},{"unicode":"🧑🏼‍🍳"},{"unicode":"🧑🏽‍🍳"},{"unicode":"🧑🏾‍🍳"},{"unicode":"🧑🏿‍🍳"}]},{"unicode":"👨‍🍳","tags":["chef","cook","man"],"skins":[{"unicode":"👨🏻‍🍳"},{"unicode":"👨🏼‍🍳"},{"unicode":"👨🏽‍🍳"},{"unicode":"👨🏾‍🍳"},{"unicode":"👨🏿‍🍳"}]},{"unicode":"👩‍🍳","tags":["chef","cook","woman"],"skins":[{"unicode":"👩🏻‍🍳"},{"unicode":"👩🏼‍🍳"},{"unicode":"👩🏽‍🍳"},{"unicode":"👩🏾‍🍳"},{"unicode":"👩🏿‍🍳"}]},{"unicode":"🧑‍🔧","tags":["electrician","plumber","tradesperson"],"skins":[{"unicode":"🧑🏻‍🔧"},{"unicode":"🧑🏼‍🔧"},{"unicode":"🧑🏽‍🔧"},{"unicode":"🧑🏾‍🔧"},{"unicode":"🧑🏿‍🔧"}]},{"unicode":"👨‍🔧","tags":["electrician","man","mechanic","plumber","tradesperson"],"skins":[{"unicode":"👨🏻‍🔧"},{"unicode":"👨🏼‍🔧"},{"unicode":"👨🏽‍🔧"},{"unicode":"👨🏾‍🔧"},{"unicode":"👨🏿‍🔧"}]},{"unicode":"👩‍🔧","tags":["electrician","mechanic","plumber","tradesperson","woman"],"skins":[{"unicode":"👩🏻‍🔧"},{"unicode":"👩🏼‍🔧"},{"unicode":"👩🏽‍🔧"},{"unicode":"👩🏾‍🔧"},{"unicode":"👩🏿‍🔧"}]},{"unicode":"🧑‍🏭","tags":["assembly","factory","industrial","worker"],"skins":[{"unicode":"🧑🏻‍🏭"},{"unicode":"🧑🏼‍🏭"},{"unicode":"🧑🏽‍🏭"},{"unicode":"🧑🏾‍🏭"},{"unicode":"🧑🏿‍🏭"}]},{"unicode":"👨‍🏭","tags":["assembly","factory","industrial","man","worker"],"skins":[{"unicode":"👨🏻‍🏭"},{"unicode":"👨🏼‍🏭"},{"unicode":"👨🏽‍🏭"},{"unicode":"👨🏾‍🏭"},{"unicode":"👨🏿‍🏭"}]},{"unicode":"👩‍🏭","tags":["assembly","factory","industrial","woman","worker"],"skins":[{"unicode":"👩🏻‍🏭"},{"unicode":"👩🏼‍🏭"},{"unicode":"👩🏽‍🏭"},{"unicode":"👩🏾‍🏭"},{"unicode":"👩🏿‍🏭"}]},{"unicode":"🧑‍💼","tags":["architect","business","manager","white-collar"],"skins":[{"unicode":"🧑🏻‍💼"},{"unicode":"🧑🏼‍💼"},{"unicode":"🧑🏽‍💼"},{"unicode":"🧑🏾‍💼"},{"unicode":"🧑🏿‍💼"}]},{"unicode":"👨‍💼","tags":["architect","business","man","manager","white-collar"],"skins":[{"unicode":"👨🏻‍💼"},{"unicode":"👨🏼‍💼"},{"unicode":"👨🏽‍💼"},{"unicode":"👨🏾‍💼"},{"unicode":"👨🏿‍💼"}]},{"unicode":"👩‍💼","tags":["architect","business","manager","white-collar","woman"],"skins":[{"unicode":"👩🏻‍💼"},{"unicode":"👩🏼‍💼"},{"unicode":"👩🏽‍💼"},{"unicode":"👩🏾‍💼"},{"unicode":"👩🏿‍💼"}]},{"unicode":"🧑‍🔬","tags":["biologist","chemist","engineer","physicist"],"skins":[{"unicode":"🧑🏻‍🔬"},{"unicode":"🧑🏼‍🔬"},{"unicode":"🧑🏽‍🔬"},{"unicode":"🧑🏾‍🔬"},{"unicode":"🧑🏿‍🔬"}]},{"unicode":"👨‍🔬","tags":["biologist","chemist","engineer","man","physicist","scientist"],"skins":[{"unicode":"👨🏻‍🔬"},{"unicode":"👨🏼‍🔬"},{"unicode":"👨🏽‍🔬"},{"unicode":"👨🏾‍🔬"},{"unicode":"👨🏿‍🔬"}]},{"unicode":"👩‍🔬","tags":["biologist","chemist","engineer","physicist","scientist","woman"],"skins":[{"unicode":"👩🏻‍🔬"},{"unicode":"👩🏼‍🔬"},{"unicode":"👩🏽‍🔬"},{"unicode":"👩🏾‍🔬"},{"unicode":"👩🏿‍🔬"}]},{"unicode":"🧑‍💻","tags":["coder","developer","inventor","software"],"skins":[{"unicode":"🧑🏻‍💻"},{"unicode":"🧑🏼‍💻"},{"unicode":"🧑🏽‍💻"},{"unicode":"🧑🏾‍💻"},{"unicode":"🧑🏿‍💻"}]},{"unicode":"👨‍💻","tags":["coder","developer","inventor","man","software","technologist"],"skins":[{"unicode":"👨🏻‍💻"},{"unicode":"👨🏼‍💻"},{"unicode":"👨🏽‍💻"},{"unicode":"👨🏾‍💻"},{"unicode":"👨🏿‍💻"}]},{"unicode":"👩‍💻","tags":["coder","developer","inventor","software","technologist","woman"],"skins":[{"unicode":"👩🏻‍💻"},{"unicode":"👩🏼‍💻"},{"unicode":"👩🏽‍💻"},{"unicode":"👩🏾‍💻"},{"unicode":"👩🏿‍💻"}]},{"unicode":"🧑‍🎤","tags":["actor","entertainer","rock","star"],"skins":[{"unicode":"🧑🏻‍🎤"},{"unicode":"🧑🏼‍🎤"},{"unicode":"🧑🏽‍🎤"},{"unicode":"🧑🏾‍🎤"},{"unicode":"🧑🏿‍🎤"}]},{"unicode":"👨‍🎤","tags":["actor","entertainer","man","rock","singer","star"],"skins":[{"unicode":"👨🏻‍🎤"},{"unicode":"👨🏼‍🎤"},{"unicode":"👨🏽‍🎤"},{"unicode":"👨🏾‍🎤"},{"unicode":"👨🏿‍🎤"}]},{"unicode":"👩‍🎤","tags":["actor","entertainer","rock","singer","star","woman"],"skins":[{"unicode":"👩🏻‍🎤"},{"unicode":"👩🏼‍🎤"},{"unicode":"👩🏽‍🎤"},{"unicode":"👩🏾‍🎤"},{"unicode":"👩🏿‍🎤"}]},{"unicode":"🧑‍🎨","tags":["palette"],"skins":[{"unicode":"🧑🏻‍🎨"},{"unicode":"🧑🏼‍🎨"},{"unicode":"🧑🏽‍🎨"},{"unicode":"🧑🏾‍🎨"},{"unicode":"🧑🏿‍🎨"}]},{"unicode":"👨‍🎨","tags":["artist","man","palette"],"skins":[{"unicode":"👨🏻‍🎨"},{"unicode":"👨🏼‍🎨"},{"unicode":"👨🏽‍🎨"},{"unicode":"👨🏾‍🎨"},{"unicode":"👨🏿‍🎨"}]},{"unicode":"👩‍🎨","tags":["artist","palette","woman"],"skins":[{"unicode":"👩🏻‍🎨"},{"unicode":"👩🏼‍🎨"},{"unicode":"👩🏽‍🎨"},{"unicode":"👩🏾‍🎨"},{"unicode":"👩🏿‍🎨"}]},{"unicode":"🧑‍✈️","tags":["plane"],"skins":[{"unicode":"🧑🏻‍✈️"},{"unicode":"🧑🏼‍✈️"},{"unicode":"🧑🏽‍✈️"},{"unicode":"🧑🏾‍✈️"},{"unicode":"🧑🏿‍✈️"}]},{"unicode":"👨‍✈️","tags":["man","pilot","plane"],"skins":[{"unicode":"👨🏻‍✈️"},{"unicode":"👨🏼‍✈️"},{"unicode":"👨🏽‍✈️"},{"unicode":"👨🏾‍✈️"},{"unicode":"👨🏿‍✈️"}]},{"unicode":"👩‍✈️","tags":["pilot","plane","woman"],"skins":[{"unicode":"👩🏻‍✈️"},{"unicode":"👩🏼‍✈️"},{"unicode":"👩🏽‍✈️"},{"unicode":"👩🏾‍✈️"},{"unicode":"👩🏿‍✈️"}]},{"unicode":"🧑‍🚀","tags":["rocket"],"skins":[{"unicode":"🧑🏻‍🚀"},{"unicode":"🧑🏼‍🚀"},{"unicode":"🧑🏽‍🚀"},{"unicode":"🧑🏾‍🚀"},{"unicode":"🧑🏿‍🚀"}]},{"unicode":"👨‍🚀","tags":["astronaut","man","rocket"],"skins":[{"unicode":"👨🏻‍🚀"},{"unicode":"👨🏼‍🚀"},{"unicode":"👨🏽‍🚀"},{"unicode":"👨🏾‍🚀"},{"unicode":"👨🏿‍🚀"}]},{"unicode":"👩‍🚀","tags":["astronaut","rocket","woman"],"skins":[{"unicode":"👩🏻‍🚀"},{"unicode":"👩🏼‍🚀"},{"unicode":"👩🏽‍🚀"},{"unicode":"👩🏾‍🚀"},{"unicode":"👩🏿‍🚀"}]},{"unicode":"🧑‍🚒","tags":["firetruck"],"skins":[{"unicode":"🧑🏻‍🚒"},{"unicode":"🧑🏼‍🚒"},{"unicode":"🧑🏽‍🚒"},{"unicode":"🧑🏾‍🚒"},{"unicode":"🧑🏿‍🚒"}]},{"unicode":"👨‍🚒","tags":["firefighter","firetruck","man"],"skins":[{"unicode":"👨🏻‍🚒"},{"unicode":"👨🏼‍🚒"},{"unicode":"👨🏽‍🚒"},{"unicode":"👨🏾‍🚒"},{"unicode":"👨🏿‍🚒"}]},{"unicode":"👩‍🚒","tags":["firefighter","firetruck","woman"],"skins":[{"unicode":"👩🏻‍🚒"},{"unicode":"👩🏼‍🚒"},{"unicode":"👩🏽‍🚒"},{"unicode":"👩🏾‍🚒"},{"unicode":"👩🏿‍🚒"}]},{"unicode":"👮","tags":["cop","officer","police"],"skins":[{"unicode":"👮🏻"},{"unicode":"👮🏼"},{"unicode":"👮🏽"},{"unicode":"👮🏾"},{"unicode":"👮🏿"}]},{"unicode":"👮‍♂️","tags":["cop","man","officer","police"],"skins":[{"unicode":"👮🏻‍♂️"},{"unicode":"👮🏼‍♂️"},{"unicode":"👮🏽‍♂️"},{"unicode":"👮🏾‍♂️"},{"unicode":"👮🏿‍♂️"}]},{"unicode":"👮‍♀️","tags":["cop","officer","police","woman"],"skins":[{"unicode":"👮🏻‍♀️"},{"unicode":"👮🏼‍♀️"},{"unicode":"👮🏽‍♀️"},{"unicode":"👮🏾‍♀️"},{"unicode":"👮🏿‍♀️"}]},{"unicode":"🕵️","tags":["sleuth","spy"],"skins":[{"unicode":"🕵🏻"},{"unicode":"🕵🏼"},{"unicode":"🕵🏽"},{"unicode":"🕵🏾"},{"unicode":"🕵🏿"}]},{"unicode":"🕵️‍♂️","tags":["detective","man","sleuth","spy"],"skins":[{"unicode":"🕵🏻‍♂️"},{"unicode":"🕵🏼‍♂️"},{"unicode":"🕵🏽‍♂️"},{"unicode":"🕵🏾‍♂️"},{"unicode":"🕵🏿‍♂️"}]},{"unicode":"🕵️‍♀️","tags":["detective","sleuth","spy","woman"],"skins":[{"unicode":"🕵🏻‍♀️"},{"unicode":"🕵🏼‍♀️"},{"unicode":"🕵🏽‍♀️"},{"unicode":"🕵🏾‍♀️"},{"unicode":"🕵🏿‍♀️"}]},{"unicode":"💂","tags":["guard"],"skins":[{"unicode":"💂🏻"},{"unicode":"💂🏼"},{"unicode":"💂🏽"},{"unicode":"💂🏾"},{"unicode":"💂🏿"}]},{"unicode":"💂‍♂️","tags":["guard","man"],"skins":[{"unicode":"💂🏻‍♂️"},{"unicode":"💂🏼‍♂️"},{"unicode":"💂🏽‍♂️"},{"unicode":"💂🏾‍♂️"},{"unicode":"💂🏿‍♂️"}]},{"unicode":"💂‍♀️","tags":["guard","woman"],"skins":[{"unicode":"💂🏻‍♀️"},{"unicode":"💂🏼‍♀️"},{"unicode":"💂🏽‍♀️"},{"unicode":"💂🏾‍♀️"},{"unicode":"💂🏿‍♀️"}]},{"unicode":"🥷","tags":["fighter","hidden","stealth"],"skins":[{"unicode":"🥷🏻"},{"unicode":"🥷🏼"},{"unicode":"🥷🏽"},{"unicode":"🥷🏾"},{"unicode":"🥷🏿"}]},{"unicode":"👷","tags":["construction","hat","worker"],"skins":[{"unicode":"👷🏻"},{"unicode":"👷🏼"},{"unicode":"👷🏽"},{"unicode":"👷🏾"},{"unicode":"👷🏿"}]},{"unicode":"👷‍♂️","tags":["construction","man","worker"],"skins":[{"unicode":"👷🏻‍♂️"},{"unicode":"👷🏼‍♂️"},{"unicode":"👷🏽‍♂️"},{"unicode":"👷🏾‍♂️"},{"unicode":"👷🏿‍♂️"}]},{"unicode":"👷‍♀️","tags":["construction","woman","worker"],"skins":[{"unicode":"👷🏻‍♀️"},{"unicode":"👷🏼‍♀️"},{"unicode":"👷🏽‍♀️"},{"unicode":"👷🏾‍♀️"},{"unicode":"👷🏿‍♀️"}]},{"unicode":"🤴","tags":["prince"],"skins":[{"unicode":"🤴🏻"},{"unicode":"🤴🏼"},{"unicode":"🤴🏽"},{"unicode":"🤴🏾"},{"unicode":"🤴🏿"}]},{"unicode":"👸","tags":["fairy tale","fantasy"],"skins":[{"unicode":"👸🏻"},{"unicode":"👸🏼"},{"unicode":"👸🏽"},{"unicode":"👸🏾"},{"unicode":"👸🏿"}]},{"unicode":"👳","tags":["turban"],"skins":[{"unicode":"👳🏻"},{"unicode":"👳🏼"},{"unicode":"👳🏽"},{"unicode":"👳🏾"},{"unicode":"👳🏿"}]},{"unicode":"👳‍♂️","tags":["man","turban"],"skins":[{"unicode":"👳🏻‍♂️"},{"unicode":"👳🏼‍♂️"},{"unicode":"👳🏽‍♂️"},{"unicode":"👳🏾‍♂️"},{"unicode":"👳🏿‍♂️"}]},{"unicode":"👳‍♀️","tags":["turban","woman"],"skins":[{"unicode":"👳🏻‍♀️"},{"unicode":"👳🏼‍♀️"},{"unicode":"👳🏽‍♀️"},{"unicode":"👳🏾‍♀️"},{"unicode":"👳🏿‍♀️"}]},{"unicode":"👲","tags":["cap","gua pi mao","hat","person","skullcap"],"skins":[{"unicode":"👲🏻"},{"unicode":"👲🏼"},{"unicode":"👲🏽"},{"unicode":"👲🏾"},{"unicode":"👲🏿"}]},{"unicode":"🧕","tags":["headscarf","hijab","mantilla","tichel"],"skins":[{"unicode":"🧕🏻"},{"unicode":"🧕🏼"},{"unicode":"🧕🏽"},{"unicode":"🧕🏾"},{"unicode":"🧕🏿"}]},{"unicode":"🤵","tags":["groom","person","tuxedo"],"skins":[{"unicode":"🤵🏻"},{"unicode":"🤵🏼"},{"unicode":"🤵🏽"},{"unicode":"🤵🏾"},{"unicode":"🤵🏿"}]},{"unicode":"🤵‍♂️","tags":["man","tuxedo"],"skins":[{"unicode":"🤵🏻‍♂️"},{"unicode":"🤵🏼‍♂️"},{"unicode":"🤵🏽‍♂️"},{"unicode":"🤵🏾‍♂️"},{"unicode":"🤵🏿‍♂️"}]},{"unicode":"🤵‍♀️","tags":["tuxedo","woman"],"skins":[{"unicode":"🤵🏻‍♀️"},{"unicode":"🤵🏼‍♀️"},{"unicode":"🤵🏽‍♀️"},{"unicode":"🤵🏾‍♀️"},{"unicode":"🤵🏿‍♀️"}]},{"unicode":"👰","tags":["bride","person","veil","wedding"],"skins":[{"unicode":"👰🏻"},{"unicode":"👰🏼"},{"unicode":"👰🏽"},{"unicode":"👰🏾"},{"unicode":"👰🏿"}]},{"unicode":"👰‍♂️","tags":["man","veil"],"skins":[{"unicode":"👰🏻‍♂️"},{"unicode":"👰🏼‍♂️"},{"unicode":"👰🏽‍♂️"},{"unicode":"👰🏾‍♂️"},{"unicode":"👰🏿‍♂️"}]},{"unicode":"👰‍♀️","tags":["veil","woman"],"skins":[{"unicode":"👰🏻‍♀️"},{"unicode":"👰🏼‍♀️"},{"unicode":"👰🏽‍♀️"},{"unicode":"👰🏾‍♀️"},{"unicode":"👰🏿‍♀️"}]},{"unicode":"🤰","tags":["pregnant","woman"],"skins":[{"unicode":"🤰🏻"},{"unicode":"🤰🏼"},{"unicode":"🤰🏽"},{"unicode":"🤰🏾"},{"unicode":"🤰🏿"}]},{"unicode":"🤱","tags":["baby","breast","nursing"],"skins":[{"unicode":"🤱🏻"},{"unicode":"🤱🏼"},{"unicode":"🤱🏽"},{"unicode":"🤱🏾"},{"unicode":"🤱🏿"}]},{"unicode":"👩‍🍼","tags":["baby","feeding","nursing","woman"],"skins":[{"unicode":"👩🏻‍🍼"},{"unicode":"👩🏼‍🍼"},{"unicode":"👩🏽‍🍼"},{"unicode":"👩🏾‍🍼"},{"unicode":"👩🏿‍🍼"}]},{"unicode":"👨‍🍼","tags":["baby","feeding","man","nursing"],"skins":[{"unicode":"👨🏻‍🍼"},{"unicode":"👨🏼‍🍼"},{"unicode":"👨🏽‍🍼"},{"unicode":"👨🏾‍🍼"},{"unicode":"👨🏿‍🍼"}]},{"unicode":"🧑‍🍼","tags":["baby","feeding","nursing","person"],"skins":[{"unicode":"🧑🏻‍🍼"},{"unicode":"🧑🏼‍🍼"},{"unicode":"🧑🏽‍🍼"},{"unicode":"🧑🏾‍🍼"},{"unicode":"🧑🏿‍🍼"}]},{"unicode":"👼","tags":["angel","baby","face","fairy tale","fantasy"],"skins":[{"unicode":"👼🏻"},{"unicode":"👼🏼"},{"unicode":"👼🏽"},{"unicode":"👼🏾"},{"unicode":"👼🏿"}]},{"unicode":"🎅","tags":["celebration","christmas","claus","father","santa","santa claus"],"skins":[{"unicode":"🎅🏻"},{"unicode":"🎅🏼"},{"unicode":"🎅🏽"},{"unicode":"🎅🏾"},{"unicode":"🎅🏿"}]},{"unicode":"🤶","tags":["celebration","christmas","claus","mother","mrs.","mrs. claus"],"skins":[{"unicode":"🤶🏻"},{"unicode":"🤶🏼"},{"unicode":"🤶🏽"},{"unicode":"🤶🏾"},{"unicode":"🤶🏿"}]},{"unicode":"🧑‍🎄","tags":["claus, christmas"],"skins":[{"unicode":"🧑🏻‍🎄"},{"unicode":"🧑🏼‍🎄"},{"unicode":"🧑🏽‍🎄"},{"unicode":"🧑🏾‍🎄"},{"unicode":"🧑🏿‍🎄"}]},{"unicode":"🦸","tags":["good","hero","heroine","superpower"],"skins":[{"unicode":"🦸🏻"},{"unicode":"🦸🏼"},{"unicode":"🦸🏽"},{"unicode":"🦸🏾"},{"unicode":"🦸🏿"}]},{"unicode":"🦸‍♂️","tags":["good","hero","man","superpower"],"skins":[{"unicode":"🦸🏻‍♂️"},{"unicode":"🦸🏼‍♂️"},{"unicode":"🦸🏽‍♂️"},{"unicode":"🦸🏾‍♂️"},{"unicode":"🦸🏿‍♂️"}]},{"unicode":"🦸‍♀️","tags":["good","hero","heroine","superpower","woman"],"skins":[{"unicode":"🦸🏻‍♀️"},{"unicode":"🦸🏼‍♀️"},{"unicode":"🦸🏽‍♀️"},{"unicode":"🦸🏾‍♀️"},{"unicode":"🦸🏿‍♀️"}]},{"unicode":"🦹","tags":["criminal","evil","superpower","villain"],"skins":[{"unicode":"🦹🏻"},{"unicode":"🦹🏼"},{"unicode":"🦹🏽"},{"unicode":"🦹🏾"},{"unicode":"🦹🏿"}]},{"unicode":"🦹‍♂️","tags":["criminal","evil","man","superpower","villain"],"skins":[{"unicode":"🦹🏻‍♂️"},{"unicode":"🦹🏼‍♂️"},{"unicode":"🦹🏽‍♂️"},{"unicode":"🦹🏾‍♂️"},{"unicode":"🦹🏿‍♂️"}]},{"unicode":"🦹‍♀️","tags":["criminal","evil","superpower","villain","woman"],"skins":[{"unicode":"🦹🏻‍♀️"},{"unicode":"🦹🏼‍♀️"},{"unicode":"🦹🏽‍♀️"},{"unicode":"🦹🏾‍♀️"},{"unicode":"🦹🏿‍♀️"}]},{"unicode":"🧙","tags":["sorcerer","sorceress","witch","wizard"],"skins":[{"unicode":"🧙🏻"},{"unicode":"🧙🏼"},{"unicode":"🧙🏽"},{"unicode":"🧙🏾"},{"unicode":"🧙🏿"}]},{"unicode":"🧙‍♂️","tags":["sorcerer","wizard"],"skins":[{"unicode":"🧙🏻‍♂️"},{"unicode":"🧙🏼‍♂️"},{"unicode":"🧙🏽‍♂️"},{"unicode":"🧙🏾‍♂️"},{"unicode":"🧙🏿‍♂️"}]},{"unicode":"🧙‍♀️","tags":["sorceress","witch"],"skins":[{"unicode":"🧙🏻‍♀️"},{"unicode":"🧙🏼‍♀️"},{"unicode":"🧙🏽‍♀️"},{"unicode":"🧙🏾‍♀️"},{"unicode":"🧙🏿‍♀️"}]},{"unicode":"🧚","tags":["oberon","puck","titania"],"skins":[{"unicode":"🧚🏻"},{"unicode":"🧚🏼"},{"unicode":"🧚🏽"},{"unicode":"🧚🏾"},{"unicode":"🧚🏿"}]},{"unicode":"🧚‍♂️","tags":["oberon","puck"],"skins":[{"unicode":"🧚🏻‍♂️"},{"unicode":"🧚🏼‍♂️"},{"unicode":"🧚🏽‍♂️"},{"unicode":"🧚🏾‍♂️"},{"unicode":"🧚🏿‍♂️"}]},{"unicode":"🧚‍♀️","tags":["titania"],"skins":[{"unicode":"🧚🏻‍♀️"},{"unicode":"🧚🏼‍♀️"},{"unicode":"🧚🏽‍♀️"},{"unicode":"🧚🏾‍♀️"},{"unicode":"🧚🏿‍♀️"}]},{"unicode":"🧛","tags":["dracula","undead"],"skins":[{"unicode":"🧛🏻"},{"unicode":"🧛🏼"},{"unicode":"🧛🏽"},{"unicode":"🧛🏾"},{"unicode":"🧛🏿"}]},{"unicode":"🧛‍♂️","tags":["dracula","undead"],"skins":[{"unicode":"🧛🏻‍♂️"},{"unicode":"🧛🏼‍♂️"},{"unicode":"🧛🏽‍♂️"},{"unicode":"🧛🏾‍♂️"},{"unicode":"🧛🏿‍♂️"}]},{"unicode":"🧛‍♀️","tags":["undead"],"skins":[{"unicode":"🧛🏻‍♀️"},{"unicode":"🧛🏼‍♀️"},{"unicode":"🧛🏽‍♀️"},{"unicode":"🧛🏾‍♀️"},{"unicode":"🧛🏿‍♀️"}]},{"unicode":"🧜","tags":["mermaid","merman","merwoman"],"skins":[{"unicode":"🧜🏻"},{"unicode":"🧜🏼"},{"unicode":"🧜🏽"},{"unicode":"🧜🏾"},{"unicode":"🧜🏿"}]},{"unicode":"🧜‍♂️","tags":["triton"],"skins":[{"unicode":"🧜🏻‍♂️"},{"unicode":"🧜🏼‍♂️"},{"unicode":"🧜🏽‍♂️"},{"unicode":"🧜🏾‍♂️"},{"unicode":"🧜🏿‍♂️"}]},{"unicode":"🧜‍♀️","tags":["merwoman"],"skins":[{"unicode":"🧜🏻‍♀️"},{"unicode":"🧜🏼‍♀️"},{"unicode":"🧜🏽‍♀️"},{"unicode":"🧜🏾‍♀️"},{"unicode":"🧜🏿‍♀️"}]},{"unicode":"🧝","tags":["magical"],"skins":[{"unicode":"🧝🏻"},{"unicode":"🧝🏼"},{"unicode":"🧝🏽"},{"unicode":"🧝🏾"},{"unicode":"🧝🏿"}]},{"unicode":"🧝‍♂️","tags":["magical"],"skins":[{"unicode":"🧝🏻‍♂️"},{"unicode":"🧝🏼‍♂️"},{"unicode":"🧝🏽‍♂️"},{"unicode":"🧝🏾‍♂️"},{"unicode":"🧝🏿‍♂️"}]},{"unicode":"🧝‍♀️","tags":["magical"],"skins":[{"unicode":"🧝🏻‍♀️"},{"unicode":"🧝🏼‍♀️"},{"unicode":"🧝🏽‍♀️"},{"unicode":"🧝🏾‍♀️"},{"unicode":"🧝🏿‍♀️"}]},{"unicode":"🧞","tags":["djinn"]},{"unicode":"🧞‍♂️","tags":["djinn"]},{"unicode":"🧞‍♀️","tags":["djinn"]},{"unicode":"🧟","tags":["undead","walking dead"]},{"unicode":"🧟‍♂️","tags":["undead","walking dead"]},{"unicode":"🧟‍♀️","tags":["undead","walking dead"]},{"unicode":"💆","tags":["face","massage","salon"],"skins":[{"unicode":"💆🏻"},{"unicode":"💆🏼"},{"unicode":"💆🏽"},{"unicode":"💆🏾"},{"unicode":"💆🏿"}]},{"unicode":"💆‍♂️","tags":["face","man","massage"],"skins":[{"unicode":"💆🏻‍♂️"},{"unicode":"💆🏼‍♂️"},{"unicode":"💆🏽‍♂️"},{"unicode":"💆🏾‍♂️"},{"unicode":"💆🏿‍♂️"}]},{"unicode":"💆‍♀️","tags":["face","massage","woman"],"skins":[{"unicode":"💆🏻‍♀️"},{"unicode":"💆🏼‍♀️"},{"unicode":"💆🏽‍♀️"},{"unicode":"💆🏾‍♀️"},{"unicode":"💆🏿‍♀️"}]},{"unicode":"💇","tags":["barber","beauty","haircut","parlor"],"skins":[{"unicode":"💇🏻"},{"unicode":"💇🏼"},{"unicode":"💇🏽"},{"unicode":"💇🏾"},{"unicode":"💇🏿"}]},{"unicode":"💇‍♂️","tags":["haircut","man"],"skins":[{"unicode":"💇🏻‍♂️"},{"unicode":"💇🏼‍♂️"},{"unicode":"💇🏽‍♂️"},{"unicode":"💇🏾‍♂️"},{"unicode":"💇🏿‍♂️"}]},{"unicode":"💇‍♀️","tags":["haircut","woman"],"skins":[{"unicode":"💇🏻‍♀️"},{"unicode":"💇🏼‍♀️"},{"unicode":"💇🏽‍♀️"},{"unicode":"💇🏾‍♀️"},{"unicode":"💇🏿‍♀️"}]},{"unicode":"🚶","tags":["hike","walk","walking"],"skins":[{"unicode":"🚶🏻"},{"unicode":"🚶🏼"},{"unicode":"🚶🏽"},{"unicode":"🚶🏾"},{"unicode":"🚶🏿"}]},{"unicode":"🚶‍♂️","tags":["hike","man","walk"],"skins":[{"unicode":"🚶🏻‍♂️"},{"unicode":"🚶🏼‍♂️"},{"unicode":"🚶🏽‍♂️"},{"unicode":"🚶🏾‍♂️"},{"unicode":"🚶🏿‍♂️"}]},{"unicode":"🚶‍♀️","tags":["hike","walk","woman"],"skins":[{"unicode":"🚶🏻‍♀️"},{"unicode":"🚶🏼‍♀️"},{"unicode":"🚶🏽‍♀️"},{"unicode":"🚶🏾‍♀️"},{"unicode":"🚶🏿‍♀️"}]},{"unicode":"🧍","tags":["stand","standing"],"skins":[{"unicode":"🧍🏻"},{"unicode":"🧍🏼"},{"unicode":"🧍🏽"},{"unicode":"🧍🏾"},{"unicode":"🧍🏿"}]},{"unicode":"🧍‍♂️","tags":["man","standing"],"skins":[{"unicode":"🧍🏻‍♂️"},{"unicode":"🧍🏼‍♂️"},{"unicode":"🧍🏽‍♂️"},{"unicode":"🧍🏾‍♂️"},{"unicode":"🧍🏿‍♂️"}]},{"unicode":"🧍‍♀️","tags":["standing","woman"],"skins":[{"unicode":"🧍🏻‍♀️"},{"unicode":"🧍🏼‍♀️"},{"unicode":"🧍🏽‍♀️"},{"unicode":"🧍🏾‍♀️"},{"unicode":"🧍🏿‍♀️"}]},{"unicode":"🧎","tags":["kneel","kneeling"],"skins":[{"unicode":"🧎🏻"},{"unicode":"🧎🏼"},{"unicode":"🧎🏽"},{"unicode":"🧎🏾"},{"unicode":"🧎🏿"}]},{"unicode":"🧎‍♂️","tags":["kneeling","man"],"skins":[{"unicode":"🧎🏻‍♂️"},{"unicode":"🧎🏼‍♂️"},{"unicode":"🧎🏽‍♂️"},{"unicode":"🧎🏾‍♂️"},{"unicode":"🧎🏿‍♂️"}]},{"unicode":"🧎‍♀️","tags":["kneeling","woman"],"skins":[{"unicode":"🧎🏻‍♀️"},{"unicode":"🧎🏼‍♀️"},{"unicode":"🧎🏽‍♀️"},{"unicode":"🧎🏾‍♀️"},{"unicode":"🧎🏿‍♀️"}]},{"unicode":"🧑‍🦯","tags":["accessibility","blind"],"skins":[{"unicode":"🧑🏻‍🦯"},{"unicode":"🧑🏼‍🦯"},{"unicode":"🧑🏽‍🦯"},{"unicode":"🧑🏾‍🦯"},{"unicode":"🧑🏿‍🦯"}]},{"unicode":"👨‍🦯","tags":["accessibility","blind","man"],"skins":[{"unicode":"👨🏻‍🦯"},{"unicode":"👨🏼‍🦯"},{"unicode":"👨🏽‍🦯"},{"unicode":"👨🏾‍🦯"},{"unicode":"👨🏿‍🦯"}]},{"unicode":"👩‍🦯","tags":["accessibility","blind","woman"],"skins":[{"unicode":"👩🏻‍🦯"},{"unicode":"👩🏼‍🦯"},{"unicode":"👩🏽‍🦯"},{"unicode":"👩🏾‍🦯"},{"unicode":"👩🏿‍🦯"}]},{"unicode":"🧑‍🦼","tags":["accessibility","wheelchair"],"skins":[{"unicode":"🧑🏻‍🦼"},{"unicode":"🧑🏼‍🦼"},{"unicode":"🧑🏽‍🦼"},{"unicode":"🧑🏾‍🦼"},{"unicode":"🧑🏿‍🦼"}]},{"unicode":"👨‍🦼","tags":["accessibility","man","wheelchair"],"skins":[{"unicode":"👨🏻‍🦼"},{"unicode":"👨🏼‍🦼"},{"unicode":"👨🏽‍🦼"},{"unicode":"👨🏾‍🦼"},{"unicode":"👨🏿‍🦼"}]},{"unicode":"👩‍🦼","tags":["accessibility","wheelchair","woman"],"skins":[{"unicode":"👩🏻‍🦼"},{"unicode":"👩🏼‍🦼"},{"unicode":"👩🏽‍🦼"},{"unicode":"👩🏾‍🦼"},{"unicode":"👩🏿‍🦼"}]},{"unicode":"🧑‍🦽","tags":["accessibility","wheelchair"],"skins":[{"unicode":"🧑🏻‍🦽"},{"unicode":"🧑🏼‍🦽"},{"unicode":"🧑🏽‍🦽"},{"unicode":"🧑🏾‍🦽"},{"unicode":"🧑🏿‍🦽"}]},{"unicode":"👨‍🦽","tags":["accessibility","man","wheelchair"],"skins":[{"unicode":"👨🏻‍🦽"},{"unicode":"👨🏼‍🦽"},{"unicode":"👨🏽‍🦽"},{"unicode":"👨🏾‍🦽"},{"unicode":"👨🏿‍🦽"}]},{"unicode":"👩‍🦽","tags":["accessibility","wheelchair","woman"],"skins":[{"unicode":"👩🏻‍🦽"},{"unicode":"👩🏼‍🦽"},{"unicode":"👩🏽‍🦽"},{"unicode":"👩🏾‍🦽"},{"unicode":"👩🏿‍🦽"}]},{"unicode":"🏃","tags":["marathon","running"],"skins":[{"unicode":"🏃🏻"},{"unicode":"🏃🏼"},{"unicode":"🏃🏽"},{"unicode":"🏃🏾"},{"unicode":"🏃🏿"}]},{"unicode":"🏃‍♂️","tags":["man","marathon","racing","running"],"skins":[{"unicode":"🏃🏻‍♂️"},{"unicode":"🏃🏼‍♂️"},{"unicode":"🏃🏽‍♂️"},{"unicode":"🏃🏾‍♂️"},{"unicode":"🏃🏿‍♂️"}]},{"unicode":"🏃‍♀️","tags":["marathon","racing","running","woman"],"skins":[{"unicode":"🏃🏻‍♀️"},{"unicode":"🏃🏼‍♀️"},{"unicode":"🏃🏽‍♀️"},{"unicode":"🏃🏾‍♀️"},{"unicode":"🏃🏿‍♀️"}]},{"unicode":"💃","tags":["dancing","woman"],"skins":[{"unicode":"💃🏻"},{"unicode":"💃🏼"},{"unicode":"💃🏽"},{"unicode":"💃🏾"},{"unicode":"💃🏿"}]},{"unicode":"🕺","tags":["dance","man"],"skins":[{"unicode":"🕺🏻"},{"unicode":"🕺🏼"},{"unicode":"🕺🏽"},{"unicode":"🕺🏾"},{"unicode":"🕺🏿"}]},{"unicode":"🕴️","tags":["business","person","suit"],"skins":[{"unicode":"🕴🏻"},{"unicode":"🕴🏼"},{"unicode":"🕴🏽"},{"unicode":"🕴🏾"},{"unicode":"🕴🏿"}]},{"unicode":"👯","tags":["bunny ear","dancer","partying"]},{"unicode":"👯‍♂️","tags":["bunny ear","dancer","men","partying"]},{"unicode":"👯‍♀️","tags":["bunny ear","dancer","partying","women"]},{"unicode":"🧖","tags":["sauna","steam room"],"skins":[{"unicode":"🧖🏻"},{"unicode":"🧖🏼"},{"unicode":"🧖🏽"},{"unicode":"🧖🏾"},{"unicode":"🧖🏿"}]},{"unicode":"🧖‍♂️","tags":["sauna","steam room"],"skins":[{"unicode":"🧖🏻‍♂️"},{"unicode":"🧖🏼‍♂️"},{"unicode":"🧖🏽‍♂️"},{"unicode":"🧖🏾‍♂️"},{"unicode":"🧖🏿‍♂️"}]},{"unicode":"🧖‍♀️","tags":["sauna","steam room"],"skins":[{"unicode":"🧖🏻‍♀️"},{"unicode":"🧖🏼‍♀️"},{"unicode":"🧖🏽‍♀️"},{"unicode":"🧖🏾‍♀️"},{"unicode":"🧖🏿‍♀️"}]},{"unicode":"🧗","tags":["climber"],"skins":[{"unicode":"🧗🏻"},{"unicode":"🧗🏼"},{"unicode":"🧗🏽"},{"unicode":"🧗🏾"},{"unicode":"🧗🏿"}]},{"unicode":"🧗‍♂️","tags":["climber"],"skins":[{"unicode":"🧗🏻‍♂️"},{"unicode":"🧗🏼‍♂️"},{"unicode":"🧗🏽‍♂️"},{"unicode":"🧗🏾‍♂️"},{"unicode":"🧗🏿‍♂️"}]},{"unicode":"🧗‍♀️","tags":["climber"],"skins":[{"unicode":"🧗🏻‍♀️"},{"unicode":"🧗🏼‍♀️"},{"unicode":"🧗🏽‍♀️"},{"unicode":"🧗🏾‍♀️"},{"unicode":"🧗🏿‍♀️"}]},{"unicode":"🤺","tags":["fencer","fencing","sword"]},{"unicode":"🏇","tags":["horse","jockey","racehorse","racing"],"skins":[{"unicode":"🏇🏻"},{"unicode":"🏇🏼"},{"unicode":"🏇🏽"},{"unicode":"🏇🏾"},{"unicode":"🏇🏿"}]},{"unicode":"⛷️","tags":["ski","snow"]},{"unicode":"🏂️","tags":["ski","snow","snowboard"],"skins":[{"unicode":"🏂🏻"},{"unicode":"🏂🏼"},{"unicode":"🏂🏽"},{"unicode":"🏂🏾"},{"unicode":"🏂🏿"}]},{"unicode":"🏌️","tags":["ball","golf"],"skins":[{"unicode":"🏌🏻"},{"unicode":"🏌🏼"},{"unicode":"🏌🏽"},{"unicode":"🏌🏾"},{"unicode":"🏌🏿"}]},{"unicode":"🏌️‍♂️","tags":["golf","man"],"skins":[{"unicode":"🏌🏻‍♂️"},{"unicode":"🏌🏼‍♂️"},{"unicode":"🏌🏽‍♂️"},{"unicode":"🏌🏾‍♂️"},{"unicode":"🏌🏿‍♂️"}]},{"unicode":"🏌️‍♀️","tags":["golf","woman"],"skins":[{"unicode":"🏌🏻‍♀️"},{"unicode":"🏌🏼‍♀️"},{"unicode":"🏌🏽‍♀️"},{"unicode":"🏌🏾‍♀️"},{"unicode":"🏌🏿‍♀️"}]},{"unicode":"🏄️","tags":["surfing"],"skins":[{"unicode":"🏄🏻"},{"unicode":"🏄🏼"},{"unicode":"🏄🏽"},{"unicode":"🏄🏾"},{"unicode":"🏄🏿"}]},{"unicode":"🏄‍♂️","tags":["man","surfing"],"skins":[{"unicode":"🏄🏻‍♂️"},{"unicode":"🏄🏼‍♂️"},{"unicode":"🏄🏽‍♂️"},{"unicode":"🏄🏾‍♂️"},{"unicode":"🏄🏿‍♂️"}]},{"unicode":"🏄‍♀️","tags":["surfing","woman"],"skins":[{"unicode":"🏄🏻‍♀️"},{"unicode":"🏄🏼‍♀️"},{"unicode":"🏄🏽‍♀️"},{"unicode":"🏄🏾‍♀️"},{"unicode":"🏄🏿‍♀️"}]},{"unicode":"🚣","tags":["boat","rowboat"],"skins":[{"unicode":"🚣🏻"},{"unicode":"🚣🏼"},{"unicode":"🚣🏽"},{"unicode":"🚣🏾"},{"unicode":"🚣🏿"}]},{"unicode":"🚣‍♂️","tags":["boat","man","rowboat"],"skins":[{"unicode":"🚣🏻‍♂️"},{"unicode":"🚣🏼‍♂️"},{"unicode":"🚣🏽‍♂️"},{"unicode":"🚣🏾‍♂️"},{"unicode":"🚣🏿‍♂️"}]},{"unicode":"🚣‍♀️","tags":["boat","rowboat","woman"],"skins":[{"unicode":"🚣🏻‍♀️"},{"unicode":"🚣🏼‍♀️"},{"unicode":"🚣🏽‍♀️"},{"unicode":"🚣🏾‍♀️"},{"unicode":"🚣🏿‍♀️"}]},{"unicode":"🏊️","tags":["swim"],"skins":[{"unicode":"🏊🏻"},{"unicode":"🏊🏼"},{"unicode":"🏊🏽"},{"unicode":"🏊🏾"},{"unicode":"🏊🏿"}]},{"unicode":"🏊‍♂️","tags":["man","swim"],"skins":[{"unicode":"🏊🏻‍♂️"},{"unicode":"🏊🏼‍♂️"},{"unicode":"🏊🏽‍♂️"},{"unicode":"🏊🏾‍♂️"},{"unicode":"🏊🏿‍♂️"}]},{"unicode":"🏊‍♀️","tags":["swim","woman"],"skins":[{"unicode":"🏊🏻‍♀️"},{"unicode":"🏊🏼‍♀️"},{"unicode":"🏊🏽‍♀️"},{"unicode":"🏊🏾‍♀️"},{"unicode":"🏊🏿‍♀️"}]},{"unicode":"⛹️","tags":["ball"],"skins":[{"unicode":"⛹🏻"},{"unicode":"⛹🏼"},{"unicode":"⛹🏽"},{"unicode":"⛹🏾"},{"unicode":"⛹🏿"}]},{"unicode":"⛹️‍♂️","tags":["ball","man"],"skins":[{"unicode":"⛹🏻‍♂️"},{"unicode":"⛹🏼‍♂️"},{"unicode":"⛹🏽‍♂️"},{"unicode":"⛹🏾‍♂️"},{"unicode":"⛹🏿‍♂️"}]},{"unicode":"⛹️‍♀️","tags":["ball","woman"],"skins":[{"unicode":"⛹🏻‍♀️"},{"unicode":"⛹🏼‍♀️"},{"unicode":"⛹🏽‍♀️"},{"unicode":"⛹🏾‍♀️"},{"unicode":"⛹🏿‍♀️"}]},{"unicode":"🏋️","tags":["lifter","weight"],"skins":[{"unicode":"🏋🏻"},{"unicode":"🏋🏼"},{"unicode":"🏋🏽"},{"unicode":"🏋🏾"},{"unicode":"🏋🏿"}]},{"unicode":"🏋️‍♂️","tags":["man","weight lifter"],"skins":[{"unicode":"🏋🏻‍♂️"},{"unicode":"🏋🏼‍♂️"},{"unicode":"🏋🏽‍♂️"},{"unicode":"🏋🏾‍♂️"},{"unicode":"🏋🏿‍♂️"}]},{"unicode":"🏋️‍♀️","tags":["weight lifter","woman"],"skins":[{"unicode":"🏋🏻‍♀️"},{"unicode":"🏋🏼‍♀️"},{"unicode":"🏋🏽‍♀️"},{"unicode":"🏋🏾‍♀️"},{"unicode":"🏋🏿‍♀️"}]},{"unicode":"🚴","tags":["bicycle","biking","cyclist"],"skins":[{"unicode":"🚴🏻"},{"unicode":"🚴🏼"},{"unicode":"🚴🏽"},{"unicode":"🚴🏾"},{"unicode":"🚴🏿"}]},{"unicode":"🚴‍♂️","tags":["bicycle","biking","cyclist","man"],"skins":[{"unicode":"🚴🏻‍♂️"},{"unicode":"🚴🏼‍♂️"},{"unicode":"🚴🏽‍♂️"},{"unicode":"🚴🏾‍♂️"},{"unicode":"🚴🏿‍♂️"}]},{"unicode":"🚴‍♀️","tags":["bicycle","biking","cyclist","woman"],"skins":[{"unicode":"🚴🏻‍♀️"},{"unicode":"🚴🏼‍♀️"},{"unicode":"🚴🏽‍♀️"},{"unicode":"🚴🏾‍♀️"},{"unicode":"🚴🏿‍♀️"}]},{"unicode":"🚵","tags":["bicycle","bicyclist","bike","cyclist","mountain"],"skins":[{"unicode":"🚵🏻"},{"unicode":"🚵🏼"},{"unicode":"🚵🏽"},{"unicode":"🚵🏾"},{"unicode":"🚵🏿"}]},{"unicode":"🚵‍♂️","tags":["bicycle","bike","cyclist","man","mountain"],"skins":[{"unicode":"🚵🏻‍♂️"},{"unicode":"🚵🏼‍♂️"},{"unicode":"🚵🏽‍♂️"},{"unicode":"🚵🏾‍♂️"},{"unicode":"🚵🏿‍♂️"}]},{"unicode":"🚵‍♀️","tags":["bicycle","bike","biking","cyclist","mountain","woman"],"skins":[{"unicode":"🚵🏻‍♀️"},{"unicode":"🚵🏼‍♀️"},{"unicode":"🚵🏽‍♀️"},{"unicode":"🚵🏾‍♀️"},{"unicode":"🚵🏿‍♀️"}]},{"unicode":"🤸","tags":["cartwheel","gymnastics"],"skins":[{"unicode":"🤸🏻"},{"unicode":"🤸🏼"},{"unicode":"🤸🏽"},{"unicode":"🤸🏾"},{"unicode":"🤸🏿"}]},{"unicode":"🤸‍♂️","tags":["cartwheel","gymnastics","man"],"skins":[{"unicode":"🤸🏻‍♂️"},{"unicode":"🤸🏼‍♂️"},{"unicode":"🤸🏽‍♂️"},{"unicode":"🤸🏾‍♂️"},{"unicode":"🤸🏿‍♂️"}]},{"unicode":"🤸‍♀️","tags":["cartwheel","gymnastics","woman"],"skins":[{"unicode":"🤸🏻‍♀️"},{"unicode":"🤸🏼‍♀️"},{"unicode":"🤸🏽‍♀️"},{"unicode":"🤸🏾‍♀️"},{"unicode":"🤸🏿‍♀️"}]},{"unicode":"🤼","tags":["wrestle","wrestler"]},{"unicode":"🤼‍♂️","tags":["men","wrestle"]},{"unicode":"🤼‍♀️","tags":["women","wrestle"]},{"unicode":"🤽","tags":["polo","water"],"skins":[{"unicode":"🤽🏻"},{"unicode":"🤽🏼"},{"unicode":"🤽🏽"},{"unicode":"🤽🏾"},{"unicode":"🤽🏿"}]},{"unicode":"🤽‍♂️","tags":["man","water polo"],"skins":[{"unicode":"🤽🏻‍♂️"},{"unicode":"🤽🏼‍♂️"},{"unicode":"🤽🏽‍♂️"},{"unicode":"🤽🏾‍♂️"},{"unicode":"🤽🏿‍♂️"}]},{"unicode":"🤽‍♀️","tags":["water polo","woman"],"skins":[{"unicode":"🤽🏻‍♀️"},{"unicode":"🤽🏼‍♀️"},{"unicode":"🤽🏽‍♀️"},{"unicode":"🤽🏾‍♀️"},{"unicode":"🤽🏿‍♀️"}]},{"unicode":"🤾","tags":["ball","handball"],"skins":[{"unicode":"🤾🏻"},{"unicode":"🤾🏼"},{"unicode":"🤾🏽"},{"unicode":"🤾🏾"},{"unicode":"🤾🏿"}]},{"unicode":"🤾‍♂️","tags":["handball","man"],"skins":[{"unicode":"🤾🏻‍♂️"},{"unicode":"🤾🏼‍♂️"},{"unicode":"🤾🏽‍♂️"},{"unicode":"🤾🏾‍♂️"},{"unicode":"🤾🏿‍♂️"}]},{"unicode":"🤾‍♀️","tags":["handball","woman"],"skins":[{"unicode":"🤾🏻‍♀️"},{"unicode":"🤾🏼‍♀️"},{"unicode":"🤾🏽‍♀️"},{"unicode":"🤾🏾‍♀️"},{"unicode":"🤾🏿‍♀️"}]},{"unicode":"🤹","tags":["balance","juggle","multitask","skill"],"skins":[{"unicode":"🤹🏻"},{"unicode":"🤹🏼"},{"unicode":"🤹🏽"},{"unicode":"🤹🏾"},{"unicode":"🤹🏿"}]},{"unicode":"🤹‍♂️","tags":["juggling","man","multitask"],"skins":[{"unicode":"🤹🏻‍♂️"},{"unicode":"🤹🏼‍♂️"},{"unicode":"🤹🏽‍♂️"},{"unicode":"🤹🏾‍♂️"},{"unicode":"🤹🏿‍♂️"}]},{"unicode":"🤹‍♀️","tags":["juggling","multitask","woman"],"skins":[{"unicode":"🤹🏻‍♀️"},{"unicode":"🤹🏼‍♀️"},{"unicode":"🤹🏽‍♀️"},{"unicode":"🤹🏾‍♀️"},{"unicode":"🤹🏿‍♀️"}]},{"unicode":"🧘","tags":["meditation","yoga"],"skins":[{"unicode":"🧘🏻"},{"unicode":"🧘🏼"},{"unicode":"🧘🏽"},{"unicode":"🧘🏾"},{"unicode":"🧘🏿"}]},{"unicode":"🧘‍♂️","tags":["meditation","yoga"],"skins":[{"unicode":"🧘🏻‍♂️"},{"unicode":"🧘🏼‍♂️"},{"unicode":"🧘🏽‍♂️"},{"unicode":"🧘🏾‍♂️"},{"unicode":"🧘🏿‍♂️"}]},{"unicode":"🧘‍♀️","tags":["meditation","yoga"],"skins":[{"unicode":"🧘🏻‍♀️"},{"unicode":"🧘🏼‍♀️"},{"unicode":"🧘🏽‍♀️"},{"unicode":"🧘🏾‍♀️"},{"unicode":"🧘🏿‍♀️"}]},{"unicode":"🛀","tags":["bath","bathtub"],"skins":[{"unicode":"🛀🏻"},{"unicode":"🛀🏼"},{"unicode":"🛀🏽"},{"unicode":"🛀🏾"},{"unicode":"🛀🏿"}]},{"unicode":"🛌","tags":["hotel","sleep"],"skins":[{"unicode":"🛌🏻"},{"unicode":"🛌🏼"},{"unicode":"🛌🏽"},{"unicode":"🛌🏾"},{"unicode":"🛌🏿"}]},{"unicode":"🧑‍🤝‍🧑","tags":["couple","hand","hold","holding hands","person"],"skins":[{"unicode":"🧑🏻‍🤝‍🧑🏻"},{"unicode":"🧑🏻‍🤝‍🧑🏼"},{"unicode":"🧑🏻‍🤝‍🧑🏽"},{"unicode":"🧑🏻‍🤝‍🧑🏾"},{"unicode":"🧑🏻‍🤝‍🧑🏿"},{"unicode":"🧑🏼‍🤝‍🧑🏻"},{"unicode":"🧑🏼‍🤝‍🧑🏼"},{"unicode":"🧑🏼‍🤝‍🧑🏽"},{"unicode":"🧑🏼‍🤝‍🧑🏾"},{"unicode":"🧑🏼‍🤝‍🧑🏿"},{"unicode":"🧑🏽‍🤝‍🧑🏻"},{"unicode":"🧑🏽‍🤝‍🧑🏼"},{"unicode":"🧑🏽‍🤝‍🧑🏽"},{"unicode":"🧑🏽‍🤝‍🧑🏾"},{"unicode":"🧑🏽‍🤝‍🧑🏿"},{"unicode":"🧑🏾‍🤝‍🧑🏻"},{"unicode":"🧑🏾‍🤝‍🧑🏼"},{"unicode":"🧑🏾‍🤝‍🧑🏽"},{"unicode":"🧑🏾‍🤝‍🧑🏾"},{"unicode":"🧑🏾‍🤝‍🧑🏿"},{"unicode":"🧑🏿‍🤝‍🧑🏻"},{"unicode":"🧑🏿‍🤝‍🧑🏼"},{"unicode":"🧑🏿‍🤝‍🧑🏽"},{"unicode":"🧑🏿‍🤝‍🧑🏾"},{"unicode":"🧑🏿‍🤝‍🧑🏿"}]},{"unicode":"👭","tags":["couple","hand","holding hands","women"],"skins":[{"unicode":"👭🏻"},{"unicode":"👭🏼"},{"unicode":"👭🏽"},{"unicode":"👭🏾"},{"unicode":"👭🏿"},{"unicode":"👩🏻‍🤝‍👩🏼"},{"unicode":"👩🏻‍🤝‍👩🏽"},{"unicode":"👩🏻‍🤝‍👩🏾"},{"unicode":"👩🏻‍🤝‍👩🏿"},{"unicode":"👩🏼‍🤝‍👩🏻"},{"unicode":"👩🏼‍🤝‍👩🏽"},{"unicode":"👩🏼‍🤝‍👩🏾"},{"unicode":"👩🏼‍🤝‍👩🏿"},{"unicode":"👩🏽‍🤝‍👩🏻"},{"unicode":"👩🏽‍🤝‍👩🏼"},{"unicode":"👩🏽‍🤝‍👩🏾"},{"unicode":"👩🏽‍🤝‍👩🏿"},{"unicode":"👩🏾‍🤝‍👩🏻"},{"unicode":"👩🏾‍🤝‍👩🏼"},{"unicode":"👩🏾‍🤝‍👩🏽"},{"unicode":"👩🏾‍🤝‍👩🏿"},{"unicode":"👩🏿‍🤝‍👩🏻"},{"unicode":"👩🏿‍🤝‍👩🏼"},{"unicode":"👩🏿‍🤝‍👩🏽"},{"unicode":"👩🏿‍🤝‍👩🏾"}]},{"unicode":"👫","tags":["couple","hand","hold","holding hands","man","woman"],"skins":[{"unicode":"👫🏻"},{"unicode":"👫🏼"},{"unicode":"👫🏽"},{"unicode":"👫🏾"},{"unicode":"👫🏿"},{"unicode":"👩🏻‍🤝‍👨🏼"},{"unicode":"👩🏻‍🤝‍👨🏽"},{"unicode":"👩🏻‍🤝‍👨🏾"},{"unicode":"👩🏻‍🤝‍👨🏿"},{"unicode":"👩🏼‍🤝‍👨🏻"},{"unicode":"👩🏼‍🤝‍👨🏽"},{"unicode":"👩🏼‍🤝‍👨🏾"},{"unicode":"👩🏼‍🤝‍👨🏿"},{"unicode":"👩🏽‍🤝‍👨🏻"},{"unicode":"👩🏽‍🤝‍👨🏼"},{"unicode":"👩🏽‍🤝‍👨🏾"},{"unicode":"👩🏽‍🤝‍👨🏿"},{"unicode":"👩🏾‍🤝‍👨🏻"},{"unicode":"👩🏾‍🤝‍👨🏼"},{"unicode":"👩🏾‍🤝‍👨🏽"},{"unicode":"👩🏾‍🤝‍👨🏿"},{"unicode":"👩🏿‍🤝‍👨🏻"},{"unicode":"👩🏿‍🤝‍👨🏼"},{"unicode":"👩🏿‍🤝‍👨🏽"},{"unicode":"👩🏿‍🤝‍👨🏾"}]},{"unicode":"👬","tags":["couple","gemini","holding hands","man","men","twins","zodiac"],"skins":[{"unicode":"👬🏻"},{"unicode":"👬🏼"},{"unicode":"👬🏽"},{"unicode":"👬🏾"},{"unicode":"👬🏿"},{"unicode":"👨🏻‍🤝‍👨🏼"},{"unicode":"👨🏻‍🤝‍👨🏽"},{"unicode":"👨🏻‍🤝‍👨🏾"},{"unicode":"👨🏻‍🤝‍👨🏿"},{"unicode":"👨🏼‍🤝‍👨🏻"},{"unicode":"👨🏼‍🤝‍👨🏽"},{"unicode":"👨🏼‍🤝‍👨🏾"},{"unicode":"👨🏼‍🤝‍👨🏿"},{"unicode":"👨🏽‍🤝‍👨🏻"},{"unicode":"👨🏽‍🤝‍👨🏼"},{"unicode":"👨🏽‍🤝‍👨🏾"},{"unicode":"👨🏽‍🤝‍👨🏿"},{"unicode":"👨🏾‍🤝‍👨🏻"},{"unicode":"👨🏾‍🤝‍👨🏼"},{"unicode":"👨🏾‍🤝‍👨🏽"},{"unicode":"👨🏾‍🤝‍👨🏿"},{"unicode":"👨🏿‍🤝‍👨🏻"},{"unicode":"👨🏿‍🤝‍👨🏼"},{"unicode":"👨🏿‍🤝‍👨🏽"},{"unicode":"👨🏿‍🤝‍👨🏾"}]},{"unicode":"💏","tags":["couple"]},{"unicode":"👩‍❤️‍💋‍👨","tags":["couple","kiss","man","woman"]},{"unicode":"👨‍❤️‍💋‍👨","tags":["couple","kiss","man"]},{"unicode":"👩‍❤️‍💋‍👩","tags":["couple","kiss","woman"]},{"unicode":"💑","tags":["couple","love"]},{"unicode":"👩‍❤️‍👨","tags":["couple","couple with heart","love","man","woman"]},{"unicode":"👨‍❤️‍👨","tags":["couple","couple with heart","love","man"]},{"unicode":"👩‍❤️‍👩","tags":["couple","couple with heart","love","woman"]},{"unicode":"👪️","tags":["family"]},{"unicode":"👨‍👩‍👦","tags":["boy","family","man","woman"]},{"unicode":"👨‍👩‍👧","tags":["family","girl","man","woman"]},{"unicode":"👨‍👩‍👧‍👦","tags":["boy","family","girl","man","woman"]},{"unicode":"👨‍👩‍👦‍👦","tags":["boy","family","man","woman"]},{"unicode":"👨‍👩‍👧‍👧","tags":["family","girl","man","woman"]},{"unicode":"👨‍👨‍👦","tags":["boy","family","man"]},{"unicode":"👨‍👨‍👧","tags":["family","girl","man"]},{"unicode":"👨‍👨‍👧‍👦","tags":["boy","family","girl","man"]},{"unicode":"👨‍👨‍👦‍👦","tags":["boy","family","man"]},{"unicode":"👨‍👨‍👧‍👧","tags":["family","girl","man"]},{"unicode":"👩‍👩‍👦","tags":["boy","family","woman"]},{"unicode":"👩‍👩‍👧","tags":["family","girl","woman"]},{"unicode":"👩‍👩‍👧‍👦","tags":["boy","family","girl","woman"]},{"unicode":"👩‍👩‍👦‍👦","tags":["boy","family","woman"]},{"unicode":"👩‍👩‍👧‍👧","tags":["family","girl","woman"]},{"unicode":"👨‍👦","tags":["boy","family","man"]},{"unicode":"👨‍👦‍👦","tags":["boy","family","man"]},{"unicode":"👨‍👧","tags":["family","girl","man"]},{"unicode":"👨‍👧‍👦","tags":["boy","family","girl","man"]},{"unicode":"👨‍👧‍👧","tags":["family","girl","man"]},{"unicode":"👩‍👦","tags":["boy","family","woman"]},{"unicode":"👩‍👦‍👦","tags":["boy","family","woman"]},{"unicode":"👩‍👧","tags":["family","girl","woman"]},{"unicode":"👩‍👧‍👦","tags":["boy","family","girl","woman"]},{"unicode":"👩‍👧‍👧","tags":["family","girl","woman"]},{"unicode":"🗣️","tags":["face","head","silhouette","speak","speaking"]},{"unicode":"👤","tags":["bust","silhouette"]},{"unicode":"👥","tags":["bust","silhouette"]},{"unicode":"🫂","tags":["goodbye","hello","hug","thanks"]},{"unicode":"👣","tags":["clothing","footprint","print"]}]},{"group":2,"emojiList":[{"unicode":"🏻","tags":["skin tone","type 1–2"]},{"unicode":"🏼","tags":["skin tone","type 3"]},{"unicode":"🏽","tags":["skin tone","type 4"]},{"unicode":"🏾","tags":["skin tone","type 5"]},{"unicode":"🏿","tags":["skin tone","type 6"]},{"unicode":"🦰","tags":["ginger","redhead"]},{"unicode":"🦱","tags":["afro","curly","ringlets"]},{"unicode":"🦳","tags":["gray","hair","old","white"]},{"unicode":"🦲","tags":["chemotherapy","hairless","no hair","shaven"]}]},{"group":3,"emojiList":[{"unicode":"🐵","tags":["face","monkey"]},{"unicode":"🐒","tags":["monkey"]},{"unicode":"🦍","tags":["gorilla"]},{"unicode":"🦧","tags":["ape"]},{"unicode":"🐶","tags":["dog","face","pet"]},{"unicode":"🐕️","tags":["pet"]},{"unicode":"🦮","tags":["accessibility","blind","guide"]},{"unicode":"🐕‍🦺","tags":["accessibility","assistance","dog","service"]},{"unicode":"🐩","tags":["dog"]},{"unicode":"🐺","tags":["face"]},{"unicode":"🦊","tags":["face"]},{"unicode":"🦝","tags":["curious","sly"]},{"unicode":"🐱","tags":["cat","face","pet"]},{"unicode":"🐈️","tags":["pet"]},{"unicode":"🐈‍⬛","tags":["black","cat","unlucky"]},{"unicode":"🦁","tags":["face","leo","zodiac"]},{"unicode":"🐯","tags":["face","tiger"]},{"unicode":"🐅","tags":["tiger"]},{"unicode":"🐆","tags":["leopard"]},{"unicode":"🐴","tags":["face","horse"]},{"unicode":"🐎","tags":["equestrian","racehorse","racing"]},{"unicode":"🦄","tags":["face"]},{"unicode":"🦓","tags":["stripe"]},{"unicode":"🦌","tags":["deer"]},{"unicode":"🦬","tags":["buffalo","herd","wisent"]},{"unicode":"🐮","tags":["cow","face"]},{"unicode":"🐂","tags":["bull","taurus","zodiac"]},{"unicode":"🐃","tags":["buffalo","water"]},{"unicode":"🐄","tags":["cow"]},{"unicode":"🐷","tags":["face","pig"]},{"unicode":"🐖","tags":["sow"]},{"unicode":"🐗","tags":["pig"]},{"unicode":"🐽","tags":["face","nose","pig"]},{"unicode":"🐏","tags":["aries","male","sheep","zodiac"]},{"unicode":"🐑","tags":["female","sheep"]},{"unicode":"🐐","tags":["capricorn","zodiac"]},{"unicode":"🐪","tags":["dromedary","hump"]},{"unicode":"🐫","tags":["bactrian","camel","hump"]},{"unicode":"🦙","tags":["alpaca","guanaco","vicuña","wool"]},{"unicode":"🦒","tags":["spots"]},{"unicode":"🐘","tags":["elephant"]},{"unicode":"🦣","tags":["extinction","large","tusk","woolly"]},{"unicode":"🦏","tags":["rhinoceros"]},{"unicode":"🦛","tags":["hippo"]},{"unicode":"🐭","tags":["face","mouse"]},{"unicode":"🐁","tags":["mouse"]},{"unicode":"🐀","tags":["rat"]},{"unicode":"🐹","tags":["face","pet"]},{"unicode":"🐰","tags":["bunny","face","pet","rabbit"]},{"unicode":"🐇","tags":["bunny","pet"]},{"unicode":"🐿️","tags":["squirrel"]},{"unicode":"🦫","tags":["dam"]},{"unicode":"🦔","tags":["spiny"]},{"unicode":"🦇","tags":["vampire"]},{"unicode":"🐻","tags":["face"]},{"unicode":"🐻‍❄️","tags":["arctic","bear","white"]},{"unicode":"🐨","tags":["bear"]},{"unicode":"🐼","tags":["face"]},{"unicode":"🦥","tags":["lazy","slow"]},{"unicode":"🦦","tags":["fishing","playful"]},{"unicode":"🦨","tags":["stink"]},{"unicode":"🦘","tags":["australia","joey","jump","marsupial"]},{"unicode":"🦡","tags":["honey badger","pester"]},{"unicode":"🐾","tags":["feet","paw","print"]},{"unicode":"🦃","tags":["bird"]},{"unicode":"🐔","tags":["bird"]},{"unicode":"🐓","tags":["bird"]},{"unicode":"🐣","tags":["baby","bird","chick","hatching"]},{"unicode":"🐤","tags":["baby","bird","chick"]},{"unicode":"🐥","tags":["baby","bird","chick"]},{"unicode":"🐦️","tags":["bird"]},{"unicode":"🐧","tags":["bird"]},{"unicode":"🕊️","tags":["bird","fly","peace"]},{"unicode":"🦅","tags":["bird"]},{"unicode":"🦆","tags":["bird"]},{"unicode":"🦢","tags":["bird","cygnet","ugly duckling"]},{"unicode":"🦉","tags":["bird","wise"]},{"unicode":"🦤","tags":["extinction","large","mauritius"]},{"unicode":"🪶","tags":["bird","flight","light","plumage"]},{"unicode":"🦩","tags":["flamboyant","tropical"]},{"unicode":"🦚","tags":["bird","ostentatious","peahen","proud"]},{"unicode":"🦜","tags":["bird","pirate","talk"]},{"unicode":"🐸","tags":["face"]},{"unicode":"🐊","tags":["crocodile"]},{"unicode":"🐢","tags":["terrapin","tortoise"]},{"unicode":"🦎","tags":["reptile"]},{"unicode":"🐍","tags":["bearer","ophiuchus","serpent","zodiac"]},{"unicode":"🐲","tags":["dragon","face","fairy tale"]},{"unicode":"🐉","tags":["fairy tale"]},{"unicode":"🦕","tags":["brachiosaurus","brontosaurus","diplodocus"]},{"unicode":"🦖","tags":["t-rex","tyrannosaurus rex"]},{"unicode":"🐳","tags":["face","spouting","whale"]},{"unicode":"🐋","tags":["whale"]},{"unicode":"🐬","tags":["flipper"]},{"unicode":"🦭","tags":["sea lion"]},{"unicode":"🐟️","tags":["pisces","zodiac"]},{"unicode":"🐠","tags":["fish","tropical"]},{"unicode":"🐡","tags":["fish"]},{"unicode":"🦈","tags":["fish"]},{"unicode":"🐙","tags":["octopus"]},{"unicode":"🐚","tags":["shell","spiral"]},{"unicode":"🐌","tags":["snail"]},{"unicode":"🦋","tags":["insect","pretty"]},{"unicode":"🐛","tags":["insect"]},{"unicode":"🐜","tags":["insect"]},{"unicode":"🐝","tags":["bee","insect"]},{"unicode":"🪲","tags":["bug","insect"]},{"unicode":"🐞","tags":["beetle","insect","ladybird","ladybug"]},{"unicode":"🦗","tags":["grasshopper"]},{"unicode":"🪳","tags":["insect","pest","roach"]},{"unicode":"🕷️","tags":["insect"]},{"unicode":"🕸️","tags":["spider","web"]},{"unicode":"🦂","tags":["scorpio","zodiac"]},{"unicode":"🦟","tags":["disease","fever","malaria","pest","virus"]},{"unicode":"🪰","tags":["disease","maggot","pest","rotting"]},{"unicode":"🪱","tags":["annelid","earthworm","parasite"]},{"unicode":"🦠","tags":["amoeba","bacteria","virus"]},{"unicode":"💐","tags":["flower"]},{"unicode":"🌸","tags":["blossom","cherry","flower"]},{"unicode":"💮","tags":["flower"]},{"unicode":"🏵️","tags":["plant"]},{"unicode":"🌹","tags":["flower"]},{"unicode":"🥀","tags":["flower","wilted"]},{"unicode":"🌺","tags":["flower"]},{"unicode":"🌻","tags":["flower","sun"]},{"unicode":"🌼","tags":["flower"]},{"unicode":"🌷","tags":["flower"]},{"unicode":"🌱","tags":["young"]},{"unicode":"🪴","tags":["boring","grow","house","nurturing","plant","useless"]},{"unicode":"🌲","tags":["tree"]},{"unicode":"🌳","tags":["deciduous","shedding","tree"]},{"unicode":"🌴","tags":["palm","tree"]},{"unicode":"🌵","tags":["plant"]},{"unicode":"🌾","tags":["ear","grain","rice"]},{"unicode":"🌿","tags":["leaf"]},{"unicode":"☘️","tags":["plant"]},{"unicode":"🍀","tags":["4","clover","four","four-leaf clover","leaf"]},{"unicode":"🍁","tags":["falling","leaf","maple"]},{"unicode":"🍂","tags":["falling","leaf"]},{"unicode":"🍃","tags":["blow","flutter","leaf","wind"]}]},{"group":4,"emojiList":[{"unicode":"🍇","tags":["fruit","grape"]},{"unicode":"🍈","tags":["fruit"]},{"unicode":"🍉","tags":["fruit"]},{"unicode":"🍊","tags":["fruit","orange"]},{"unicode":"🍋","tags":["citrus","fruit"]},{"unicode":"🍌","tags":["fruit"]},{"unicode":"🍍","tags":["fruit"]},{"unicode":"🥭","tags":["fruit","tropical"]},{"unicode":"🍎","tags":["apple","fruit","red"]},{"unicode":"🍏","tags":["apple","fruit","green"]},{"unicode":"🍐","tags":["fruit"]},{"unicode":"🍑","tags":["fruit"]},{"unicode":"🍒","tags":["berries","cherry","fruit","red"]},{"unicode":"🍓","tags":["berry","fruit"]},{"unicode":"🫐","tags":["berry","bilberry","blue","blueberry"]},{"unicode":"🥝","tags":["food","fruit","kiwi"]},{"unicode":"🍅","tags":["fruit","vegetable"]},{"unicode":"🫒","tags":["food"]},{"unicode":"🥥","tags":["palm","piña colada"]},{"unicode":"🥑","tags":["food","fruit"]},{"unicode":"🍆","tags":["aubergine","vegetable"]},{"unicode":"🥔","tags":["food","vegetable"]},{"unicode":"🥕","tags":["food","vegetable"]},{"unicode":"🌽","tags":["corn","ear","maize","maze"]},{"unicode":"🌶️","tags":["hot","pepper"]},{"unicode":"🫑","tags":["capsicum","pepper","vegetable"]},{"unicode":"🥒","tags":["food","pickle","vegetable"]},{"unicode":"🥬","tags":["bok choy","cabbage","kale","lettuce"]},{"unicode":"🥦","tags":["wild cabbage"]},{"unicode":"🧄","tags":["flavoring"]},{"unicode":"🧅","tags":["flavoring"]},{"unicode":"🍄","tags":["toadstool"]},{"unicode":"🥜","tags":["food","nut","peanut","vegetable"]},{"unicode":"🌰","tags":["plant"]},{"unicode":"🍞","tags":["loaf"]},{"unicode":"🥐","tags":["bread","breakfast","food","french","roll"]},{"unicode":"🥖","tags":["baguette","bread","food","french"]},{"unicode":"🫓","tags":["arepa","lavash","naan","pita"]},{"unicode":"🥨","tags":["twisted"]},{"unicode":"🥯","tags":["bakery","breakfast","schmear"]},{"unicode":"🥞","tags":["breakfast","crêpe","food","hotcake","pancake"]},{"unicode":"🧇","tags":["breakfast","indecisive","iron"]},{"unicode":"🧀","tags":["cheese"]},{"unicode":"🍖","tags":["bone","meat"]},{"unicode":"🍗","tags":["bone","chicken","drumstick","leg","poultry"]},{"unicode":"🥩","tags":["chop","lambchop","porkchop","steak"]},{"unicode":"🥓","tags":["breakfast","food","meat"]},{"unicode":"🍔","tags":["burger"]},{"unicode":"🍟","tags":["french","fries"]},{"unicode":"🍕","tags":["cheese","slice"]},{"unicode":"🌭","tags":["frankfurter","hotdog","sausage"]},{"unicode":"🥪","tags":["bread"]},{"unicode":"🌮","tags":["mexican"]},{"unicode":"🌯","tags":["mexican","wrap"]},{"unicode":"🫔","tags":["mexican","wrapped"]},{"unicode":"🥙","tags":["falafel","flatbread","food","gyro","kebab","stuffed"]},{"unicode":"🧆","tags":["chickpea","meatball"]},{"unicode":"🥚","tags":["breakfast","food"]},{"unicode":"🍳","tags":["breakfast","egg","frying","pan"]},{"unicode":"🥘","tags":["casserole","food","paella","pan","shallow"]},{"unicode":"🍲","tags":["pot","stew"]},{"unicode":"🫕","tags":["cheese","chocolate","melted","pot","swiss"]},{"unicode":"🥣","tags":["breakfast","cereal","congee"]},{"unicode":"🥗","tags":["food","green","salad"]},{"unicode":"🍿","tags":["popcorn"]},{"unicode":"🧈","tags":["dairy"]},{"unicode":"🧂","tags":["condiment","shaker"]},{"unicode":"🥫","tags":["can"]},{"unicode":"🍱","tags":["bento","box"]},{"unicode":"🍘","tags":["cracker","rice"]},{"unicode":"🍙","tags":["ball","japanese","rice"]},{"unicode":"🍚","tags":["cooked","rice"]},{"unicode":"🍛","tags":["curry","rice"]},{"unicode":"🍜","tags":["bowl","noodle","ramen","steaming"]},{"unicode":"🍝","tags":["pasta"]},{"unicode":"🍠","tags":["potato","roasted","sweet"]},{"unicode":"🍢","tags":["kebab","seafood","skewer","stick"]},{"unicode":"🍣","tags":["sushi"]},{"unicode":"🍤","tags":["fried","prawn","shrimp","tempura"]},{"unicode":"🍥","tags":["cake","fish","pastry","swirl"]},{"unicode":"🥮","tags":["autumn","festival","yuèbǐng"]},{"unicode":"🍡","tags":["dessert","japanese","skewer","stick","sweet"]},{"unicode":"🥟","tags":["empanada","gyōza","jiaozi","pierogi","potsticker"]},{"unicode":"🥠","tags":["prophecy"]},{"unicode":"🥡","tags":["oyster pail"]},{"unicode":"🦀","tags":["cancer","zodiac"]},{"unicode":"🦞","tags":["bisque","claws","seafood"]},{"unicode":"🦐","tags":["food","shellfish","small"]},{"unicode":"🦑","tags":["food","molusc"]},{"unicode":"🦪","tags":["diving","pearl"]},{"unicode":"🍦","tags":["cream","dessert","ice","icecream","soft","sweet"]},{"unicode":"🍧","tags":["dessert","ice","shaved","sweet"]},{"unicode":"🍨","tags":["cream","dessert","ice","sweet"]},{"unicode":"🍩","tags":["breakfast","dessert","donut","sweet"]},{"unicode":"🍪","tags":["dessert","sweet"]},{"unicode":"🎂","tags":["birthday","cake","celebration","dessert","pastry","sweet"]},{"unicode":"🍰","tags":["cake","dessert","pastry","slice","sweet"]},{"unicode":"🧁","tags":["bakery","sweet"]},{"unicode":"🥧","tags":["filling","pastry"]},{"unicode":"🍫","tags":["bar","chocolate","dessert","sweet"]},{"unicode":"🍬","tags":["dessert","sweet"]},{"unicode":"🍭","tags":["candy","dessert","sweet"]},{"unicode":"🍮","tags":["dessert","pudding","sweet"]},{"unicode":"🍯","tags":["honey","honeypot","pot","sweet"]},{"unicode":"🍼","tags":["baby","bottle","drink","milk"]},{"unicode":"🥛","tags":["drink","glass","milk"]},{"unicode":"☕️","tags":["beverage","coffee","drink","hot","steaming","tea"]},{"unicode":"🫖","tags":["drink","pot","tea"]},{"unicode":"🍵","tags":["beverage","cup","drink","tea","teacup"]},{"unicode":"🍶","tags":["bar","beverage","bottle","cup","drink"]},{"unicode":"🍾","tags":["bar","bottle","cork","drink","popping"]},{"unicode":"🍷","tags":["bar","beverage","drink","glass","wine"]},{"unicode":"🍸️","tags":["bar","cocktail","drink","glass"]},{"unicode":"🍹","tags":["bar","drink","tropical"]},{"unicode":"🍺","tags":["bar","beer","drink","mug"]},{"unicode":"🍻","tags":["bar","beer","clink","drink","mug"]},{"unicode":"🥂","tags":["celebrate","clink","drink","glass"]},{"unicode":"🥃","tags":["glass","liquor","shot","tumbler","whisky"]},{"unicode":"🥤","tags":["juice","soda"]},{"unicode":"🧋","tags":["bubble","milk","pearl","tea"]},{"unicode":"🧃","tags":["beverage","box","juice","straw","sweet"]},{"unicode":"🧉","tags":["drink"]},{"unicode":"🧊","tags":["cold","ice cube","iceberg"]},{"unicode":"🥢","tags":["hashi"]},{"unicode":"🍽️","tags":["cooking","fork","knife","plate"]},{"unicode":"🍴","tags":["cooking","cutlery","fork","knife"]},{"unicode":"🥄","tags":["tableware"]},{"unicode":"🔪","tags":["cooking","hocho","knife","tool","weapon"]},{"unicode":"🏺","tags":["aquarius","cooking","drink","jug","zodiac"]}]},{"group":5,"emojiList":[{"unicode":"🌍️","tags":["africa","earth","europe","globe","globe showing europe-africa","world"]},{"unicode":"🌎️","tags":["americas","earth","globe","globe showing americas","world"]},{"unicode":"🌏️","tags":["asia","australia","earth","globe","globe showing asia-australia","world"]},{"unicode":"🌐","tags":["earth","globe","meridians","world"]},{"unicode":"🗺️","tags":["map","world"]},{"unicode":"🗾","tags":["japan","map","map of japan"]},{"unicode":"🧭","tags":["magnetic","navigation","orienteering"]},{"unicode":"🏔️","tags":["cold","mountain","snow"]},{"unicode":"⛰️","tags":["mountain"]},{"unicode":"🌋","tags":["eruption","mountain"]},{"unicode":"🗻","tags":["fuji","mountain"]},{"unicode":"🏕️","tags":["camping"]},{"unicode":"🏖️","tags":["beach","umbrella"]},{"unicode":"🏜️","tags":["desert"]},{"unicode":"🏝️","tags":["desert","island"]},{"unicode":"🏞️","tags":["park"]},{"unicode":"🏟️","tags":["stadium"]},{"unicode":"🏛️","tags":["classical"]},{"unicode":"🏗️","tags":["construction"]},{"unicode":"🧱","tags":["bricks","clay","mortar","wall"]},{"unicode":"🪨","tags":["boulder","heavy","solid","stone"]},{"unicode":"🪵","tags":["log","lumber","timber"]},{"unicode":"🛖","tags":["house","roundhouse","yurt"]},{"unicode":"🏘️","tags":["houses"]},{"unicode":"🏚️","tags":["derelict","house"]},{"unicode":"🏠️","tags":["home"]},{"unicode":"🏡","tags":["garden","home","house"]},{"unicode":"🏢","tags":["building"]},{"unicode":"🏣","tags":["japanese","japanese post office","post"]},{"unicode":"🏤","tags":["european","post"]},{"unicode":"🏥","tags":["doctor","medicine"]},{"unicode":"🏦","tags":["building"]},{"unicode":"🏨","tags":["building"]},{"unicode":"🏩","tags":["hotel","love"]},{"unicode":"🏪","tags":["convenience","store"]},{"unicode":"🏫","tags":["building"]},{"unicode":"🏬","tags":["department","store"]},{"unicode":"🏭️","tags":["building"]},{"unicode":"🏯","tags":["castle","japanese"]},{"unicode":"🏰","tags":["european"]},{"unicode":"💒","tags":["chapel","romance"]},{"unicode":"🗼","tags":["tokyo","tower"]},{"unicode":"🗽","tags":["liberty","statue","statue of liberty"]},{"unicode":"⛪️","tags":["christian","cross","religion"]},{"unicode":"🕌","tags":["islam","muslim","religion"]},{"unicode":"🛕","tags":["hindu","temple"]},{"unicode":"🕍","tags":["jew","jewish","religion","temple"]},{"unicode":"⛩️","tags":["religion","shinto","shrine"]},{"unicode":"🕋","tags":["islam","muslim","religion"]},{"unicode":"⛲️","tags":["fountain"]},{"unicode":"⛺️","tags":["camping"]},{"unicode":"🌁","tags":["fog"]},{"unicode":"🌃","tags":["night","star"]},{"unicode":"🏙️","tags":["city"]},{"unicode":"🌄","tags":["morning","mountain","sun","sunrise"]},{"unicode":"🌅","tags":["morning","sun"]},{"unicode":"🌆","tags":["city","dusk","evening","landscape","sunset"]},{"unicode":"🌇","tags":["dusk","sun"]},{"unicode":"🌉","tags":["bridge","night"]},{"unicode":"♨️","tags":["hot","hotsprings","springs","steaming"]},{"unicode":"🎠","tags":["carousel","horse"]},{"unicode":"🎡","tags":["amusement park","ferris","wheel"]},{"unicode":"🎢","tags":["amusement park","coaster","roller"]},{"unicode":"💈","tags":["barber","haircut","pole"]},{"unicode":"🎪","tags":["circus","tent"]},{"unicode":"🚂","tags":["engine","railway","steam","train"]},{"unicode":"🚃","tags":["car","electric","railway","train","tram","trolleybus"]},{"unicode":"🚄","tags":["railway","shinkansen","speed","train"]},{"unicode":"🚅","tags":["bullet","railway","shinkansen","speed","train"]},{"unicode":"🚆","tags":["railway"]},{"unicode":"🚇️","tags":["subway"]},{"unicode":"🚈","tags":["railway"]},{"unicode":"🚉","tags":["railway","train"]},{"unicode":"🚊","tags":["trolleybus"]},{"unicode":"🚝","tags":["vehicle"]},{"unicode":"🚞","tags":["car","mountain","railway"]},{"unicode":"🚋","tags":["car","tram","trolleybus"]},{"unicode":"🚌","tags":["vehicle"]},{"unicode":"🚍️","tags":["bus","oncoming"]},{"unicode":"🚎","tags":["bus","tram","trolley"]},{"unicode":"🚐","tags":["bus"]},{"unicode":"🚑️","tags":["vehicle"]},{"unicode":"🚒","tags":["engine","fire","truck"]},{"unicode":"🚓","tags":["car","patrol","police"]},{"unicode":"🚔️","tags":["car","oncoming","police"]},{"unicode":"🚕","tags":["vehicle"]},{"unicode":"🚖","tags":["oncoming","taxi"]},{"unicode":"🚗","tags":["car"]},{"unicode":"🚘️","tags":["automobile","car","oncoming"]},{"unicode":"🚙","tags":["recreational","sport utility"]},{"unicode":"🛻","tags":["pick-up","pickup","truck"]},{"unicode":"🚚","tags":["delivery","truck"]},{"unicode":"🚛","tags":["lorry","semi","truck"]},{"unicode":"🚜","tags":["vehicle"]},{"unicode":"🏎️","tags":["car","racing"]},{"unicode":"🏍️","tags":["racing"]},{"unicode":"🛵","tags":["motor","scooter"]},{"unicode":"🦽","tags":["accessibility"]},{"unicode":"🦼","tags":["accessibility"]},{"unicode":"🛺","tags":["tuk tuk"]},{"unicode":"🚲️","tags":["bike"]},{"unicode":"🛴","tags":["kick","scooter"]},{"unicode":"🛹","tags":["board"]},{"unicode":"🛼","tags":["roller","skate"]},{"unicode":"🚏","tags":["bus","busstop","stop"]},{"unicode":"🛣️","tags":["highway","road"]},{"unicode":"🛤️","tags":["railway","train"]},{"unicode":"🛢️","tags":["drum","oil"]},{"unicode":"⛽️","tags":["diesel","fuel","fuelpump","gas","pump","station"]},{"unicode":"🚨","tags":["beacon","car","light","police","revolving"]},{"unicode":"🚥","tags":["light","signal","traffic"]},{"unicode":"🚦","tags":["light","signal","traffic"]},{"unicode":"🛑","tags":["octagonal","sign","stop"]},{"unicode":"🚧","tags":["barrier"]},{"unicode":"⚓️","tags":["ship","tool"]},{"unicode":"⛵️","tags":["boat","resort","sea","yacht"]},{"unicode":"🛶","tags":["boat"]},{"unicode":"🚤","tags":["boat"]},{"unicode":"🛳️","tags":["passenger","ship"]},{"unicode":"⛴️","tags":["boat","passenger"]},{"unicode":"🛥️","tags":["boat","motorboat"]},{"unicode":"🚢","tags":["boat","passenger"]},{"unicode":"✈️","tags":["aeroplane"]},{"unicode":"🛩️","tags":["aeroplane","airplane"]},{"unicode":"🛫","tags":["aeroplane","airplane","check-in","departure","departures"]},{"unicode":"🛬","tags":["aeroplane","airplane","arrivals","arriving","landing"]},{"unicode":"🪂","tags":["hang-glide","parasail","skydive"]},{"unicode":"💺","tags":["chair"]},{"unicode":"🚁","tags":["vehicle"]},{"unicode":"🚟","tags":["railway","suspension"]},{"unicode":"🚠","tags":["cable","gondola","mountain"]},{"unicode":"🚡","tags":["aerial","cable","car","gondola","tramway"]},{"unicode":"🛰️","tags":["space"]},{"unicode":"🚀","tags":["space"]},{"unicode":"🛸","tags":["ufo"]},{"unicode":"🛎️","tags":["bell","bellhop","hotel"]},{"unicode":"🧳","tags":["packing","travel"]},{"unicode":"⌛️","tags":["sand","timer"]},{"unicode":"⏳️","tags":["hourglass","sand","timer"]},{"unicode":"⌚️","tags":["clock"]},{"unicode":"⏰","tags":["alarm","clock"]},{"unicode":"⏱️","tags":["clock"]},{"unicode":"⏲️","tags":["clock","timer"]},{"unicode":"🕰️","tags":["clock"]},{"unicode":"🕛️","tags":["00","12","12:00","clock","o’clock","twelve"]},{"unicode":"🕧️","tags":["12","12:30","clock","thirty","twelve"]},{"unicode":"🕐️","tags":["00","1","1:00","clock","one","o’clock"]},{"unicode":"🕜️","tags":["1","1:30","clock","one","thirty"]},{"unicode":"🕑️","tags":["00","2","2:00","clock","o’clock","two"]},{"unicode":"🕝️","tags":["2","2:30","clock","thirty","two"]},{"unicode":"🕒️","tags":["00","3","3:00","clock","o’clock","three"]},{"unicode":"🕞️","tags":["3","3:30","clock","thirty","three"]},{"unicode":"🕓️","tags":["00","4","4:00","clock","four","o’clock"]},{"unicode":"🕟️","tags":["4","4:30","clock","four","thirty"]},{"unicode":"🕔️","tags":["00","5","5:00","clock","five","o’clock"]},{"unicode":"🕠️","tags":["5","5:30","clock","five","thirty"]},{"unicode":"🕕️","tags":["00","6","6:00","clock","o’clock","six"]},{"unicode":"🕡️","tags":["6","6:30","clock","six","thirty"]},{"unicode":"🕖️","tags":["00","7","7:00","clock","o’clock","seven"]},{"unicode":"🕢️","tags":["7","7:30","clock","seven","thirty"]},{"unicode":"🕗️","tags":["00","8","8:00","clock","eight","o’clock"]},{"unicode":"🕣️","tags":["8","8:30","clock","eight","thirty"]},{"unicode":"🕘️","tags":["00","9","9:00","clock","nine","o’clock"]},{"unicode":"🕤️","tags":["9","9:30","clock","nine","thirty"]},{"unicode":"🕙️","tags":["00","10","10:00","clock","o’clock","ten"]},{"unicode":"🕥️","tags":["10","10:30","clock","ten","thirty"]},{"unicode":"🕚️","tags":["00","11","11:00","clock","eleven","o’clock"]},{"unicode":"🕦️","tags":["11","11:30","clock","eleven","thirty"]},{"unicode":"🌑","tags":["dark","moon"]},{"unicode":"🌒","tags":["crescent","moon","waxing"]},{"unicode":"🌓","tags":["moon","quarter"]},{"unicode":"🌔","tags":["gibbous","moon","waxing"]},{"unicode":"🌕️","tags":["full","moon"]},{"unicode":"🌖","tags":["gibbous","moon","waning"]},{"unicode":"🌗","tags":["moon","quarter"]},{"unicode":"🌘","tags":["crescent","moon","waning"]},{"unicode":"🌙","tags":["crescent","moon"]},{"unicode":"🌚","tags":["face","moon"]},{"unicode":"🌛","tags":["face","moon","quarter"]},{"unicode":"🌜️","tags":["face","moon","quarter"]},{"unicode":"🌡️","tags":["weather"]},{"unicode":"☀️","tags":["bright","rays","sunny"]},{"unicode":"🌝","tags":["bright","face","full","moon"]},{"unicode":"🌞","tags":["bright","face","sun"]},{"unicode":"🪐","tags":["saturn","saturnine"]},{"unicode":"⭐️","tags":["star"]},{"unicode":"🌟","tags":["glittery","glow","shining","sparkle","star"]},{"unicode":"🌠","tags":["falling","shooting","star"]},{"unicode":"🌌","tags":["space"]},{"unicode":"☁️","tags":["weather"]},{"unicode":"⛅️","tags":["cloud","sun"]},{"unicode":"⛈️","tags":["cloud","rain","thunder"]},{"unicode":"🌤️","tags":["cloud","sun"]},{"unicode":"🌥️","tags":["cloud","sun"]},{"unicode":"🌦️","tags":["cloud","rain","sun"]},{"unicode":"🌧️","tags":["cloud","rain"]},{"unicode":"🌨️","tags":["cloud","cold","snow"]},{"unicode":"🌩️","tags":["cloud","lightning"]},{"unicode":"🌪️","tags":["cloud","whirlwind"]},{"unicode":"🌫️","tags":["cloud"]},{"unicode":"🌬️","tags":["blow","cloud","face","wind"]},{"unicode":"🌀","tags":["dizzy","hurricane","twister","typhoon"]},{"unicode":"🌈","tags":["rain"]},{"unicode":"🌂","tags":["clothing","rain","umbrella"]},{"unicode":"☂️","tags":["clothing","rain"]},{"unicode":"☔️","tags":["clothing","drop","rain","umbrella"]},{"unicode":"⛱️","tags":["rain","sun","umbrella"]},{"unicode":"⚡️","tags":["danger","electric","lightning","voltage","zap"]},{"unicode":"❄️","tags":["cold","snow"]},{"unicode":"☃️","tags":["cold","snow"]},{"unicode":"⛄️","tags":["cold","snow","snowman"]},{"unicode":"☄️","tags":["space"]},{"unicode":"🔥","tags":["flame","tool"]},{"unicode":"💧","tags":["cold","comic","drop","sweat"]},{"unicode":"🌊","tags":["ocean","water","wave"]}]},{"group":6,"emojiList":[{"unicode":"🎃","tags":["celebration","halloween","jack","lantern"]},{"unicode":"🎄","tags":["celebration","christmas","tree"]},{"unicode":"🎆","tags":["celebration"]},{"unicode":"🎇","tags":["celebration","fireworks","sparkle"]},{"unicode":"🧨","tags":["dynamite","explosive","fireworks"]},{"unicode":"✨","tags":["*","sparkle","star"]},{"unicode":"🎈","tags":["celebration"]},{"unicode":"🎉","tags":["celebration","party","popper","tada"]},{"unicode":"🎊","tags":["ball","celebration","confetti"]},{"unicode":"🎋","tags":["banner","celebration","japanese","tree"]},{"unicode":"🎍","tags":["bamboo","celebration","japanese","pine"]},{"unicode":"🎎","tags":["celebration","doll","festival","japanese","japanese dolls"]},{"unicode":"🎏","tags":["carp","celebration","streamer"]},{"unicode":"🎐","tags":["bell","celebration","chime","wind"]},{"unicode":"🎑","tags":["celebration","ceremony","moon"]},{"unicode":"🧧","tags":["gift","good luck","hóngbāo","lai see","money"]},{"unicode":"🎀","tags":["celebration"]},{"unicode":"🎁","tags":["box","celebration","gift","present","wrapped"]},{"unicode":"🎗️","tags":["celebration","reminder","ribbon"]},{"unicode":"🎟️","tags":["admission","ticket"]},{"unicode":"🎫","tags":["admission"]},{"unicode":"🎖️","tags":["celebration","medal","military"]},{"unicode":"🏆️","tags":["prize"]},{"unicode":"🏅","tags":["medal"]},{"unicode":"🥇","tags":["first","gold","medal"]},{"unicode":"🥈","tags":["medal","second","silver"]},{"unicode":"🥉","tags":["bronze","medal","third"]},{"unicode":"⚽️","tags":["ball","football","soccer"]},{"unicode":"⚾️","tags":["ball"]},{"unicode":"🥎","tags":["ball","glove","underarm"]},{"unicode":"🏀","tags":["ball","hoop"]},{"unicode":"🏐","tags":["ball","game"]},{"unicode":"🏈","tags":["american","ball","football"]},{"unicode":"🏉","tags":["ball","football","rugby"]},{"unicode":"🎾","tags":["ball","racquet"]},{"unicode":"🥏","tags":["ultimate"]},{"unicode":"🎳","tags":["ball","game"]},{"unicode":"🏏","tags":["ball","bat","game"]},{"unicode":"🏑","tags":["ball","field","game","hockey","stick"]},{"unicode":"🏒","tags":["game","hockey","ice","puck","stick"]},{"unicode":"🥍","tags":["ball","goal","stick"]},{"unicode":"🏓","tags":["ball","bat","game","paddle","table tennis"]},{"unicode":"🏸","tags":["birdie","game","racquet","shuttlecock"]},{"unicode":"🥊","tags":["boxing","glove"]},{"unicode":"🥋","tags":["judo","karate","martial arts","taekwondo","uniform"]},{"unicode":"🥅","tags":["goal","net"]},{"unicode":"⛳️","tags":["golf","hole"]},{"unicode":"⛸️","tags":["ice","skate"]},{"unicode":"🎣","tags":["fish","pole"]},{"unicode":"🤿","tags":["diving","scuba","snorkeling"]},{"unicode":"🎽","tags":["athletics","running","sash","shirt"]},{"unicode":"🎿","tags":["ski","snow"]},{"unicode":"🛷","tags":["sledge","sleigh"]},{"unicode":"🥌","tags":["game","rock"]},{"unicode":"🎯","tags":["bullseye","dart","game","hit","target"]},{"unicode":"🪀","tags":["fluctuate","toy"]},{"unicode":"🪁","tags":["fly","soar"]},{"unicode":"🎱","tags":["8","ball","billiard","eight","game"]},{"unicode":"🔮","tags":["ball","crystal","fairy tale","fantasy","fortune","tool"]},{"unicode":"🪄","tags":["magic","witch","wizard"]},{"unicode":"🧿","tags":["bead","charm","evil-eye","nazar","talisman"]},{"unicode":"🎮️","tags":["controller","game"]},{"unicode":"🕹️","tags":["game","video game"]},{"unicode":"🎰","tags":["game","slot"]},{"unicode":"🎲","tags":["dice","die","game"]},{"unicode":"🧩","tags":["clue","interlocking","jigsaw","piece","puzzle"]},{"unicode":"🧸","tags":["plaything","plush","stuffed","toy"]},{"unicode":"🪅","tags":["celebration","party"]},{"unicode":"🪆","tags":["doll","nesting","russia"]},{"unicode":"♠️","tags":["card","game"]},{"unicode":"♥️","tags":["card","game"]},{"unicode":"♦️","tags":["card","game"]},{"unicode":"♣️","tags":["card","game"]},{"unicode":"♟️","tags":["chess","dupe","expendable"]},{"unicode":"🃏","tags":["card","game","wildcard"]},{"unicode":"🀄️","tags":["game","mahjong","red"]},{"unicode":"🎴","tags":["card","flower","game","japanese","playing"]},{"unicode":"🎭️","tags":["art","mask","performing","theater","theatre"]},{"unicode":"🖼️","tags":["art","frame","museum","painting","picture"]},{"unicode":"🎨","tags":["art","museum","painting","palette"]},{"unicode":"🧵","tags":["needle","sewing","spool","string"]},{"unicode":"🪡","tags":["embroidery","needle","sewing","stitches","sutures","tailoring"]},{"unicode":"🧶","tags":["ball","crochet","knit"]},{"unicode":"🪢","tags":["rope","tangled","tie","twine","twist"]}]},{"group":7,"emojiList":[{"unicode":"👓️","tags":["clothing","eye","eyeglasses","eyewear"]},{"unicode":"🕶️","tags":["dark","eye","eyewear","glasses"]},{"unicode":"🥽","tags":["eye protection","swimming","welding"]},{"unicode":"🥼","tags":["doctor","experiment","scientist"]},{"unicode":"🦺","tags":["emergency","safety","vest"]},{"unicode":"👔","tags":["clothing","tie"]},{"unicode":"👕","tags":["clothing","shirt","tshirt"]},{"unicode":"👖","tags":["clothing","pants","trousers"]},{"unicode":"🧣","tags":["neck"]},{"unicode":"🧤","tags":["hand"]},{"unicode":"🧥","tags":["jacket"]},{"unicode":"🧦","tags":["stocking"]},{"unicode":"👗","tags":["clothing"]},{"unicode":"👘","tags":["clothing"]},{"unicode":"🥻","tags":["clothing","dress"]},{"unicode":"🩱","tags":["bathing suit"]},{"unicode":"🩲","tags":["bathing suit","one-piece","swimsuit","underwear"]},{"unicode":"🩳","tags":["bathing suit","pants","underwear"]},{"unicode":"👙","tags":["clothing","swim"]},{"unicode":"👚","tags":["clothing","woman"]},{"unicode":"👛","tags":["clothing","coin"]},{"unicode":"👜","tags":["bag","clothing","purse"]},{"unicode":"👝","tags":["bag","clothing","pouch"]},{"unicode":"🛍️","tags":["bag","hotel","shopping"]},{"unicode":"🎒","tags":["bag","rucksack","satchel","school"]},{"unicode":"🩴","tags":["beach sandals","sandals","thong sandals","thongs","zōri"]},{"unicode":"👞","tags":["clothing","man","shoe"]},{"unicode":"👟","tags":["athletic","clothing","shoe","sneaker"]},{"unicode":"🥾","tags":["backpacking","boot","camping","hiking"]},{"unicode":"🥿","tags":["ballet flat","slip-on","slipper"]},{"unicode":"👠","tags":["clothing","heel","shoe","woman"]},{"unicode":"👡","tags":["clothing","sandal","shoe","woman"]},{"unicode":"🩰","tags":["ballet","dance"]},{"unicode":"👢","tags":["boot","clothing","shoe","woman"]},{"unicode":"👑","tags":["clothing","king","queen"]},{"unicode":"👒","tags":["clothing","hat","woman"]},{"unicode":"🎩","tags":["clothing","hat","top","tophat"]},{"unicode":"🎓️","tags":["cap","celebration","clothing","graduation","hat"]},{"unicode":"🧢","tags":["baseball cap"]},{"unicode":"🪖","tags":["army","helmet","military","soldier","warrior"]},{"unicode":"⛑️","tags":["aid","cross","face","hat","helmet"]},{"unicode":"📿","tags":["beads","clothing","necklace","prayer","religion"]},{"unicode":"💄","tags":["cosmetics","makeup"]},{"unicode":"💍","tags":["diamond"]},{"unicode":"💎","tags":["diamond","gem","jewel"]},{"unicode":"🔇","tags":["mute","quiet","silent","speaker"]},{"unicode":"🔈️","tags":["soft"]},{"unicode":"🔉","tags":["medium"]},{"unicode":"🔊","tags":["loud"]},{"unicode":"📢","tags":["loud","public address"]},{"unicode":"📣","tags":["cheering"]},{"unicode":"📯","tags":["horn","post","postal"]},{"unicode":"🔔","tags":["bell"]},{"unicode":"🔕","tags":["bell","forbidden","mute","quiet","silent"]},{"unicode":"🎼","tags":["music","score"]},{"unicode":"🎵","tags":["music","note"]},{"unicode":"🎶","tags":["music","note","notes"]},{"unicode":"🎙️","tags":["mic","microphone","music","studio"]},{"unicode":"🎚️","tags":["level","music","slider"]},{"unicode":"🎛️","tags":["control","knobs","music"]},{"unicode":"🎤","tags":["karaoke","mic"]},{"unicode":"🎧️","tags":["earbud"]},{"unicode":"📻️","tags":["video"]},{"unicode":"🎷","tags":["instrument","music","sax"]},{"unicode":"🪗","tags":["accordian","concertina","squeeze box"]},{"unicode":"🎸","tags":["instrument","music"]},{"unicode":"🎹","tags":["instrument","keyboard","music","piano"]},{"unicode":"🎺","tags":["instrument","music"]},{"unicode":"🎻","tags":["instrument","music"]},{"unicode":"🪕","tags":["music","stringed"]},{"unicode":"🥁","tags":["drumsticks","music"]},{"unicode":"🪘","tags":["beat","conga","drum","rhythm"]},{"unicode":"📱","tags":["cell","mobile","phone","telephone"]},{"unicode":"📲","tags":["arrow","cell","mobile","phone","receive"]},{"unicode":"☎️","tags":["phone"]},{"unicode":"📞","tags":["phone","receiver","telephone"]},{"unicode":"📟️","tags":["pager"]},{"unicode":"📠","tags":["fax"]},{"unicode":"🔋","tags":["battery"]},{"unicode":"🔌","tags":["electric","electricity","plug"]},{"unicode":"💻️","tags":["computer","pc","personal"]},{"unicode":"🖥️","tags":["computer","desktop"]},{"unicode":"🖨️","tags":["computer"]},{"unicode":"⌨️","tags":["computer"]},{"unicode":"🖱️","tags":["computer"]},{"unicode":"🖲️","tags":["computer"]},{"unicode":"💽","tags":["computer","disk","minidisk","optical"]},{"unicode":"💾","tags":["computer","disk","floppy"]},{"unicode":"💿️","tags":["cd","computer","disk","optical"]},{"unicode":"📀","tags":["blu-ray","computer","disk","optical"]},{"unicode":"🧮","tags":["calculation"]},{"unicode":"🎥","tags":["camera","cinema","movie"]},{"unicode":"🎞️","tags":["cinema","film","frames","movie"]},{"unicode":"📽️","tags":["cinema","film","movie","projector","video"]},{"unicode":"🎬️","tags":["clapper","movie"]},{"unicode":"📺️","tags":["tv","video"]},{"unicode":"📷️","tags":["video"]},{"unicode":"📸","tags":["camera","flash","video"]},{"unicode":"📹️","tags":["camera","video"]},{"unicode":"📼","tags":["tape","vhs","video"]},{"unicode":"🔍️","tags":["glass","magnifying","search","tool"]},{"unicode":"🔎","tags":["glass","magnifying","search","tool"]},{"unicode":"🕯️","tags":["light"]},{"unicode":"💡","tags":["bulb","comic","electric","idea","light"]},{"unicode":"🔦","tags":["electric","light","tool","torch"]},{"unicode":"🏮","tags":["bar","lantern","light","red"]},{"unicode":"🪔","tags":["diya","lamp","oil"]},{"unicode":"📔","tags":["book","cover","decorated","notebook"]},{"unicode":"📕","tags":["book","closed"]},{"unicode":"📖","tags":["book","open"]},{"unicode":"📗","tags":["book","green"]},{"unicode":"📘","tags":["blue","book"]},{"unicode":"📙","tags":["book","orange"]},{"unicode":"📚️","tags":["book"]},{"unicode":"📓","tags":["notebook"]},{"unicode":"📒","tags":["notebook"]},{"unicode":"📃","tags":["curl","document","page"]},{"unicode":"📜","tags":["paper"]},{"unicode":"📄","tags":["document","page"]},{"unicode":"📰","tags":["news","paper"]},{"unicode":"🗞️","tags":["news","newspaper","paper","rolled"]},{"unicode":"📑","tags":["bookmark","mark","marker","tabs"]},{"unicode":"🔖","tags":["mark"]},{"unicode":"🏷️","tags":["label"]},{"unicode":"💰️","tags":["bag","dollar","money","moneybag"]},{"unicode":"🪙","tags":["gold","metal","money","silver","treasure"]},{"unicode":"💴","tags":["banknote","bill","currency","money","note","yen"]},{"unicode":"💵","tags":["banknote","bill","currency","dollar","money","note"]},{"unicode":"💶","tags":["banknote","bill","currency","euro","money","note"]},{"unicode":"💷","tags":["banknote","bill","currency","money","note","pound"]},{"unicode":"💸","tags":["banknote","bill","fly","money","wings"]},{"unicode":"💳️","tags":["card","credit","money"]},{"unicode":"🧾","tags":["accounting","bookkeeping","evidence","proof"]},{"unicode":"💹","tags":["chart","graph","growth","money","yen"]},{"unicode":"✉️","tags":["email","letter"]},{"unicode":"📧","tags":["email","letter","mail"]},{"unicode":"📨","tags":["e-mail","email","envelope","incoming","letter","receive"]},{"unicode":"📩","tags":["arrow","e-mail","email","envelope","outgoing"]},{"unicode":"📤️","tags":["box","letter","mail","outbox","sent","tray"]},{"unicode":"📥️","tags":["box","inbox","letter","mail","receive","tray"]},{"unicode":"📦️","tags":["box","parcel"]},{"unicode":"📫️","tags":["closed","mail","mailbox","postbox"]},{"unicode":"📪️","tags":["closed","lowered","mail","mailbox","postbox"]},{"unicode":"📬️","tags":["mail","mailbox","open","postbox"]},{"unicode":"📭️","tags":["lowered","mail","mailbox","open","postbox"]},{"unicode":"📮","tags":["mail","mailbox"]},{"unicode":"🗳️","tags":["ballot","box"]},{"unicode":"✏️","tags":["pencil"]},{"unicode":"✒️","tags":["nib","pen"]},{"unicode":"🖋️","tags":["fountain","pen"]},{"unicode":"🖊️","tags":["ballpoint"]},{"unicode":"🖌️","tags":["painting"]},{"unicode":"🖍️","tags":["crayon"]},{"unicode":"📝","tags":["pencil"]},{"unicode":"💼","tags":["briefcase"]},{"unicode":"📁","tags":["file","folder"]},{"unicode":"📂","tags":["file","folder","open"]},{"unicode":"🗂️","tags":["card","dividers","index"]},{"unicode":"📅","tags":["date"]},{"unicode":"📆","tags":["calendar"]},{"unicode":"🗒️","tags":["note","pad","spiral"]},{"unicode":"🗓️","tags":["calendar","pad","spiral"]},{"unicode":"📇","tags":["card","index","rolodex"]},{"unicode":"📈","tags":["chart","graph","growth","trend","upward"]},{"unicode":"📉","tags":["chart","down","graph","trend"]},{"unicode":"📊","tags":["bar","chart","graph"]},{"unicode":"📋️","tags":["clipboard"]},{"unicode":"📌","tags":["pin"]},{"unicode":"📍","tags":["pin","pushpin"]},{"unicode":"📎","tags":["paperclip"]},{"unicode":"🖇️","tags":["link","paperclip"]},{"unicode":"📏","tags":["ruler","straight edge"]},{"unicode":"📐","tags":["ruler","set","triangle"]},{"unicode":"✂️","tags":["cutting","tool"]},{"unicode":"🗃️","tags":["box","card","file"]},{"unicode":"🗄️","tags":["cabinet","file","filing"]},{"unicode":"🗑️","tags":["wastebasket"]},{"unicode":"🔒️","tags":["closed"]},{"unicode":"🔓️","tags":["lock","open","unlock"]},{"unicode":"🔏","tags":["ink","lock","nib","pen","privacy"]},{"unicode":"🔐","tags":["closed","key","lock","secure"]},{"unicode":"🔑","tags":["lock","password"]},{"unicode":"🗝️","tags":["clue","key","lock","old"]},{"unicode":"🔨","tags":["tool"]},{"unicode":"🪓","tags":["chop","hatchet","split","wood"]},{"unicode":"⛏️","tags":["mining","tool"]},{"unicode":"⚒️","tags":["hammer","pick","tool"]},{"unicode":"🛠️","tags":["hammer","spanner","tool","wrench"]},{"unicode":"🗡️","tags":["knife","weapon"]},{"unicode":"⚔️","tags":["crossed","swords","weapon"]},{"unicode":"🔫","tags":["gun","handgun","revolver","tool","weapon"]},{"unicode":"🪃","tags":["australia","rebound","repercussion"]},{"unicode":"🏹","tags":["archer","arrow","bow","sagittarius","zodiac"]},{"unicode":"🛡️","tags":["weapon"]},{"unicode":"🪚","tags":["carpenter","lumber","saw","tool"]},{"unicode":"🔧","tags":["spanner","tool"]},{"unicode":"🪛","tags":["screw","tool"]},{"unicode":"🔩","tags":["bolt","nut","tool"]},{"unicode":"⚙️","tags":["cog","cogwheel","tool"]},{"unicode":"🗜️","tags":["compress","tool","vice"]},{"unicode":"⚖️","tags":["balance","justice","libra","scale","zodiac"]},{"unicode":"🦯","tags":["accessibility","blind"]},{"unicode":"🔗","tags":["link"]},{"unicode":"⛓️","tags":["chain"]},{"unicode":"🪝","tags":["catch","crook","curve","ensnare","selling point"]},{"unicode":"🧰","tags":["chest","mechanic","tool"]},{"unicode":"🧲","tags":["attraction","horseshoe","magnetic"]},{"unicode":"🪜","tags":["climb","rung","step"]},{"unicode":"⚗️","tags":["chemistry","tool"]},{"unicode":"🧪","tags":["chemist","chemistry","experiment","lab","science"]},{"unicode":"🧫","tags":["bacteria","biologist","biology","culture","lab"]},{"unicode":"🧬","tags":["biologist","evolution","gene","genetics","life"]},{"unicode":"🔬","tags":["science","tool"]},{"unicode":"🔭","tags":["science","tool"]},{"unicode":"📡","tags":["antenna","dish","satellite"]},{"unicode":"💉","tags":["medicine","needle","shot","sick"]},{"unicode":"🩸","tags":["bleed","blood donation","injury","medicine","menstruation"]},{"unicode":"💊","tags":["doctor","medicine","sick"]},{"unicode":"🩹","tags":["bandage"]},{"unicode":"🩺","tags":["doctor","heart","medicine"]},{"unicode":"🚪","tags":["door"]},{"unicode":"🛗","tags":["accessibility","hoist","lift"]},{"unicode":"🪞","tags":["reflection","reflector","speculum"]},{"unicode":"🪟","tags":["frame","fresh air","opening","transparent","view"]},{"unicode":"🛏️","tags":["hotel","sleep"]},{"unicode":"🛋️","tags":["couch","hotel","lamp"]},{"unicode":"🪑","tags":["seat","sit"]},{"unicode":"🚽","tags":["toilet"]},{"unicode":"🪠","tags":["force cup","plumber","suction","toilet"]},{"unicode":"🚿","tags":["water"]},{"unicode":"🛁","tags":["bath"]},{"unicode":"🪤","tags":["bait","mousetrap","snare","trap"]},{"unicode":"🪒","tags":["sharp","shave"]},{"unicode":"🧴","tags":["lotion","moisturizer","shampoo","sunscreen"]},{"unicode":"🧷","tags":["diaper","punk rock"]},{"unicode":"🧹","tags":["cleaning","sweeping","witch"]},{"unicode":"🧺","tags":["farming","laundry","picnic"]},{"unicode":"🧻","tags":["paper towels","toilet paper"]},{"unicode":"🪣","tags":["cask","pail","vat"]},{"unicode":"🧼","tags":["bar","bathing","cleaning","lather","soapdish"]},{"unicode":"🪥","tags":["bathroom","brush","clean","dental","hygiene","teeth"]},{"unicode":"🧽","tags":["absorbing","cleaning","porous"]},{"unicode":"🧯","tags":["extinguish","fire","quench"]},{"unicode":"🛒","tags":["cart","shopping","trolley"]},{"unicode":"🚬","tags":["smoking"]},{"unicode":"⚰️","tags":["death"]},{"unicode":"🪦","tags":["cemetery","grave","graveyard","tombstone"]},{"unicode":"⚱️","tags":["ashes","death","funeral","urn"]},{"unicode":"🗿","tags":["face","moyai","statue"]},{"unicode":"🪧","tags":["demonstration","picket","protest","sign"]}]},{"group":8,"emojiList":[{"unicode":"🏧","tags":["atm","atm sign","automated","bank","teller"]},{"unicode":"🚮","tags":["litter","litter bin"]},{"unicode":"🚰","tags":["drinking","potable","water"]},{"unicode":"♿️","tags":["access"]},{"unicode":"🚹️","tags":["lavatory","man","restroom","wc"]},{"unicode":"🚺️","tags":["lavatory","restroom","wc","woman"]},{"unicode":"🚻","tags":["lavatory","wc"]},{"unicode":"🚼️","tags":["baby","changing"]},{"unicode":"🚾","tags":["closet","lavatory","restroom","water","wc"]},{"unicode":"🛂","tags":["control","passport"]},{"unicode":"🛃","tags":["customs"]},{"unicode":"🛄","tags":["baggage","claim"]},{"unicode":"🛅","tags":["baggage","locker","luggage"]},{"unicode":"⚠️","tags":["warning"]},{"unicode":"🚸","tags":["child","crossing","pedestrian","traffic"]},{"unicode":"⛔️","tags":["entry","forbidden","no","not","prohibited","traffic"]},{"unicode":"🚫","tags":["entry","forbidden","no","not"]},{"unicode":"🚳","tags":["bicycle","bike","forbidden","no","prohibited"]},{"unicode":"🚭️","tags":["forbidden","no","not","prohibited","smoking"]},{"unicode":"🚯","tags":["forbidden","litter","no","not","prohibited"]},{"unicode":"🚱","tags":["non-drinking","non-potable","water"]},{"unicode":"🚷","tags":["forbidden","no","not","pedestrian","prohibited"]},{"unicode":"📵","tags":["cell","forbidden","mobile","no","phone"]},{"unicode":"🔞","tags":["18","age restriction","eighteen","prohibited","underage"]},{"unicode":"☢️","tags":["sign"]},{"unicode":"☣️","tags":["sign"]},{"unicode":"⬆️","tags":["arrow","cardinal","direction","north"]},{"unicode":"↗️","tags":["arrow","direction","intercardinal","northeast"]},{"unicode":"➡️","tags":["arrow","cardinal","direction","east"]},{"unicode":"↘️","tags":["arrow","direction","intercardinal","southeast"]},{"unicode":"⬇️","tags":["arrow","cardinal","direction","down","south"]},{"unicode":"↙️","tags":["arrow","direction","intercardinal","southwest"]},{"unicode":"⬅️","tags":["arrow","cardinal","direction","west"]},{"unicode":"↖️","tags":["arrow","direction","intercardinal","northwest"]},{"unicode":"↕️","tags":["arrow"]},{"unicode":"↔️","tags":["arrow"]},{"unicode":"↩️","tags":["arrow"]},{"unicode":"↪️","tags":["arrow"]},{"unicode":"⤴️","tags":["arrow"]},{"unicode":"⤵️","tags":["arrow","down"]},{"unicode":"🔃","tags":["arrow","clockwise","reload"]},{"unicode":"🔄","tags":["anticlockwise","arrow","counterclockwise","withershins"]},{"unicode":"🔙","tags":["arrow","back","back arrow"]},{"unicode":"🔚","tags":["arrow","end","end arrow"]},{"unicode":"🔛","tags":["arrow","mark","on","on! arrow"]},{"unicode":"🔜","tags":["arrow","soon","soon arrow"]},{"unicode":"🔝","tags":["arrow","top","top arrow","up"]},{"unicode":"🛐","tags":["religion","worship"]},{"unicode":"⚛️","tags":["atheist","atom"]},{"unicode":"🕉️","tags":["hindu","religion"]},{"unicode":"✡️","tags":["david","jew","jewish","religion","star","star of david"]},{"unicode":"☸️","tags":["buddhist","dharma","religion","wheel"]},{"unicode":"☯️","tags":["religion","tao","taoist","yang","yin"]},{"unicode":"✝️","tags":["christian","cross","religion"]},{"unicode":"☦️","tags":["christian","cross","religion"]},{"unicode":"☪️","tags":["islam","muslim","religion"]},{"unicode":"☮️","tags":["peace"]},{"unicode":"🕎","tags":["candelabrum","candlestick","religion"]},{"unicode":"🔯","tags":["fortune","star"]},{"unicode":"♈️","tags":["aries","ram","zodiac"]},{"unicode":"♉️","tags":["bull","ox","taurus","zodiac"]},{"unicode":"♊️","tags":["gemini","twins","zodiac"]},{"unicode":"♋️","tags":["cancer","crab","zodiac"]},{"unicode":"♌️","tags":["leo","lion","zodiac"]},{"unicode":"♍️","tags":["virgo","zodiac"]},{"unicode":"♎️","tags":["balance","justice","libra","scales","zodiac"]},{"unicode":"♏️","tags":["scorpio","scorpion","scorpius","zodiac"]},{"unicode":"♐️","tags":["archer","sagittarius","zodiac"]},{"unicode":"♑️","tags":["capricorn","goat","zodiac"]},{"unicode":"♒️","tags":["aquarius","bearer","water","zodiac"]},{"unicode":"♓️","tags":["fish","pisces","zodiac"]},{"unicode":"⛎","tags":["bearer","ophiuchus","serpent","snake","zodiac"]},{"unicode":"🔀","tags":["arrow","crossed"]},{"unicode":"🔁","tags":["arrow","clockwise","repeat"]},{"unicode":"🔂","tags":["arrow","clockwise","once"]},{"unicode":"▶️","tags":["arrow","play","right","triangle"]},{"unicode":"⏩️","tags":["arrow","double","fast","forward"]},{"unicode":"⏭️","tags":["arrow","next scene","next track","triangle"]},{"unicode":"⏯️","tags":["arrow","pause","play","right","triangle"]},{"unicode":"◀️","tags":["arrow","left","reverse","triangle"]},{"unicode":"⏪️","tags":["arrow","double","rewind"]},{"unicode":"⏮️","tags":["arrow","previous scene","previous track","triangle"]},{"unicode":"🔼","tags":["arrow","button","red"]},{"unicode":"⏫","tags":["arrow","double"]},{"unicode":"🔽","tags":["arrow","button","down","red"]},{"unicode":"⏬","tags":["arrow","double","down"]},{"unicode":"⏸️","tags":["bar","double","pause","vertical"]},{"unicode":"⏹️","tags":["square","stop"]},{"unicode":"⏺️","tags":["circle","record"]},{"unicode":"⏏️","tags":["eject"]},{"unicode":"🎦","tags":["camera","film","movie"]},{"unicode":"🔅","tags":["brightness","dim","low"]},{"unicode":"🔆","tags":["bright","brightness"]},{"unicode":"📶","tags":["antenna","bar","cell","mobile","phone"]},{"unicode":"📳","tags":["cell","mobile","mode","phone","telephone","vibration"]},{"unicode":"📴","tags":["cell","mobile","off","phone","telephone"]},{"unicode":"♀️","tags":["woman"]},{"unicode":"♂️","tags":["man"]},{"unicode":"⚧️","tags":["transgender"]},{"unicode":"✖️","tags":["cancel","multiplication","sign","x","×"]},{"unicode":"➕","tags":["+","math","sign"]},{"unicode":"➖","tags":["-","math","sign","−"]},{"unicode":"➗","tags":["division","math","sign","÷"]},{"unicode":"♾️","tags":["forever","unbounded","universal"]},{"unicode":"‼️","tags":["!","!!","bangbang","exclamation","mark"]},{"unicode":"⁉️","tags":["!","!?","?","exclamation","interrobang","mark","punctuation","question"]},{"unicode":"❓️","tags":["?","mark","punctuation","question"]},{"unicode":"❔","tags":["?","mark","outlined","punctuation","question"]},{"unicode":"❕","tags":["!","exclamation","mark","outlined","punctuation"]},{"unicode":"❗️","tags":["!","exclamation","mark","punctuation"]},{"unicode":"〰️","tags":["dash","punctuation","wavy"]},{"unicode":"💱","tags":["bank","currency","exchange","money"]},{"unicode":"💲","tags":["currency","dollar","money"]},{"unicode":"⚕️","tags":["aesculapius","medicine","staff"]},{"unicode":"♻️","tags":["recycle"]},{"unicode":"⚜️","tags":["fleur-de-lis"]},{"unicode":"🔱","tags":["anchor","emblem","ship","tool","trident"]},{"unicode":"📛","tags":["badge","name"]},{"unicode":"🔰","tags":["beginner","chevron","japanese","japanese symbol for beginner","leaf"]},{"unicode":"⭕️","tags":["circle","large","o","red"]},{"unicode":"✅","tags":["button","check","mark","✓"]},{"unicode":"☑️","tags":["box","check","✓"]},{"unicode":"✔️","tags":["check","mark","✓"]},{"unicode":"❌","tags":["cancel","cross","mark","multiplication","multiply","x","×"]},{"unicode":"❎","tags":["mark","square","x","×"]},{"unicode":"➰","tags":["curl","loop"]},{"unicode":"➿","tags":["curl","double","loop"]},{"unicode":"〽️","tags":["mark","part"]},{"unicode":"✳️","tags":["*","asterisk"]},{"unicode":"✴️","tags":["*","star"]},{"unicode":"❇️","tags":["*"]},{"unicode":"©️","tags":["c"]},{"unicode":"®️","tags":["r"]},{"unicode":"™️","tags":["mark","tm","trademark"]},{"unicode":"#️⃣","tags":["keycap"]},{"unicode":"*️⃣","tags":["keycap"]},{"unicode":"0️⃣","tags":["keycap"]},{"unicode":"1️⃣","tags":["keycap"]},{"unicode":"2️⃣","tags":["keycap"]},{"unicode":"3️⃣","tags":["keycap"]},{"unicode":"4️⃣","tags":["keycap"]},{"unicode":"5️⃣","tags":["keycap"]},{"unicode":"6️⃣","tags":["keycap"]},{"unicode":"7️⃣","tags":["keycap"]},{"unicode":"8️⃣","tags":["keycap"]},{"unicode":"9️⃣","tags":["keycap"]},{"unicode":"🔟","tags":["keycap"]},{"unicode":"🔠","tags":["abcd","input","latin","letters","uppercase"]},{"unicode":"🔡","tags":["abcd","input","latin","letters","lowercase"]},{"unicode":"🔢","tags":["1234","input","numbers"]},{"unicode":"🔣","tags":["input","〒♪&%"]},{"unicode":"🔤","tags":["abc","alphabet","input","latin","letters"]},{"unicode":"🅰️","tags":["a","a button (blood type)","blood type"]},{"unicode":"🆎","tags":["ab","ab button (blood type)","blood type"]},{"unicode":"🅱️","tags":["b","b button (blood type)","blood type"]},{"unicode":"🆑","tags":["cl","cl button"]},{"unicode":"🆒","tags":["cool","cool button"]},{"unicode":"🆓","tags":["free","free button"]},{"unicode":"ℹ️","tags":["i"]},{"unicode":"🆔","tags":["id","id button","identity"]},{"unicode":"Ⓜ️","tags":["circle","circled m","m"]},{"unicode":"🆕","tags":["new","new button"]},{"unicode":"🆖","tags":["ng","ng button"]},{"unicode":"🅾️","tags":["blood type","o","o button (blood type)"]},{"unicode":"🆗","tags":["ok","ok button"]},{"unicode":"🅿️","tags":["p button","parking"]},{"unicode":"🆘","tags":["help","sos","sos button"]},{"unicode":"🆙","tags":["mark","up","up! button"]},{"unicode":"🆚","tags":["versus","vs","vs button"]},{"unicode":"🈁","tags":["japanese","japanese “here” button","katakana","“here”","ココ"]},{"unicode":"🈂️","tags":["japanese","japanese “service charge” button","katakana","“service charge”","サ"]},{"unicode":"🈷️","tags":["ideograph","japanese","japanese “monthly amount” button","“monthly amount”","月"]},{"unicode":"🈶","tags":["ideograph","japanese","japanese “not free of charge” button","“not free of charge”","有"]},{"unicode":"🈯️","tags":["ideograph","japanese","japanese “reserved” button","“reserved”","指"]},{"unicode":"🉐","tags":["ideograph","japanese","japanese “bargain” button","“bargain”","得"]},{"unicode":"🈹","tags":["ideograph","japanese","japanese “discount” button","“discount”","割"]},{"unicode":"🈚️","tags":["ideograph","japanese","japanese “free of charge” button","“free of charge”","無"]},{"unicode":"🈲","tags":["ideograph","japanese","japanese “prohibited” button","“prohibited”","禁"]},{"unicode":"🉑","tags":["ideograph","japanese","japanese “acceptable” button","“acceptable”","可"]},{"unicode":"🈸","tags":["ideograph","japanese","japanese “application” button","“application”","申"]},{"unicode":"🈴","tags":["ideograph","japanese","japanese “passing grade” button","“passing grade”","合"]},{"unicode":"🈳","tags":["ideograph","japanese","japanese “vacancy” button","“vacancy”","空"]},{"unicode":"㊗️","tags":["ideograph","japanese","japanese “congratulations” button","“congratulations”","祝"]},{"unicode":"㊙️","tags":["ideograph","japanese","japanese “secret” button","“secret”","秘"]},{"unicode":"🈺","tags":["ideograph","japanese","japanese “open for business” button","“open for business”","営"]},{"unicode":"🈵","tags":["ideograph","japanese","japanese “no vacancy” button","“no vacancy”","満"]},{"unicode":"🔴","tags":["circle","geometric","red"]},{"unicode":"🟠","tags":["circle","orange"]},{"unicode":"🟡","tags":["circle","yellow"]},{"unicode":"🟢","tags":["circle","green"]},{"unicode":"🔵","tags":["blue","circle","geometric"]},{"unicode":"🟣","tags":["circle","purple"]},{"unicode":"🟤","tags":["brown","circle"]},{"unicode":"⚫️","tags":["circle","geometric"]},{"unicode":"⚪️","tags":["circle","geometric"]},{"unicode":"🟥","tags":["red","square"]},{"unicode":"🟧","tags":["orange","square"]},{"unicode":"🟨","tags":["square","yellow"]},{"unicode":"🟩","tags":["green","square"]},{"unicode":"🟦","tags":["blue","square"]},{"unicode":"🟪","tags":["purple","square"]},{"unicode":"🟫","tags":["brown","square"]},{"unicode":"⬛️","tags":["geometric","square"]},{"unicode":"⬜️","tags":["geometric","square"]},{"unicode":"◼️","tags":["geometric","square"]},{"unicode":"◻️","tags":["geometric","square"]},{"unicode":"◾️","tags":["geometric","square"]},{"unicode":"◽️","tags":["geometric","square"]},{"unicode":"▪️","tags":["geometric","square"]},{"unicode":"▫️","tags":["geometric","square"]},{"unicode":"🔶","tags":["diamond","geometric","orange"]},{"unicode":"🔷","tags":["blue","diamond","geometric"]},{"unicode":"🔸","tags":["diamond","geometric","orange"]},{"unicode":"🔹","tags":["blue","diamond","geometric"]},{"unicode":"🔺","tags":["geometric","red"]},{"unicode":"🔻","tags":["down","geometric","red"]},{"unicode":"💠","tags":["comic","diamond","geometric","inside"]},{"unicode":"🔘","tags":["button","geometric","radio"]},{"unicode":"🔳","tags":["button","geometric","outlined","square"]},{"unicode":"🔲","tags":["button","geometric","square"]}]},{"group":9,"emojiList":[{"unicode":"🏁","tags":["checkered","chequered","racing"]},{"unicode":"🚩","tags":["post"]},{"unicode":"🎌","tags":["celebration","cross","crossed","japanese"]},{"unicode":"🏴","tags":["waving"]},{"unicode":"🏳️","tags":["waving"]},{"unicode":"🏳️‍🌈","tags":["pride","rainbow"]},{"unicode":"🏳️‍⚧️","tags":["flag","light blue","pink","transgender","white"]},{"unicode":"🏴‍☠️","tags":["jolly roger","pirate","plunder","treasure"]},{"unicode":"🇦🇨","tags":["AC","flag"]},{"unicode":"🇦🇩","tags":["AD","flag"]},{"unicode":"🇦🇪","tags":["AE","flag"]},{"unicode":"🇦🇫","tags":["AF","flag"]},{"unicode":"🇦🇬","tags":["AG","flag"]},{"unicode":"🇦🇮","tags":["AI","flag"]},{"unicode":"🇦🇱","tags":["AL","flag"]},{"unicode":"🇦🇲","tags":["AM","flag"]},{"unicode":"🇦🇴","tags":["AO","flag"]},{"unicode":"🇦🇶","tags":["AQ","flag"]},{"unicode":"🇦🇷","tags":["AR","flag"]},{"unicode":"🇦🇸","tags":["AS","flag"]},{"unicode":"🇦🇹","tags":["AT","flag"]},{"unicode":"🇦🇺","tags":["AU","flag"]},{"unicode":"🇦🇼","tags":["AW","flag"]},{"unicode":"🇦🇽","tags":["AX","flag"]},{"unicode":"🇦🇿","tags":["AZ","flag"]},{"unicode":"🇧🇦","tags":["BA","flag"]},{"unicode":"🇧🇧","tags":["BB","flag"]},{"unicode":"🇧🇩","tags":["BD","flag"]},{"unicode":"🇧🇪","tags":["BE","flag"]},{"unicode":"🇧🇫","tags":["BF","flag"]},{"unicode":"🇧🇬","tags":["BG","flag"]},{"unicode":"🇧🇭","tags":["BH","flag"]},{"unicode":"🇧🇮","tags":["BI","flag"]},{"unicode":"🇧🇯","tags":["BJ","flag"]},{"unicode":"🇧🇱","tags":["BL","flag"]},{"unicode":"🇧🇲","tags":["BM","flag"]},{"unicode":"🇧🇳","tags":["BN","flag"]},{"unicode":"🇧🇴","tags":["BO","flag"]},{"unicode":"🇧🇶","tags":["BQ","flag"]},{"unicode":"🇧🇷","tags":["BR","flag"]},{"unicode":"🇧🇸","tags":["BS","flag"]},{"unicode":"🇧🇹","tags":["BT","flag"]},{"unicode":"🇧🇻","tags":["BV","flag"]},{"unicode":"🇧🇼","tags":["BW","flag"]},{"unicode":"🇧🇾","tags":["BY","flag"]},{"unicode":"🇧🇿","tags":["BZ","flag"]},{"unicode":"🇨🇦","tags":["CA","flag"]},{"unicode":"🇨🇨","tags":["CC","flag"]},{"unicode":"🇨🇩","tags":["CD","flag"]},{"unicode":"🇨🇫","tags":["CF","flag"]},{"unicode":"🇨🇬","tags":["CG","flag"]},{"unicode":"🇨🇭","tags":["CH","flag"]},{"unicode":"🇨🇮","tags":["CI","flag"]},{"unicode":"🇨🇰","tags":["CK","flag"]},{"unicode":"🇨🇱","tags":["CL","flag"]},{"unicode":"🇨🇲","tags":["CM","flag"]},{"unicode":"🇨🇳","tags":["CN","flag"]},{"unicode":"🇨🇴","tags":["CO","flag"]},{"unicode":"🇨🇵","tags":["CP","flag"]},{"unicode":"🇨🇷","tags":["CR","flag"]},{"unicode":"🇨🇺","tags":["CU","flag"]},{"unicode":"🇨🇻","tags":["CV","flag"]},{"unicode":"🇨🇼","tags":["CW","flag"]},{"unicode":"🇨🇽","tags":["CX","flag"]},{"unicode":"🇨🇾","tags":["CY","flag"]},{"unicode":"🇨🇿","tags":["CZ","flag"]},{"unicode":"🇩🇪","tags":["DE","flag"]},{"unicode":"🇩🇬","tags":["DG","flag"]},{"unicode":"🇩🇯","tags":["DJ","flag"]},{"unicode":"🇩🇰","tags":["DK","flag"]},{"unicode":"🇩🇲","tags":["DM","flag"]},{"unicode":"🇩🇴","tags":["DO","flag"]},{"unicode":"🇩🇿","tags":["DZ","flag"]},{"unicode":"🇪🇦","tags":["EA","flag"]},{"unicode":"🇪🇨","tags":["EC","flag"]},{"unicode":"🇪🇪","tags":["EE","flag"]},{"unicode":"🇪🇬","tags":["EG","flag"]},{"unicode":"🇪🇭","tags":["EH","flag"]},{"unicode":"🇪🇷","tags":["ER","flag"]},{"unicode":"🇪🇸","tags":["ES","flag"]},{"unicode":"🇪🇹","tags":["ET","flag"]},{"unicode":"🇪🇺","tags":["EU","flag"]},{"unicode":"🇫🇮","tags":["FI","flag"]},{"unicode":"🇫🇯","tags":["FJ","flag"]},{"unicode":"🇫🇰","tags":["FK","flag"]},{"unicode":"🇫🇲","tags":["FM","flag"]},{"unicode":"🇫🇴","tags":["FO","flag"]},{"unicode":"🇫🇷","tags":["FR","flag"]},{"unicode":"🇬🇦","tags":["GA","flag"]},{"unicode":"🇬🇧","tags":["GB","flag"]},{"unicode":"🇬🇩","tags":["GD","flag"]},{"unicode":"🇬🇪","tags":["GE","flag"]},{"unicode":"🇬🇫","tags":["GF","flag"]},{"unicode":"🇬🇬","tags":["GG","flag"]},{"unicode":"🇬🇭","tags":["GH","flag"]},{"unicode":"🇬🇮","tags":["GI","flag"]},{"unicode":"🇬🇱","tags":["GL","flag"]},{"unicode":"🇬🇲","tags":["GM","flag"]},{"unicode":"🇬🇳","tags":["GN","flag"]},{"unicode":"🇬🇵","tags":["GP","flag"]},{"unicode":"🇬🇶","tags":["GQ","flag"]},{"unicode":"🇬🇷","tags":["GR","flag"]},{"unicode":"🇬🇸","tags":["GS","flag"]},{"unicode":"🇬🇹","tags":["GT","flag"]},{"unicode":"🇬🇺","tags":["GU","flag"]},{"unicode":"🇬🇼","tags":["GW","flag"]},{"unicode":"🇬🇾","tags":["GY","flag"]},{"unicode":"🇭🇰","tags":["HK","flag"]},{"unicode":"🇭🇲","tags":["HM","flag"]},{"unicode":"🇭🇳","tags":["HN","flag"]},{"unicode":"🇭🇷","tags":["HR","flag"]},{"unicode":"🇭🇹","tags":["HT","flag"]},{"unicode":"🇭🇺","tags":["HU","flag"]},{"unicode":"🇮🇨","tags":["IC","flag"]},{"unicode":"🇮🇩","tags":["ID","flag"]},{"unicode":"🇮🇪","tags":["IE","flag"]},{"unicode":"🇮🇱","tags":["IL","flag"]},{"unicode":"🇮🇲","tags":["IM","flag"]},{"unicode":"🇮🇳","tags":["IN","flag"]},{"unicode":"🇮🇴","tags":["IO","flag"]},{"unicode":"🇮🇶","tags":["IQ","flag"]},{"unicode":"🇮🇷","tags":["IR","flag"]},{"unicode":"🇮🇸","tags":["IS","flag"]},{"unicode":"🇮🇹","tags":["IT","flag"]},{"unicode":"🇯🇪","tags":["JE","flag"]},{"unicode":"🇯🇲","tags":["JM","flag"]},{"unicode":"🇯🇴","tags":["JO","flag"]},{"unicode":"🇯🇵","tags":["JP","flag"]},{"unicode":"🇰🇪","tags":["KE","flag"]},{"unicode":"🇰🇬","tags":["KG","flag"]},{"unicode":"🇰🇭","tags":["KH","flag"]},{"unicode":"🇰🇮","tags":["KI","flag"]},{"unicode":"🇰🇲","tags":["KM","flag"]},{"unicode":"🇰🇳","tags":["KN","flag"]},{"unicode":"🇰🇵","tags":["KP","flag"]},{"unicode":"🇰🇷","tags":["KR","flag"]},{"unicode":"🇰🇼","tags":["KW","flag"]},{"unicode":"🇰🇾","tags":["KY","flag"]},{"unicode":"🇰🇿","tags":["KZ","flag"]},{"unicode":"🇱🇦","tags":["LA","flag"]},{"unicode":"🇱🇧","tags":["LB","flag"]},{"unicode":"🇱🇨","tags":["LC","flag"]},{"unicode":"🇱🇮","tags":["LI","flag"]},{"unicode":"🇱🇰","tags":["LK","flag"]},{"unicode":"🇱🇷","tags":["LR","flag"]},{"unicode":"🇱🇸","tags":["LS","flag"]},{"unicode":"🇱🇹","tags":["LT","flag"]},{"unicode":"🇱🇺","tags":["LU","flag"]},{"unicode":"🇱🇻","tags":["LV","flag"]},{"unicode":"🇱🇾","tags":["LY","flag"]},{"unicode":"🇲🇦","tags":["MA","flag"]},{"unicode":"🇲🇨","tags":["MC","flag"]},{"unicode":"🇲🇩","tags":["MD","flag"]},{"unicode":"🇲🇪","tags":["ME","flag"]},{"unicode":"🇲🇫","tags":["MF","flag"]},{"unicode":"🇲🇬","tags":["MG","flag"]},{"unicode":"🇲🇭","tags":["MH","flag"]},{"unicode":"🇲🇰","tags":["MK","flag"]},{"unicode":"🇲🇱","tags":["ML","flag"]},{"unicode":"🇲🇲","tags":["MM","flag"]},{"unicode":"🇲🇳","tags":["MN","flag"]},{"unicode":"🇲🇴","tags":["MO","flag"]},{"unicode":"🇲🇵","tags":["MP","flag"]},{"unicode":"🇲🇶","tags":["MQ","flag"]},{"unicode":"🇲🇷","tags":["MR","flag"]},{"unicode":"🇲🇸","tags":["MS","flag"]},{"unicode":"🇲🇹","tags":["MT","flag"]},{"unicode":"🇲🇺","tags":["MU","flag"]},{"unicode":"🇲🇻","tags":["MV","flag"]},{"unicode":"🇲🇼","tags":["MW","flag"]},{"unicode":"🇲🇽","tags":["MX","flag"]},{"unicode":"🇲🇾","tags":["MY","flag"]},{"unicode":"🇲🇿","tags":["MZ","flag"]},{"unicode":"🇳🇦","tags":["NA","flag"]},{"unicode":"🇳🇨","tags":["NC","flag"]},{"unicode":"🇳🇪","tags":["NE","flag"]},{"unicode":"🇳🇫","tags":["NF","flag"]},{"unicode":"🇳🇬","tags":["NG","flag"]},{"unicode":"🇳🇮","tags":["NI","flag"]},{"unicode":"🇳🇱","tags":["NL","flag"]},{"unicode":"🇳🇴","tags":["NO","flag"]},{"unicode":"🇳🇵","tags":["NP","flag"]},{"unicode":"🇳🇷","tags":["NR","flag"]},{"unicode":"🇳🇺","tags":["NU","flag"]},{"unicode":"🇳🇿","tags":["NZ","flag"]},{"unicode":"🇴🇲","tags":["OM","flag"]},{"unicode":"🇵🇦","tags":["PA","flag"]},{"unicode":"🇵🇪","tags":["PE","flag"]},{"unicode":"🇵🇫","tags":["PF","flag"]},{"unicode":"🇵🇬","tags":["PG","flag"]},{"unicode":"🇵🇭","tags":["PH","flag"]},{"unicode":"🇵🇰","tags":["PK","flag"]},{"unicode":"🇵🇱","tags":["PL","flag"]},{"unicode":"🇵🇲","tags":["PM","flag"]},{"unicode":"🇵🇳","tags":["PN","flag"]},{"unicode":"🇵🇷","tags":["PR","flag"]},{"unicode":"🇵🇸","tags":["PS","flag"]},{"unicode":"🇵🇹","tags":["PT","flag"]},{"unicode":"🇵🇼","tags":["PW","flag"]},{"unicode":"🇵🇾","tags":["PY","flag"]},{"unicode":"🇶🇦","tags":["QA","flag"]},{"unicode":"🇷🇪","tags":["RE","flag"]},{"unicode":"🇷🇴","tags":["RO","flag"]},{"unicode":"🇷🇸","tags":["RS","flag"]},{"unicode":"🇷🇺","tags":["RU","flag"]},{"unicode":"🇷🇼","tags":["RW","flag"]},{"unicode":"🇸🇦","tags":["SA","flag"]},{"unicode":"🇸🇧","tags":["SB","flag"]},{"unicode":"🇸🇨","tags":["SC","flag"]},{"unicode":"🇸🇩","tags":["SD","flag"]},{"unicode":"🇸🇪","tags":["SE","flag"]},{"unicode":"🇸🇬","tags":["SG","flag"]},{"unicode":"🇸🇭","tags":["SH","flag"]},{"unicode":"🇸🇮","tags":["SI","flag"]},{"unicode":"🇸🇯","tags":["SJ","flag"]},{"unicode":"🇸🇰","tags":["SK","flag"]},{"unicode":"🇸🇱","tags":["SL","flag"]},{"unicode":"🇸🇲","tags":["SM","flag"]},{"unicode":"🇸🇳","tags":["SN","flag"]},{"unicode":"🇸🇴","tags":["SO","flag"]},{"unicode":"🇸🇷","tags":["SR","flag"]},{"unicode":"🇸🇸","tags":["SS","flag"]},{"unicode":"🇸🇹","tags":["ST","flag"]},{"unicode":"🇸🇻","tags":["SV","flag"]},{"unicode":"🇸🇽","tags":["SX","flag"]},{"unicode":"🇸🇾","tags":["SY","flag"]},{"unicode":"🇸🇿","tags":["SZ","flag"]},{"unicode":"🇹🇦","tags":["TA","flag"]},{"unicode":"🇹🇨","tags":["TC","flag"]},{"unicode":"🇹🇩","tags":["TD","flag"]},{"unicode":"🇹🇫","tags":["TF","flag"]},{"unicode":"🇹🇬","tags":["TG","flag"]},{"unicode":"🇹🇭","tags":["TH","flag"]},{"unicode":"🇹🇯","tags":["TJ","flag"]},{"unicode":"🇹🇰","tags":["TK","flag"]},{"unicode":"🇹🇱","tags":["TL","flag"]},{"unicode":"🇹🇲","tags":["TM","flag"]},{"unicode":"🇹🇳","tags":["TN","flag"]},{"unicode":"🇹🇴","tags":["TO","flag"]},{"unicode":"🇹🇷","tags":["TR","flag"]},{"unicode":"🇹🇹","tags":["TT","flag"]},{"unicode":"🇹🇻","tags":["TV","flag"]},{"unicode":"🇹🇼","tags":["TW","flag"]},{"unicode":"🇹🇿","tags":["TZ","flag"]},{"unicode":"🇺🇦","tags":["UA","flag"]},{"unicode":"🇺🇬","tags":["UG","flag"]},{"unicode":"🇺🇲","tags":["UM","flag"]},{"unicode":"🇺🇳","tags":["UN","flag"]},{"unicode":"🇺🇸","tags":["US","flag"]},{"unicode":"🇺🇾","tags":["UY","flag"]},{"unicode":"🇺🇿","tags":["UZ","flag"]},{"unicode":"🇻🇦","tags":["VA","flag"]},{"unicode":"🇻🇨","tags":["VC","flag"]},{"unicode":"🇻🇪","tags":["VE","flag"]},{"unicode":"🇻🇬","tags":["VG","flag"]},{"unicode":"🇻🇮","tags":["VI","flag"]},{"unicode":"🇻🇳","tags":["VN","flag"]},{"unicode":"🇻🇺","tags":["VU","flag"]},{"unicode":"🇼🇫","tags":["WF","flag"]},{"unicode":"🇼🇸","tags":["WS","flag"]},{"unicode":"🇽🇰","tags":["XK","flag"]},{"unicode":"🇾🇪","tags":["YE","flag"]},{"unicode":"🇾🇹","tags":["YT","flag"]},{"unicode":"🇿🇦","tags":["ZA","flag"]},{"unicode":"🇿🇲","tags":["ZM","flag"]},{"unicode":"🇿🇼","tags":["ZW","flag"]},{"unicode":"🏴󠁧󠁢󠁥󠁮󠁧󠁿","tags":["flag","gbeng"]},{"unicode":"🏴󠁧󠁢󠁳󠁣󠁴󠁿","tags":["flag","gbsct"]},{"unicode":"🏴󠁧󠁢󠁷󠁬󠁳󠁿","tags":["flag","gbwls"]}]}]')},"35a1":function(e,t,n){var i=n("f5df"),r=n("3f8c"),o=n("b622"),a=o("iterator");e.exports=function(e){if(void 0!=e)return e[a]||e["@@iterator"]||r[i(e)]}},"365c":function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return s}));var i=n("2326"),r=n("6c06"),o=n("7b1e"),a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e=Object(i["b"])(e).filter(r["a"]),e.some((function(e){return t[e]||n[e]}))},s=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};e=Object(i["b"])(e).filter(r["a"]);for(var c=0;cc)r.f(e,n=i[c++],t[n]);return e}},3835:function(e,t,n){"use strict";function i(e){if(Array.isArray(e))return e}n.d(t,"a",(function(){return s}));n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0");function r(e,t){var n=e&&("undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var i,r,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(i=n.next()).done);a=!0)if(o.push(i.value),t&&o.length===t)break}catch(c){s=!0,r=c}finally{try{a||null==n["return"]||n["return"]()}finally{if(s)throw r}}return o}}var o=n("06c5");function a(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(e,t){return i(e)||r(e,t)||Object(o["a"])(e,t)||a()}},"387f":function(e,t,n){"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},3886:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration var t=e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}});return t}))},3934:function(e,t,n){"use strict";var i=n("c532");e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=i.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return function(){return!0}}()},"39a6":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration @@ -96,7 +96,7 @@ var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20: //! moment.js locale configuration var t=e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1200?"上午":1200===i?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}});return t}))},"4a38":function(e,t,n){"use strict";n.d(t,"f",(function(){return h})),n.d(t,"d",(function(){return p})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return b})),n.d(t,"b",(function(){return g})),n.d(t,"a",(function(){return v}));var i=n("992e"),r=n("906c"),o=n("7b1e"),a=n("d82f"),s=n("fa73"),c="a",u=function(e){return"%"+e.charCodeAt(0).toString(16)},d=function(e){return encodeURIComponent(Object(s["g"])(e)).replace(i["j"],u).replace(i["i"],",")},l=decodeURIComponent,f=function(e){if(!Object(o["k"])(e))return"";var t=Object(a["h"])(e).map((function(t){var n=e[t];return Object(o["o"])(n)?"":Object(o["g"])(n)?d(t):Object(o["a"])(n)?n.reduce((function(e,n){return Object(o["g"])(n)?e.push(d(t)):Object(o["o"])(n)||e.push(d(t)+"="+d(n)),e}),[]).join("&"):d(t)+"="+d(n)})).filter((function(e){return e.length>0})).join("&");return t?"?".concat(t):""},h=function(e){var t={};return e=Object(s["g"])(e).trim().replace(i["u"],""),e?(e.split("&").forEach((function(e){var n=e.replace(i["t"]," ").split("="),r=l(n.shift()),a=n.length>0?l(n.join("=")):null;Object(o["o"])(t[r])?t[r]=a:Object(o["a"])(t[r])?t[r].push(a):t[r]=[t[r],a]})),t):t},p=function(e){return!(!e.href&&!e.to)},m=function(e){return!(!e||Object(r["t"])(e,"a"))},b=function(e,t){var n=e.to,i=e.disabled,r=e.routerComponentName,o=!!t.$router;return!o||o&&(i||!n)?c:r||(t.$nuxt?"nuxt-link":"router-link")},g=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,n=e.rel;return"_blank"===t&&Object(o["g"])(n)?"noopener":n||null},v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.href,n=e.to,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#",a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"/";if(t)return t;if(m(i))return null;if(Object(o["n"])(n))return n||a;if(Object(o["k"])(n)&&(n.path||n.query||n.hash)){var u=Object(s["g"])(n.path),d=f(n.query),l=Object(s["g"])(n.hash);return l=l&&"#"!==l.charAt(0)?"#".concat(l):l,"".concat(u).concat(d).concat(l)||a}return r}},"4a7b":function(e,t,n){"use strict";var i=n("c532");e.exports=function(e,t){t=t||{};var n={},r=["url","method","data"],o=["headers","auth","proxy","params"],a=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],s=["validateStatus"];function c(e,t){return i.isPlainObject(e)&&i.isPlainObject(t)?i.merge(e,t):i.isPlainObject(t)?i.merge({},t):i.isArray(t)?t.slice():t}function u(r){i.isUndefined(t[r])?i.isUndefined(e[r])||(n[r]=c(void 0,e[r])):n[r]=c(e[r],t[r])}i.forEach(r,(function(e){i.isUndefined(t[e])||(n[e]=c(void 0,t[e]))})),i.forEach(o,u),i.forEach(a,(function(r){i.isUndefined(t[r])?i.isUndefined(e[r])||(n[r]=c(void 0,e[r])):n[r]=c(void 0,t[r])})),i.forEach(s,(function(i){i in t?n[i]=c(e[i],t[i]):i in e&&(n[i]=c(void 0,e[i]))}));var d=r.concat(o).concat(a).concat(s),l=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===d.indexOf(e)}));return i.forEach(l,u),n}},"4b17":function(e,t,n){var i=n("6428");function r(e){var t=i(e),n=t%1;return t===t?n?t-n:t:0}e.exports=r},"4ba9":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration -function t(e,t,n){var i=e+" ";switch(n){case"ss":return i+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi",i;case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta",i;case"h":return t?"jedan sat":"jednog sata";case"hh":return i+=1===e?"sat":2===e||3===e||4===e?"sata":"sati",i;case"dd":return i+=1===e?"dan":"dana",i;case"MM":return i+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci",i;case"yy":return i+=1===e?"godina":2===e||3===e||4===e?"godine":"godina",i}}var n=e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},"4cef":function(e,t){var n=/\s/;function i(e){var t=e.length;while(t--&&n.test(e.charAt(t)));return t}e.exports=i},"4d64":function(e,t,n){var i=n("fc6a"),r=n("50c4"),o=n("23cb"),a=function(e){return function(t,n,a){var s,c=i(t),u=r(c.length),d=o(a,u);if(e&&n!=n){while(u>d)if(s=c[d++],s!=s)return!0}else for(;u>d;d++)if((e||d in c)&&c[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},"4de4":function(e,t,n){"use strict";var i=n("23e7"),r=n("b727").filter,o=n("1dde"),a=o("filter");i({target:"Array",proto:!0,forced:!a},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,t,n){"use strict";var i=n("0366"),r=n("7b0b"),o=n("9bdd"),a=n("e95a"),s=n("50c4"),c=n("8418"),u=n("35a1");e.exports=function(e){var t,n,d,l,f,h,p=r(e),m="function"==typeof this?this:Array,b=arguments.length,g=b>1?arguments[1]:void 0,v=void 0!==g,y=u(p),_=0;if(v&&(g=i(g,b>2?arguments[2]:void 0,2)),void 0==y||m==Array&&a(y))for(t=s(p.length),n=new m(t);t>_;_++)h=v?g(p[_],_):p[_],c(n,_,h);else for(l=y.call(p),f=l.next,n=new m;!(d=f.call(l)).done;_++)h=v?o(l,g,[d.value,_],!0):d.value,c(n,_,h);return n.length=_,n}},5038:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; +function t(e,t,n){var i=e+" ";switch(n){case"ss":return i+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi",i;case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta",i;case"h":return t?"jedan sat":"jednog sata";case"hh":return i+=1===e?"sat":2===e||3===e||4===e?"sata":"sati",i;case"dd":return i+=1===e?"dan":"dana",i;case"MM":return i+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci",i;case"yy":return i+=1===e?"godina":2===e||3===e||4===e?"godine":"godina",i}}var n=e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},"4cef":function(e,t){var n=/\s/;function i(e){var t=e.length;while(t--&&n.test(e.charAt(t)));return t}e.exports=i},"4d64":function(e,t,n){var i=n("fc6a"),r=n("50c4"),o=n("23cb"),a=function(e){return function(t,n,a){var s,c=i(t),u=r(c.length),d=o(a,u);if(e&&n!=n){while(u>d)if(s=c[d++],s!=s)return!0}else for(;u>d;d++)if((e||d in c)&&c[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},"4de4":function(e,t,n){"use strict";var i=n("23e7"),r=n("b727").filter,o=n("1dde"),a=o("filter");i({target:"Array",proto:!0,forced:!a},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,t,n){"use strict";var i=n("0366"),r=n("7b0b"),o=n("9bdd"),a=n("e95a"),s=n("50c4"),c=n("8418"),u=n("35a1");e.exports=function(e){var t,n,d,l,f,h,p=r(e),m="function"==typeof this?this:Array,b=arguments.length,g=b>1?arguments[1]:void 0,v=void 0!==g,y=u(p),_=0;if(v&&(g=i(g,b>2?arguments[2]:void 0,2)),void 0==y||m==Array&&a(y))for(t=s(p.length),n=new m(t);t>_;_++)h=v?g(p[_],_):p[_],c(n,_,h);else for(l=y.call(p),f=l.next,n=new m;!(d=f.call(l)).done;_++)h=v?o(l,g,[d.value,_],!0):d.value,c(n,_,h);return n.length=_,n}},"4fad":function(e,t,n){var i=n("23e7"),r=n("6f53").entries;i({target:"Object",stat:!0},{entries:function(e){return r(e)}})},5038:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration var t=e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}});return t}))},"50c4":function(e,t,n){var i=n("a691"),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},"50d3":function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return o}));var i="BvConfig",r="$bvConfig",o=["xs","sm","md","lg","xl"]},5120:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration @@ -153,7 +153,7 @@ var t=e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_l //! moment.js locale configuration var t=e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},"6f50":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration -var t=e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},7037:function(e,t,n){function i(t){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?(e.exports=i=function(e){return typeof e},e.exports["default"]=e.exports,e.exports.__esModule=!0):(e.exports=i=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports["default"]=e.exports,e.exports.__esModule=!0),i(t)}n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0"),e.exports=i,e.exports["default"]=e.exports,e.exports.__esModule=!0},7118:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; +var t=e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},"6f53":function(e,t,n){var i=n("83ab"),r=n("df75"),o=n("fc6a"),a=n("d1e7").f,s=function(e){return function(t){var n,s=o(t),c=r(s),u=c.length,d=0,l=[];while(u>d)n=c[d++],i&&!a.call(s,n)||l.push(e?[n,s[n]]:s[n]);return l}};e.exports={entries:s(!0),values:s(!1)}},7037:function(e,t,n){function i(t){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?(e.exports=i=function(e){return typeof e},e.exports["default"]=e.exports,e.exports.__esModule=!0):(e.exports=i=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports["default"]=e.exports,e.exports.__esModule=!0),i(t)}n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0"),e.exports=i,e.exports["default"]=e.exports,e.exports.__esModule=!0},7118:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),i=e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}});return i}))},7156:function(e,t,n){var i=n("861d"),r=n("d2bb");e.exports=function(e,t,n){var o,a;return r&&"function"==typeof(o=t.constructor)&&o!==n&&i(a=o.prototype)&&a!==n.prototype&&r(e,a),e}},"72f0":function(e,t){function n(e){return function(){return e}}e.exports=n},7333:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration @@ -197,7 +197,7 @@ function t(e,t,n,i){switch(n){case"s":return t?"хэдхэн секунд":"хэ //! moment.js locale configuration var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"},n=e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){var n=e%10,i=e>=100?100:null;return e+(t[e]||t[n]||t[i])},week:{dow:1,doy:7}});return n}))},9686:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration -var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},i=e.defineLocale("bn-bd",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t?e<4?e:e+12:"ভোর"===t||"সকাল"===t?e:"দুপুর"===t?e>=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}});return i}))},"96cf":function(e,t,n){var i=function(e){"use strict";var t,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(P){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var r=t&&t.prototype instanceof b?t:b,o=Object.create(r.prototype),a=new T(i||[]);return o._invoke=M(e,n,a),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(P){return{type:"throw",arg:P}}}e.wrap=u;var l="suspendedStart",f="suspendedYield",h="executing",p="completed",m={};function b(){}function g(){}function v(){}var y={};y[o]=function(){return this};var _=Object.getPrototypeOf,O=_&&_(_(D([])));O&&O!==n&&i.call(O,o)&&(y=O);var j=v.prototype=b.prototype=Object.create(y);function w(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(r,o,a,s){var c=d(e[r],e,o);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"===typeof l&&i.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(l).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;function o(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}this._invoke=o}function M(e,t,n){var i=l;return function(r,o){if(i===h)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw o;return A()}n.method=r,n.arg=o;while(1){var a=n.delegate;if(a){var s=x(a,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===l)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=h;var c=d(e,t,n);if("normal"===c.type){if(i=n.done?p:f,c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function x(e,n){var i=e.iterator[n.method];if(i===t){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=t,x(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var r=d(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,m;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function D(e){if(e){var n=e[o];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function n(){while(++r=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;S(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,i){return this.delegate={iterator:D(e),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},"972c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; +var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},i=e.defineLocale("bn-bd",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t?e<4?e:e+12:"ভোর"===t||"সকাল"===t?e:"দুপুর"===t?e>=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}});return i}))},"972c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var i={ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"săptămâni",MM:"luni",yy:"ani"},r=" ";return(e%100>=20||e>=100&&e%100===0)&&(r=" de "),e+r+i[n]}var n=e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,w:"o săptămână",ww:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}});return n}))},9797:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict"; //! moment.js locale configuration diff --git a/cookbook/static/vue/js/food_list_view.js b/cookbook/static/vue/js/food_list_view.js index 5a1107056..9db4bd2f7 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,h=[];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("b0c0"),r("a4d3"),r("e01a"),r("7db0"),r("d3b7"),r("bc3a")),u=r.n(c),d=r("5f5b"),p=(r("2dd8"),r("fa7d")),h=r("2b2d"),l=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"})])])},f=[],b=r("b85c"),v=(r("4de4"),r("b047")),m=r.n(v),j=r("e166"),O=r.n(j),g={name:"GenericSplitLists",components:{InfiniteLoading:O.a},props:{list_name:{type:String,default:"Blank List"},left_list:{type:Array,default:function(){return[]}},right_list:{type:Array,default:function(){return[]}},load_more_left:{type:Boolean,default:!1},load_more_right:{type:Boolean,default:!1}},data:function(){return{advanced_visible:!1,show_split:!1,search_right:"",search_left:"",right_page:1,left_page:1,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:m()((function(){this.left_page=0,this.$emit("reset",{column:"left"}),this.left+=1}),700),search_left:m()((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},i=new Promise((function(e){return r.$emit("get-list",n,e)}));i.then((function(n){console.log(n),r[t+"_page"]+=1,e.loaded(),r["load_more_"+t]||e.complete()})).catch((function(){e.complete()}))},findCard:function(e,t){var r,n=null!==(r=null===e||void 0===e?void 0:e.length)&&void 0!==r?r:0;if(0==n)return!1;var i=e.filter((function(e){return e.id==t}));if(1==i.length)return i[0];if(0==i.length){var o,a=Object(b["a"])(e.filter((function(e){return 1==e.show_children})));try{for(a.s();!(o=a.n()).done;){var s=o.value;if(i=this.findCard(s.children,t),i)return i}}catch(c){a.e(c)}finally{a.f()}}else console.log("something terrible happened")},destroyCard:function(e,t){var r,i=this.findCard(t,e),o=null!==(r=null===i||void 0===i?void 0:i.parent)&&void 0!==r?r:void 0;if(o){var a=this.findCard(t,o);if(a&&(n["default"].set(a,"numchild",a.numchild-1),a.show_children)){var s=a.children.indexOf(a.children.find((function(t){return t.id===e})));n["default"].delete(a.children,s)}}return t.filter((function(t){return t.id!=e}))}}},y=g,_=(r("60bc"),r("2877")),S=Object(_["a"])(y,l,f,!1,null,null,null),w=S.exports,k=r("0e20"),P=r("7432");u.a.defaults.xsrfCookieName="csrftoken",u.a.defaults.xsrfHeaderName="X-CSRFTOKEN",n["default"].use(d["a"]);var U={name:"FoodListView",mixins:[p["c"],w,k["a"]],components:{GenericHorizontalCard:k["a"],GenericMultiselect:P["a"],GenericSplitLists:w},data:function(){return{this_model:"Food",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,i,o,a,s,c,u,d,p=this,l=new h["a"],f=null!==(r=null===O||void 0===O?void 0:O.query)&&void 0!==r?r:"",b=null!==(n=null===O||void 0===O?void 0:O.page)&&void 0!==n?n:1,v=null!==(i=null===O||void 0===O?void 0:O.root)&&void 0!==i?i:void 0,m=null!==(o=null===O||void 0===O?void 0:O.tree)&&void 0!==o?o:void 0,j=null!==(a=null===O||void 0===O?void 0:O.pageSize)&&void 0!==a?a:25;""===f&&(f=void 0,v=0);var O={query:null!==(s=null===e||void 0===e?void 0:e.query)&&void 0!==s?s:"",page:null!==(c=null===e||void 0===e?void 0:e.page)&&void 0!==c?c:1,root:null!==(u=null===e||void 0===e?void 0:e.id)&&void 0!==u?u:void 0},g=null!==(d=null===e||void 0===e?void 0:e.column)&&void 0!==d?d:"left",y=l.listFoods(f,v,m,b,j).then((function(e){var r;if(e.data.results.length){if("left"===g)p.foods=p.foods.concat(e.data.results),(null===(r=p.foods)||void 0===r?void 0:r.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},deleteObject:function(e,t,r){var n=this,i=new a["a"],o=i["destroy"+t](e).then((function(){})).catch((function(e){console.log(e),n.makeToast(n.$t("Error"),e.bodyText,"danger")}));r(o)},listObjects:function(e,t){var r=this;return Object(o["a"])(regeneratorRuntime.mark((function e(){var n,i,o,s,c,u,d,p,h,l,f;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(u=new a["a"],d=null!==(n=null===t||void 0===t?void 0:t.query)&&void 0!==n?n:"",p=null!==(i=null===t||void 0===t?void 0:t.page)&&void 0!==i?i:1,h=null!==(o=null===t||void 0===t?void 0:t.root)&&void 0!==o?o:void 0,l=null!==(s=null===t||void 0===t?void 0:t.tree)&&void 0!==s?s:void 0,f=null!==(c=null===t||void 0===t?void 0:t.pageSize)&&void 0!==c?c:25,!r.tree){e.next=12;break}return""===d&&(d=void 0,h=0),e.next=10,u.listFoods(d,h,l,p,f).then((function(e){return e}));case 10:e.next=14;break;case 12:return e.next=14,u.listFoods(d,p,f).then((function(e){return e}));case 14:case"end":return e.stop()}}),e)})))()}}},j=m,O=(r("1d21"),Object(p["a"])(j,n,i,!1,null,"05ce8dfc",null));t["a"]=O.exports},"1d21":function(e,t,r){"use strict";r("b7a1")},"2b2d":function(e,t,r){"use strict";r.d(t,"a",(function(){return w}));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"),h=r.n(p),l=(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=l),void 0===r&&(r=h.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+".")},j=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")))]),Date.parse(e.recipe.created_at)>new Date(Date.now()-6048e5)?r("b-badge",{attrs:{pill:"",variant:"success"}},[e._v(" "+e._s(e.$t("New"))+" ")]):e._e()]:[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"),h=r("830a");p["default"].prototype.moment=d.a;var l={name:"RecipeCard",mixins:[s["b"]],components:{LastCooked:h["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["g"])("view_recipe",this.recipe.id):Object(s["g"])("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=l,b=r("2877"),v=Object(b["a"])(f,n,i,!1,null,"354baad6",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("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},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:10}}).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,"7b150568",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"d",(function(){return s})),r.d(t,"b",(function(){return c})),r.d(t,"a",(function(){return u}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["g"])("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){d(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["g"])("api:cooklog-list"),e).then((function(e){Object(o["f"])("Saved","Cook Log entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function c(e){return i.a.get(Object(o["g"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){}))}function u(e){return i.a.post(Object(o["g"])("api:recipebookentry-list"),e).then((function(e){Object(o["f"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function d(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["e"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["f"])(r,t,"danger")}else Object(o["f"])("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()})},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"}')},b7a1:function(e,t,r){},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("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[r("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("7c15");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:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},l=h,f=(r("60bc"),r("2877")),b=Object(f["a"])(l,n,i,!1,null,null,null);t["a"]=b.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"f",(function(){return s})),r.d(t,"a",(function(){return c})),r.d(t,"e",(function(){return u})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return p})),r.d(t,"d",(function(){return l}));var n=r("53ca"),i=(r("99af"),r("59e4"));function o(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 a={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return s(e,t,r)}}};function s(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new i["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var c={methods:{_:function(e){return u(e)}}};function u(e){return window.gettext(e)}var d={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(e,t)}}};function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(n["a"])(t))return window.Urls[e](t);if("object"==Object(n["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 h(e){return window.USER_PREF[e]}function l(e,t){if(h("use_fractions")){var r="",n=o(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return f(e*t)}function f(e){var t=h("user_fractions")?h("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}},fc0d:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("div",{staticClass:"dropdown d-print-none"},[e._m(0),r("div",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{"aria-labelledby":"dropdownMenuLink"}},[r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_recipe",e.recipe.id)}},[r("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e.$t("Edit")))]),e.recipe.internal?e._e():r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_convert_recipe",e.recipe.id)}},[r("i",{staticClass:"fas fa-exchange-alt fa-fw"}),e._v(" "+e._s(e.$t("convert_internal")))]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_add_book_"+e.modal_id)}}},[r("i",{staticClass:"fas fa-bookmark fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Book"))+" ")])]),e.recipe.internal?r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_shopping")+"?r=["+e.recipe.id+","+e.servings_value+"]",target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-shopping-cart fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Shopping"))+" ")]):e._e(),r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_meal_plan")+"?recipe="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-calendar fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Plan"))+" ")]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_cook_log_"+e.modal_id)}}},[r("i",{staticClass:"fas fa-clipboard-list fa-fw"}),e._v(" "+e._s(e.$t("Log_Cooking"))+" ")])]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",attrs:{onclick:"window.print()"}},[r("i",{staticClass:"fas fa-print fa-fw"}),e._v(" "+e._s(e.$t("Print"))+" ")])]),r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_export")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-file-export fa-fw"}),e._v(" "+e._s(e.$t("Export")))]),r("a",{attrs:{href:"#"}},[e.recipe.internal?r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.createShareLink()}}},[r("i",{staticClass:"fas fa-share-alt fa-fw"}),e._v(" "+e._s(e.$t("Share"))+" ")]):e._e()])])]),r("cook-log",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),r("add-recipe-to-book",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),r("b-modal",{attrs:{id:"modal-share-link_"+e.modal_id,title:e.$t("Share"),"hide-footer":""}},[r("div",{staticClass:"row"},[r("div",{staticClass:"col col-md-12"},[void 0!==e.recipe_share_link?r("label",[e._v(e._s(e.$t("Public share link")))]):e._e(),r("input",{directives:[{name:"model",rawName:"v-model",value:e.recipe_share_link,expression:"recipe_share_link"}],ref:"share_link_ref",staticClass:"form-control",domProps:{value:e.recipe_share_link},on:{input:function(t){t.target.composing||(e.recipe_share_link=t.target.value)}}}),r("b-button",{staticClass:"mt-2 mb-3 d-none d-md-inline",attrs:{variant:"secondary"},on:{click:function(t){return e.$bvModal.hide("modal-share-link_"+e.modal_id)}}},[e._v(e._s(e.$t("Close"))+" ")]),r("b-button",{staticClass:"mt-2 mb-3 ml-md-2",attrs:{variant:"primary"},on:{click:function(t){return e.copyShareLink()}}},[e._v(e._s(e.$t("Copy")))]),r("b-button",{staticClass:"mt-2 mb-3 ml-2 float-right",attrs:{variant:"success"},on:{click:function(t){return e.shareIntend()}}},[e._v(e._s(e.$t("Share"))+" "),r("i",{staticClass:"fa fa-share-alt"})])],1)])])],1)},i=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("a",{staticClass:"btn shadow-none",attrs:{href:"#",role:"button",id:"dropdownMenuLink","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[r("i",{staticClass:"fas fa-ellipsis-v fa-lg"})])}],o=(r("a9e3"),r("9911"),r("b0c0"),r("99af"),r("fa7d")),a=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_cook_log_"+e.modal_id,title:e.$t("Log_Recipe_Cooking"),"ok-title":e.$t("Save"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.logCook()}}},[r("p",[e._v(e._s(e.$t("all_fields_optional")))]),r("form",[r("label",{attrs:{for:"id_log_servings"}},[e._v(e._s(e.$t("Servings")))]),r("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.servings,expression:"logObject.servings"}],staticClass:"form-control",attrs:{type:"number",id:"id_log_servings"},domProps:{value:e.logObject.servings},on:{input:function(t){t.target.composing||e.$set(e.logObject,"servings",t.target.value)}}}),r("label",{staticStyle:{"margin-top":"2vh"}},[e._v(e._s(e.$t("Rating"))+" - "),r("span",{attrs:{id:"id_rating_show"}},[e._v(e._s(e.logObject.rating)+"/5")])]),r("b-form-rating",{model:{value:e.logObject.rating,callback:function(t){e.$set(e.logObject,"rating",t)},expression:"logObject.rating"}}),r("label",{staticStyle:{"margin-top":"2vh"},attrs:{for:"id_date"}},[e._v(e._s(e.$t("Date")))]),r("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.created_at,expression:"logObject.created_at"}],staticClass:"form-control",attrs:{type:"datetime-local",id:"id_date"},domProps:{value:e.logObject.created_at},on:{input:function(t){t.target.composing||e.$set(e.logObject,"created_at",t.target.value)}}})],1)])],1)},s=[],c=r("c1df"),u=r.n(c),d=r("a026"),p=r("5f5b"),h=r("7c15");d["default"].prototype.moment=u.a,d["default"].use(p["a"]);var l={name:"CookLog",props:{recipe:Object,modal_id:Number},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:u()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){Object(h["d"])(this.logObject)}}},f=l,b=r("2877"),v=Object(b["a"])(f,a,s,!1,null,null,null),m=v.exports,j=r("bc3a"),O=r.n(j),g=r("d46a"),y={name:"RecipeContextMenu",mixins:[o["b"]],components:{AddRecipeToBook:g["a"],CookLog:m},data:function(){return{servings_value:0,recipe_share_link:void 0,modal_id:this.recipe.id+Math.round(1e5*Math.random())}},props:{recipe:Object,servings:{type:Number,default:-1}},mounted:function(){this.servings_value=-1===this.servings?this.recipe.servings:this.servings},methods:{createShareLink:function(){var e=this;O.a.get(Object(o["g"])("api_share_link",this.recipe.id)).then((function(t){e.$bvModal.show("modal-share-link_".concat(e.modal_id)),e.recipe_share_link=t.data.link})).catch((function(t){403===t.response.status&&Object(o["f"])(e.$t("Share"),e.$t("Sharing is not enabled for this space."),"danger")}))},copyShareLink:function(){var e=this.$refs.share_link_ref;e.select(),document.execCommand("copy")},shareIntend:function(){var e={title:this.recipe.name,text:"".concat(this.$t("Check out this recipe: ")," ").concat(this.recipe.name),url:this.recipe_share_link};navigator.share(e)}}},_=y,S=Object(b["a"])(_,n,i,!1,null,null,null);t["a"]=S.exports}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,s=t[0],c=t[1],u=t[2],p=0,h=[];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=[],h=(r("b0c0"),r("d3b7"),r("b047")),l=r.n(h),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:l()((function(){this.left_page=0,this.$emit("reset",{column:"left"}),this.left+=1}),700),search_left:l()((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,j=(r("60bc"),r("2877")),O=Object(j["a"])(m,d,p,!1,null,null,null),g=O.exports,y=r("0e20"),_=r("7432");n["default"].use(c["a"]);var S={name:"FoodListView",mixins:[u["e"],u["a"],u["b"]],components:{GenericHorizontalCard:y["a"],GenericMultiselect:_["a"],GenericSplitLists:g},data:function(){return{this_model:"Food",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")}))}}},k=S,w=Object(j["a"])(k,i,o,!1,null,null,null),P=w.exports,U=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:U["a"],render:function(e){return e(P)}}).$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-trash-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-trash-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,h=r("6b0a"),l=r("c7db"),f=r("39c3"),b={name:"GenericHorizontalCard",components:{GenericContextMenu:p,RecipeCard:h["a"]},mixins:[l["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},"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"),h=r.n(p),l=(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=l),void 0===r&&(r=h.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+".")},j=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")))]),Date.parse(e.recipe.created_at)>new Date(Date.now()-6048e5)?r("b-badge",{attrs:{pill:"",variant:"success"}},[e._v(" "+e._s(e.$t("New"))+" ")]):e._e()]:[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"),h=r("830a");p["default"].prototype.moment=d.a;var l={name:"RecipeCard",mixins:[s["d"]],components:{LastCooked:h["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["i"])("view_recipe",this.recipe.id):Object(s["i"])("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=l,b=r("2877"),v=Object(b["a"])(f,n,i,!1,null,"354baad6",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("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},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:10}}).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,"7b150568",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"d",(function(){return s})),r.d(t,"b",(function(){return c})),r.d(t,"a",(function(){return u}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["i"])("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){d(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["i"])("api:cooklog-list"),e).then((function(e){Object(o["h"])("Saved","Cook Log entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function c(e){return i.a.get(Object(o["i"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){}))}function u(e){return i.a.post(Object(o["i"])("api:recipebookentry-list"),e).then((function(e){Object(o["h"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function d(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["g"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["h"])(r,t,"danger")}else Object(o["h"])("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"}')},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("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[r("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("7c15");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:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},l=h,f=(r("60bc"),r("2877")),b=Object(f["a"])(l,n,i,!1,null,null,null);t["a"]=b.exports},d56b:function(e,t,r){"use strict";r("9db4")},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return l})),r.d(t,"h",(function(){return f})),r.d(t,"c",(function(){return b})),r.d(t,"g",(function(){return v})),r.d(t,"d",(function(){return m})),r.d(t,"i",(function(){return j})),r.d(t,"f",(function(){return g})),r.d(t,"a",(function(){return _})),r.d(t,"b",(function(){return k}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),s=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function c(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 u=r("2b2d"),d=r("bc3a"),p=r.n(d),h=r("a026"),l={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return f(e,t,r)}}};function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new s["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var b={methods:{_:function(e){return v(e)}}};function v(e){return window.gettext(e)}var m={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return j(e,t)}}};function j(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 O(e){return window.USER_PREF[e]}function g(e,t){if(O("use_fractions")){var r="",n=c(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=O("user_fractions")?O("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var _={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,d,p,h,l,f,b,v,m,j,O,g,y,_,k,w,P,U,R,C,L,E,x,T;e=e.toLowerCase();var I=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===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==s?s:{}),this.api_settings[e]);I.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(h=null===(l=this.api_settings)||void 0===l||null===(f=l.default)||void 0===f?void 0:f.values)&&void 0!==h?h:{}),null!==(b=null===(v=this.api_settings)||void 0===v||null===(m=v[null===(j=this.api_settings)||void 0===j||null===(O=j[e])||void 0===O?void 0:O.model_type])||void 0===m?void 0:m.values)&&void 0!==b?b:{}),this.api_settings[e].values),I.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(g=null===(y=this.api_settings)||void 0===y||null===(_=y.default)||void 0===_||null===(k=_.typing)||void 0===k?void 0:k[t])&&void 0!==g?g:{}),null!==(w=null===(P=this.api_settings)||void 0===P||null===(U=P[null===(C=this.api_settings)||void 0===C||null===(L=C[e])||void 0===L?void 0:L.model_type])||void 0===U||null===(R=U.typing)||void 0===R?void 0:R[t])&&void 0!==w?w:{}),null===(E=this.api_settings[e].typing)||void 0===E?void 0:E[t]);var B=t+I.name+(null!==(x=null===(T=this.api_settings.suffix)||void 0===T?void 0:T[t])&&void 0!==x?x:""),F=[],M=void 0;I[t].forEach((function(e,t){if(Array.isArray(e)){M={};for(var n=0,o=Object.entries(r);n1){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()})},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"}')},d76c:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"row"},[r("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[r("img",{staticClass:"spinner-tandoor",style:{height:e.size+"vh"},attrs:{alt:"loading spinner",src:""}})])])},i=[],o=(r("a9e3"),{name:"LoadingSpinner",props:{recipe:Object,size:{type:Number,default:30}}}),a=o,c=r("2877"),s=Object(c["a"])(a,n,i,!1,null,null,null);t["a"]=s.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"f",(function(){return c})),r.d(t,"a",(function(){return s})),r.d(t,"e",(function(){return u})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return p})),r.d(t,"d",(function(){return b}));var n=r("53ca"),i=(r("99af"),r("59e4"));function o(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var c=(n+o)/(i+a);if(e===c){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 s=Math.floor(n/i);return[s,n-s*i,i]}var a={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return c(e,t,r)}}};function c(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new i["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var s={methods:{_:function(e){return u(e)}}};function u(e){return window.gettext(e)}var d={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(e,t)}}};function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(n["a"])(t))return window.Urls[e](t);if("object"==Object(n["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 h(e){return window.USER_PREF[e]}function b(e,t){if(h("use_fractions")){var r="",n=o(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return f(e*t)}function f(e){var t=h("user_fractions")?h("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,c=t[0],s=t[1],u=t[2],p=0,h=[];p1){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()})},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"}')},d76c:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"row"},[r("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[r("img",{staticClass:"spinner-tandoor",style:{height:e.size+"vh"},attrs:{alt:"loading spinner",src:""}})])])},i=[],o=(r("a9e3"),{name:"LoadingSpinner",props:{recipe:Object,size:{type:Number,default:30}}}),a=o,c=r("2877"),s=Object(c["a"])(a,n,i,!1,null,null,null);t["a"]=s.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return b})),r.d(t,"h",(function(){return f})),r.d(t,"c",(function(){return l})),r.d(t,"g",(function(){return O})),r.d(t,"d",(function(){return j})),r.d(t,"i",(function(){return v})),r.d(t,"f",(function(){return m})),r.d(t,"a",(function(){return S})),r.d(t,"b",(function(){return U}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),c=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function s(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var c=(n+o)/(i+a);if(e===c){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 s=Math.floor(n/i);return[s,n-s*i,i]}var u=r("2b2d"),d=r("bc3a"),p=r.n(d),h=r("a026"),b={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return f(e,t,r)}}};function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new c["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var l={methods:{_:function(e){return O(e)}}};function O(e){return window.gettext(e)}var j={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return v(e,t)}}};function v(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 g(e){return window.USER_PREF[e]}function m(e,t){if(g("use_fractions")){var r="",n=s(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=g("user_fractions")?g("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var S={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,c,s,d,p,h,b,f,l,O,j,v,g,m,y,S,U,R,w,k,L,C,_,I,T,E;e=e.toLowerCase();var x=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!==(c=null===(s=this.api_settings)||void 0===s?void 0:s[null===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==c?c:{}),this.api_settings[e]);x.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(h=null===(b=this.api_settings)||void 0===b||null===(f=b.default)||void 0===f?void 0:f.values)&&void 0!==h?h:{}),null!==(l=null===(O=this.api_settings)||void 0===O||null===(j=O[null===(v=this.api_settings)||void 0===v||null===(g=v[e])||void 0===g?void 0:g.model_type])||void 0===j?void 0:j.values)&&void 0!==l?l:{}),this.api_settings[e].values),x.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(m=null===(y=this.api_settings)||void 0===y||null===(S=y.default)||void 0===S||null===(U=S.typing)||void 0===U?void 0:U[t])&&void 0!==m?m:{}),null!==(R=null===(w=this.api_settings)||void 0===w||null===(k=w[null===(C=this.api_settings)||void 0===C||null===(_=C[e])||void 0===_?void 0:_.model_type])||void 0===k||null===(L=k.typing)||void 0===L?void 0:L[t])&&void 0!==R?R:{}),null===(I=this.api_settings[e].typing)||void 0===I?void 0:I[t]);var B=t+x.name+(null!==(T=null===(E=this.api_settings.suffix)||void 0===E?void 0:E[t])&&void 0!==T?T:""),q=[],F=void 0;x[t].forEach((function(e,t){if(Array.isArray(e)){F={};for(var n=0,o=Object.entries(r);n0&&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},deleteObject:function(e,t,r){var n=this,i=new a["a"],o=i["destroy"+t](e).then((function(){})).catch((function(e){console.log(e),n.makeToast(n.$t("Error"),e.bodyText,"danger")}));r(o)},listObjects:function(e,t){var r=this;return Object(o["a"])(regeneratorRuntime.mark((function e(){var n,i,o,s,c,u,d,p,h,l,b;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(u=new a["a"],d=null!==(n=null===t||void 0===t?void 0:t.query)&&void 0!==n?n:"",p=null!==(i=null===t||void 0===t?void 0:t.page)&&void 0!==i?i:1,h=null!==(o=null===t||void 0===t?void 0:t.root)&&void 0!==o?o:void 0,l=null!==(s=null===t||void 0===t?void 0:t.tree)&&void 0!==s?s:void 0,b=null!==(c=null===t||void 0===t?void 0:t.pageSize)&&void 0!==c?c:25,!r.tree){e.next=12;break}return""===d&&(d=void 0,h=0),e.next=10,u.listFoods(d,h,l,p,b).then((function(e){return e}));case 10:e.next=14;break;case 12:return e.next=14,u.listFoods(d,p,b).then((function(e){return e}));case 14:case"end":return e.stop()}}),e)})))()}}},O=j,m=(r("1d21"),Object(p["a"])(O,n,i,!1,null,"05ce8dfc",null));t["a"]=m.exports},"1d21":function(e,t,r){"use strict";r("b7a1")},"2b2d":function(e,t,r){"use strict";r.d(t,"a",(function(){return S}));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"),h=r.n(p),l=(r("841c"),r("25f0"),r("b0c0"),"undefined"!==typeof window?localStorage.getItem("BASE_PATH")||"":location.protocol+"//"+location.host),b=function(){function e(e,t,r){void 0===t&&(t=l),void 0===r&&(r=h.a),this.basePath=t,this.axios=r,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}return e}(),f=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",j=function(e,t,r){if(null===r||void 0===r)throw new f(t,"Required parameter "+t+" was null or undefined when calling "+e+".")},O=function(e){for(var t=[],r=1;r=n.data.count&&e.complete()):"right"===t&&(r.right_page+=1,r.keywords2=r.keywords2.concat(n.data.results),e.loaded(),r.keywords2.length>=n.data.count&&e.complete()):(console.log("no data returned"),e.complete())})).catch((function(t){console.log(t),r.makeToast(r.$t("Error"),t.bodyText,"danger"),e.complete()}))},destroyCard:function(e){var t,r=this.findKeyword(this.keywords,e),i=this.findKeyword(this.keywords2,e),o=void 0;if(o=null!==(t=null===r||void 0===r?void 0:r.parent)&&void 0!==t?t:i.parent,o){var a=this.findKeyword(this.keywords,o),s=this.findKeyword(this.keywords2,o);if(a&&(n["default"].set(a,"numchild",a.numchild-1),a.show_children)){var c=a.children.indexOf(a.children.find((function(t){return t.id===e})));n["default"].delete(a.children,c)}if(s&&(n["default"].set(s,"numchild",s.numchild-1),s.show_children)){var u=s.children.indexOf(s.children.find((function(t){return t.id===e})));n["default"].delete(s.children,u)}}this.keywords=this.keywords.filter((function(t){return t.id!=e})),this.keywords2=this.keywords2.filter((function(t){return t.id!=e}))}}},w=y,_=(r("60bc"),r("2877")),S=Object(_["a"])(w,i,o,!1,null,null,null),k=S.exports,P=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:P["a"],render:function(e){return e(k)}}).$mount("#app")},"6b0a":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("b-card",{directives:[{name:"hover",rawName:"v-hover"}],attrs:{"no-body":""}},[r("a",{attrs:{href:e.clickUrl()}},[r("b-card-img-lazy",{staticStyle:{height:"15vh","object-fit":"cover"},attrs:{src:e.recipe_image,alt:e.$t("Recipe_Image"),top:""}}),r("div",{staticClass:"card-img-overlay h-100 d-flex flex-column justify-content-right",staticStyle:{float:"right","text-align":"right","padding-top":"10px","padding-right":"5px"}},[r("a",[null!==e.recipe?r("recipe-context-menu",{staticStyle:{float:"right"},attrs:{recipe:e.recipe}}):e._e()],1)])],1),r("b-card-body",{staticClass:"p-4"},[r("h6",[r("a",{attrs:{href:e.clickUrl()}},[null!==e.recipe?[e._v(e._s(e.recipe.name))]:[e._v(e._s(e.meal_plan.title))]],2)]),r("b-card-text",{staticStyle:{"text-overflow":"ellipsis"}},[null!==e.recipe?[r("recipe-rating",{attrs:{recipe:e.recipe}}),null!==e.recipe.description?[e.recipe.description.length>120?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")))]),Date.parse(e.recipe.created_at)>new Date(Date.now()-6048e5)?r("b-badge",{attrs:{pill:"",variant:"success"}},[e._v(" "+e._s(e.$t("New"))+" ")]):e._e()]:[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"),h=r("830a");p["default"].prototype.moment=d.a;var l={name:"RecipeCard",mixins:[s["b"]],components:{LastCooked:h["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["g"])("view_recipe",this.recipe.id):Object(s["g"])("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")}))}}}},b=l,f=r("2877"),v=Object(f["a"])(b,n,i,!1,null,"354baad6",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"}')},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("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},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:10}}).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,"7b150568",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"d",(function(){return s})),r.d(t,"b",(function(){return c})),r.d(t,"a",(function(){return u}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["g"])("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){d(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["g"])("api:cooklog-list"),e).then((function(e){Object(o["f"])("Saved","Cook Log entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function c(e){return i.a.get(Object(o["g"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){}))}function u(e){return i.a.post(Object(o["g"])("api:recipebookentry-list"),e).then((function(e){Object(o["f"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function d(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["e"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["f"])(r,t,"danger")}else Object(o["f"])("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()})},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"}')},b7a1:function(e,t,r){},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("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[r("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("7c15");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:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},l=h,b=(r("60bc"),r("2877")),f=Object(b["a"])(l,n,i,!1,null,null,null);t["a"]=f.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"f",(function(){return s})),r.d(t,"a",(function(){return c})),r.d(t,"e",(function(){return u})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return p})),r.d(t,"d",(function(){return l}));var n=r("53ca"),i=(r("99af"),r("59e4"));function o(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 a={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return s(e,t,r)}}};function s(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new i["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var c={methods:{_:function(e){return u(e)}}};function u(e){return window.gettext(e)}var d={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(e,t)}}};function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(n["a"])(t))return window.Urls[e](t);if("object"==Object(n["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 h(e){return window.USER_PREF[e]}function l(e,t){if(h("use_fractions")){var r="",n=o(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return b(e*t)}function b(e){var t=h("user_fractions")?h("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}},fc0d:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("div",{staticClass:"dropdown d-print-none"},[e._m(0),r("div",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{"aria-labelledby":"dropdownMenuLink"}},[r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_recipe",e.recipe.id)}},[r("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e.$t("Edit")))]),e.recipe.internal?e._e():r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_convert_recipe",e.recipe.id)}},[r("i",{staticClass:"fas fa-exchange-alt fa-fw"}),e._v(" "+e._s(e.$t("convert_internal")))]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_add_book_"+e.modal_id)}}},[r("i",{staticClass:"fas fa-bookmark fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Book"))+" ")])]),e.recipe.internal?r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_shopping")+"?r=["+e.recipe.id+","+e.servings_value+"]",target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-shopping-cart fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Shopping"))+" ")]):e._e(),r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_meal_plan")+"?recipe="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-calendar fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Plan"))+" ")]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_cook_log_"+e.modal_id)}}},[r("i",{staticClass:"fas fa-clipboard-list fa-fw"}),e._v(" "+e._s(e.$t("Log_Cooking"))+" ")])]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",attrs:{onclick:"window.print()"}},[r("i",{staticClass:"fas fa-print fa-fw"}),e._v(" "+e._s(e.$t("Print"))+" ")])]),r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_export")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-file-export fa-fw"}),e._v(" "+e._s(e.$t("Export")))]),r("a",{attrs:{href:"#"}},[e.recipe.internal?r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.createShareLink()}}},[r("i",{staticClass:"fas fa-share-alt fa-fw"}),e._v(" "+e._s(e.$t("Share"))+" ")]):e._e()])])]),r("cook-log",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),r("add-recipe-to-book",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),r("b-modal",{attrs:{id:"modal-share-link_"+e.modal_id,title:e.$t("Share"),"hide-footer":""}},[r("div",{staticClass:"row"},[r("div",{staticClass:"col col-md-12"},[void 0!==e.recipe_share_link?r("label",[e._v(e._s(e.$t("Public share link")))]):e._e(),r("input",{directives:[{name:"model",rawName:"v-model",value:e.recipe_share_link,expression:"recipe_share_link"}],ref:"share_link_ref",staticClass:"form-control",domProps:{value:e.recipe_share_link},on:{input:function(t){t.target.composing||(e.recipe_share_link=t.target.value)}}}),r("b-button",{staticClass:"mt-2 mb-3 d-none d-md-inline",attrs:{variant:"secondary"},on:{click:function(t){return e.$bvModal.hide("modal-share-link_"+e.modal_id)}}},[e._v(e._s(e.$t("Close"))+" ")]),r("b-button",{staticClass:"mt-2 mb-3 ml-md-2",attrs:{variant:"primary"},on:{click:function(t){return e.copyShareLink()}}},[e._v(e._s(e.$t("Copy")))]),r("b-button",{staticClass:"mt-2 mb-3 ml-2 float-right",attrs:{variant:"success"},on:{click:function(t){return e.shareIntend()}}},[e._v(e._s(e.$t("Share"))+" "),r("i",{staticClass:"fa fa-share-alt"})])],1)])])],1)},i=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("a",{staticClass:"btn shadow-none",attrs:{href:"#",role:"button",id:"dropdownMenuLink","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[r("i",{staticClass:"fas fa-ellipsis-v fa-lg"})])}],o=(r("a9e3"),r("9911"),r("b0c0"),r("99af"),r("fa7d")),a=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_cook_log_"+e.modal_id,title:e.$t("Log_Recipe_Cooking"),"ok-title":e.$t("Save"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.logCook()}}},[r("p",[e._v(e._s(e.$t("all_fields_optional")))]),r("form",[r("label",{attrs:{for:"id_log_servings"}},[e._v(e._s(e.$t("Servings")))]),r("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.servings,expression:"logObject.servings"}],staticClass:"form-control",attrs:{type:"number",id:"id_log_servings"},domProps:{value:e.logObject.servings},on:{input:function(t){t.target.composing||e.$set(e.logObject,"servings",t.target.value)}}}),r("label",{staticStyle:{"margin-top":"2vh"}},[e._v(e._s(e.$t("Rating"))+" - "),r("span",{attrs:{id:"id_rating_show"}},[e._v(e._s(e.logObject.rating)+"/5")])]),r("b-form-rating",{model:{value:e.logObject.rating,callback:function(t){e.$set(e.logObject,"rating",t)},expression:"logObject.rating"}}),r("label",{staticStyle:{"margin-top":"2vh"},attrs:{for:"id_date"}},[e._v(e._s(e.$t("Date")))]),r("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.created_at,expression:"logObject.created_at"}],staticClass:"form-control",attrs:{type:"datetime-local",id:"id_date"},domProps:{value:e.logObject.created_at},on:{input:function(t){t.target.composing||e.$set(e.logObject,"created_at",t.target.value)}}})],1)])],1)},s=[],c=r("c1df"),u=r.n(c),d=r("a026"),p=r("5f5b"),h=r("7c15");d["default"].prototype.moment=u.a,d["default"].use(p["a"]);var l={name:"CookLog",props:{recipe:Object,modal_id:Number},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:u()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){Object(h["d"])(this.logObject)}}},b=l,f=r("2877"),v=Object(f["a"])(b,a,s,!1,null,null,null),j=v.exports,O=r("bc3a"),m=r.n(O),g=r("d46a"),y={name:"RecipeContextMenu",mixins:[o["b"]],components:{AddRecipeToBook:g["a"],CookLog:j},data:function(){return{servings_value:0,recipe_share_link:void 0,modal_id:this.recipe.id+Math.round(1e5*Math.random())}},props:{recipe:Object,servings:{type:Number,default:-1}},mounted:function(){this.servings_value=-1===this.servings?this.recipe.servings:this.servings},methods:{createShareLink:function(){var e=this;m.a.get(Object(o["g"])("api_share_link",this.recipe.id)).then((function(t){e.$bvModal.show("modal-share-link_".concat(e.modal_id)),e.recipe_share_link=t.data.link})).catch((function(t){403===t.response.status&&Object(o["f"])(e.$t("Share"),e.$t("Sharing is not enabled for this space."),"danger")}))},copyShareLink:function(){var e=this.$refs.share_link_ref;e.select(),document.execCommand("copy")},shareIntend:function(){var e={title:this.recipe.name,text:"".concat(this.$t("Check out this recipe: ")," ").concat(this.recipe.name),url:this.recipe_share_link};navigator.share(e)}}},w=y,_=Object(f["a"])(w,n,i,!1,null,null,null);t["a"]=_.exports}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,s=t[0],c=t[1],u=t[2],p=0,h=[];p0&&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,j=(r("d56b"),Object(u["a"])(v,n,i,!1,null,"8f249282",null));t["a"]=j.exports},"2b2d":function(e,t,r){"use strict";r.d(t,"a",(function(){return S}));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"),h=r.n(p),l=(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=l),void 0===r&&(r=h.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",j=function(e,t,r){if(null===r||void 0===r)throw new b(t,"Required parameter "+t+" was null or undefined when calling "+e+".")},O=function(e){for(var t=[],r=1;r=n.data.count&&e.complete()):"right"===t&&(r.right_page+=1,r.keywords2=r.keywords2.concat(n.data.results),e.loaded(),r.keywords2.length>=n.data.count&&e.complete()):(console.log("no data returned"),e.complete())})).catch((function(t){console.log(t),r.makeToast(r.$t("Error"),t.bodyText,"danger"),e.complete()}))},destroyCard:function(e){var t,r=this.findKeyword(this.keywords,e),i=this.findKeyword(this.keywords2,e),o=void 0;if(o=null!==(t=null===r||void 0===r?void 0:r.parent)&&void 0!==t?t:i.parent,o){var a=this.findKeyword(this.keywords,o),s=this.findKeyword(this.keywords2,o);if(a&&(n["default"].set(a,"numchild",a.numchild-1),a.show_children)){var c=a.children.indexOf(a.children.find((function(t){return t.id===e})));n["default"].delete(a.children,c)}if(s&&(n["default"].set(s,"numchild",s.numchild-1),s.show_children)){var u=s.children.indexOf(s.children.find((function(t){return t.id===e})));n["default"].delete(s.children,u)}}this.keywords=this.keywords.filter((function(t){return t.id!=e})),this.keywords2=this.keywords2.filter((function(t){return t.id!=e}))}}},w=y,_=(r("60bc"),r("2877")),S=Object(_["a"])(w,i,o,!1,null,null,null),k=S.exports,P=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:P["a"],render:function(e){return e(k)}}).$mount("#app")},"6b0a":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("b-card",{directives:[{name:"hover",rawName:"v-hover"}],attrs:{"no-body":""}},[r("a",{attrs:{href:e.clickUrl()}},[r("b-card-img-lazy",{staticStyle:{height:"15vh","object-fit":"cover"},attrs:{src:e.recipe_image,alt:e.$t("Recipe_Image"),top:""}}),r("div",{staticClass:"card-img-overlay h-100 d-flex flex-column justify-content-right",staticStyle:{float:"right","text-align":"right","padding-top":"10px","padding-right":"5px"}},[r("a",[null!==e.recipe?r("recipe-context-menu",{staticStyle:{float:"right"},attrs:{recipe:e.recipe}}):e._e()],1)])],1),r("b-card-body",{staticClass:"p-4"},[r("h6",[r("a",{attrs:{href:e.clickUrl()}},[null!==e.recipe?[e._v(e._s(e.recipe.name))]:[e._v(e._s(e.meal_plan.title))]],2)]),r("b-card-text",{staticStyle:{"text-overflow":"ellipsis"}},[null!==e.recipe?[r("recipe-rating",{attrs:{recipe:e.recipe}}),null!==e.recipe.description?[e.recipe.description.length>120?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")))]),Date.parse(e.recipe.created_at)>new Date(Date.now()-6048e5)?r("b-badge",{attrs:{pill:"",variant:"success"}},[e._v(" "+e._s(e.$t("New"))+" ")]):e._e()]:[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"),h=r("830a");p["default"].prototype.moment=d.a;var l={name:"RecipeCard",mixins:[s["d"]],components:{LastCooked:h["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["i"])("view_recipe",this.recipe.id):Object(s["i"])("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=l,b=r("2877"),v=Object(b["a"])(f,n,i,!1,null,"354baad6",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"}')},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("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},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:10}}).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,"7b150568",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"d",(function(){return s})),r.d(t,"b",(function(){return c})),r.d(t,"a",(function(){return u}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["i"])("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){d(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["i"])("api:cooklog-list"),e).then((function(e){Object(o["h"])("Saved","Cook Log entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function c(e){return i.a.get(Object(o["i"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){}))}function u(e){return i.a.post(Object(o["i"])("api:recipebookentry-list"),e).then((function(e){Object(o["h"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function d(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["g"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["h"])(r,t,"danger")}else Object(o["h"])("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"}')},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("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[r("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("7c15");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:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},l=h,f=(r("60bc"),r("2877")),b=Object(f["a"])(l,n,i,!1,null,null,null);t["a"]=b.exports},d56b:function(e,t,r){"use strict";r("9db4")},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return l})),r.d(t,"h",(function(){return f})),r.d(t,"c",(function(){return b})),r.d(t,"g",(function(){return v})),r.d(t,"d",(function(){return j})),r.d(t,"i",(function(){return O})),r.d(t,"f",(function(){return g})),r.d(t,"a",(function(){return w})),r.d(t,"b",(function(){return S}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),s=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function c(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 u=r("2b2d"),d=r("bc3a"),p=r.n(d),h=r("a026"),l={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return f(e,t,r)}}};function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new s["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var b={methods:{_:function(e){return v(e)}}};function v(e){return window.gettext(e)}var j={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return O(e,t)}}};function O(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 m(e){return window.USER_PREF[e]}function g(e,t){if(m("use_fractions")){var r="",n=c(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=m("user_fractions")?m("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var w={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,d,p,h,l,f,b,v,j,O,m,g,y,w,S,k,P,U,R,C,L,E,T,I;e=e.toLowerCase();var x=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===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==s?s:{}),this.api_settings[e]);x.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(h=null===(l=this.api_settings)||void 0===l||null===(f=l.default)||void 0===f?void 0:f.values)&&void 0!==h?h:{}),null!==(b=null===(v=this.api_settings)||void 0===v||null===(j=v[null===(O=this.api_settings)||void 0===O||null===(m=O[e])||void 0===m?void 0:m.model_type])||void 0===j?void 0:j.values)&&void 0!==b?b:{}),this.api_settings[e].values),x.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(g=null===(y=this.api_settings)||void 0===y||null===(w=y.default)||void 0===w||null===(S=w.typing)||void 0===S?void 0:S[t])&&void 0!==g?g:{}),null!==(k=null===(P=this.api_settings)||void 0===P||null===(U=P[null===(C=this.api_settings)||void 0===C||null===(L=C[e])||void 0===L?void 0:L.model_type])||void 0===U||null===(R=U.typing)||void 0===R?void 0:R[t])&&void 0!==k?k:{}),null===(E=this.api_settings[e].typing)||void 0===E?void 0:E[t]);var B=t+x.name+(null!==(T=null===(I=this.api_settings.suffix)||void 0===I?void 0:I[t])&&void 0!==T?T:""),M=[],q=void 0;x[t].forEach((function(e,t){if(Array.isArray(e)){q={};for(var n=0,o=Object.entries(r);n1){var o=n[1];r[o]=e(t)}})),r}n["default"].use(o["a"]),r["a"]=new o["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:a()})},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"}')},da67:function(e,r,t){"use strict";t.r(r);t("e260"),t("e6cf"),t("cca6"),t("a79d");var n=t("a026"),o=function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{attrs:{id:"app"}},[t("label",[e._v(" "+e._s(e.$t("Search"))+" "),t("input",{directives:[{name:"model",rawName:"v-model",value:e.filter,expression:"filter"}],staticClass:"form-control",attrs:{type:"text"},domProps:{value:e.filter},on:{input:function(r){r.target.composing||(e.filter=r.target.value)}}})]),t("div",{staticClass:"row"},e._l(e.filtered_recipes,(function(r){return t("div",{key:r.id,staticClass:"col-md-3"},[t("b-card",{attrs:{title:r.name,tag:"article"}},[t("b-card-text",[t("span",{staticClass:"text-muted"},[e._v(e._s(e.formatDateTime(r.updated_at)))]),e._v(" "+e._s(r.description)+" ")]),t("b-button",{attrs:{href:e.resolveDjangoUrl("view_recipe",r.id),variant:"primary"}},[e._v(e._s(e.$t("Open")))])],1)],1)})),0)])},a=[],i=(t("159b"),t("caad"),t("2532"),t("b0c0"),t("4de4"),t("d3b7"),t("ddb0"),t("ac1f"),t("466d"),t("5f5b")),s=(t("2dd8"),t("fa7d")),c=t("c1df"),d=t.n(c);n["default"].use(i["a"]),n["default"].prototype.moment=d.a;var l={name:"OfflineView",mixins:[s["b"]],computed:{filtered_recipes:function(){var e=this,r={};return this.recipes.forEach((function(t){t.name.toLowerCase().includes(e.filter.toLowerCase())&&(t.id in r?t.updated_at>r[t.id].updated_at&&(r[t.id]=t):r[t.id]=t)})),r}},data:function(){return{recipes:[],filter:""}},mounted:function(){this.loadRecipe()},methods:{formatDateTime:function(e){return d.a.locale(window.navigator.language),d()(e).format("LLL")},loadRecipe:function(){var e=this;caches.open("api-recipe").then((function(r){r.keys().then((function(r){r.forEach((function(r){caches.match(r).then((function(r){r.json().then((function(r){e.recipes.push(r)}))}))}))}))}))}}},u=l,p=t("2877"),f=Object(p["a"])(u,o,a,!1,null,null,null),g=f.exports,_=t("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:_["a"],render:function(e){return e(g)}}).$mount("#app")},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,r,t){"use strict";t.d(r,"c",(function(){return i})),t.d(r,"f",(function(){return s})),t.d(r,"a",(function(){return c})),t.d(r,"e",(function(){return d})),t.d(r,"b",(function(){return l})),t.d(r,"g",(function(){return u})),t.d(r,"d",(function(){return f}));var n=t("53ca"),o=(t("99af"),t("59e4"));function a(e,r,t){var n=Math.floor(e),o=1,a=n+1,i=1;if(e!==n)while(o<=r&&i<=r){var s=(n+a)/(o+i);if(e===s){o+i<=r?(o+=i,n+=a,i=r+1):o>i?i=r+1:o=r+1;break}er&&(o=i,n=a),!t)return[0,n,o];var c=Math.floor(n/o);return[c,n-c*o,o]}var i={methods:{makeToast:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return s(e,r,t)}}};function s(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new o["a"];n.$bvToast.toast(r,{title:e,variant:t,toaster:"b-toaster-top-center",solid:!0})}var c={methods:{_:function(e){return d(e)}}};function d(e){return window.gettext(e)}var l={methods:{resolveDjangoUrl:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return u(e,r)}}};function u(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==r)return window.Urls[e]();if("object"!=Object(n["a"])(r))return window.Urls[e](r);if("object"==Object(n["a"])(r)){if(1===r.length)return window.Urls[e](r);if(2===r.length)return window.Urls[e](r[0],r[1]);if(3===r.length)return window.Urls[e](r[0],r[1],r[2])}}function p(e){return window.USER_PREF[e]}function f(e,r){if(p("use_fractions")){var t="",n=a(e*r,9,!0);return n[0]>0&&(t+=n[0]),n[1]>0&&(t+=" ".concat(n[1],"").concat(n[2],"")),t}return g(e*r)}function g(e){var r=p("user_fractions")?p("user_fractions"):2;return+(Math.round(e+"e+".concat(r))+"e-".concat(r))}}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,c=t[0],s=t[1],u=t[2],p=0,h=[];p1){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()})},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"}')},da67:function(e,t,r){"use strict";r.r(t);r("e260"),r("e6cf"),r("cca6"),r("a79d");var n=r("a026"),i=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{attrs:{id:"app"}},[r("label",[e._v(" "+e._s(e.$t("Search"))+" "),r("input",{directives:[{name:"model",rawName:"v-model",value:e.filter,expression:"filter"}],staticClass:"form-control",attrs:{type:"text"},domProps:{value:e.filter},on:{input:function(t){t.target.composing||(e.filter=t.target.value)}}})]),r("div",{staticClass:"row"},e._l(e.filtered_recipes,(function(t){return r("div",{key:t.id,staticClass:"col-md-3"},[r("b-card",{attrs:{title:t.name,tag:"article"}},[r("b-card-text",[r("span",{staticClass:"text-muted"},[e._v(e._s(e.formatDateTime(t.updated_at)))]),e._v(" "+e._s(t.description)+" ")]),r("b-button",{attrs:{href:e.resolveDjangoUrl("view_recipe",t.id),variant:"primary"}},[e._v(e._s(e.$t("Open")))])],1)],1)})),0)])},o=[],a=(r("159b"),r("caad"),r("2532"),r("b0c0"),r("4de4"),r("d3b7"),r("ddb0"),r("ac1f"),r("466d"),r("5f5b")),c=(r("2dd8"),r("fa7d")),s=r("c1df"),u=r.n(s);n["default"].use(a["a"]),n["default"].prototype.moment=u.a;var d={name:"OfflineView",mixins:[c["d"]],computed:{filtered_recipes:function(){var e=this,t={};return this.recipes.forEach((function(r){r.name.toLowerCase().includes(e.filter.toLowerCase())&&(r.id in t?r.updated_at>t[r.id].updated_at&&(t[r.id]=r):t[r.id]=r)})),t}},data:function(){return{recipes:[],filter:""}},mounted:function(){this.loadRecipe()},methods:{formatDateTime:function(e){return u.a.locale(window.navigator.language),u()(e).format("LLL")},loadRecipe:function(){var e=this;caches.open("api-recipe").then((function(t){t.keys().then((function(t){t.forEach((function(t){caches.match(t).then((function(t){t.json().then((function(t){e.recipes.push(t)}))}))}))}))}))}}},p=d,h=r("2877"),b=Object(h["a"])(p,i,o,!1,null,null,null),f=b.exports,l=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:l["a"],render:function(e){return e(f)}}).$mount("#app")},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return b})),r.d(t,"h",(function(){return f})),r.d(t,"c",(function(){return l})),r.d(t,"g",(function(){return j})),r.d(t,"d",(function(){return O})),r.d(t,"i",(function(){return v})),r.d(t,"f",(function(){return m})),r.d(t,"a",(function(){return S})),r.d(t,"b",(function(){return U}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),c=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function s(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var c=(n+o)/(i+a);if(e===c){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 s=Math.floor(n/i);return[s,n-s*i,i]}var u=r("2b2d"),d=r("bc3a"),p=r.n(d),h=r("a026"),b={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return f(e,t,r)}}};function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new c["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var l={methods:{_:function(e){return j(e)}}};function j(e){return window.gettext(e)}var O={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return v(e,t)}}};function v(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 g(e){return window.USER_PREF[e]}function m(e,t){if(g("use_fractions")){var r="",n=s(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=g("user_fractions")?g("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var S={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,c,s,d,p,h,b,f,l,j,O,v,g,m,y,S,U,R,w,k,L,C,I,_,T,E;e=e.toLowerCase();var x=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!==(c=null===(s=this.api_settings)||void 0===s?void 0:s[null===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==c?c:{}),this.api_settings[e]);x.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(h=null===(b=this.api_settings)||void 0===b||null===(f=b.default)||void 0===f?void 0:f.values)&&void 0!==h?h:{}),null!==(l=null===(j=this.api_settings)||void 0===j||null===(O=j[null===(v=this.api_settings)||void 0===v||null===(g=v[e])||void 0===g?void 0:g.model_type])||void 0===O?void 0:O.values)&&void 0!==l?l:{}),this.api_settings[e].values),x.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(m=null===(y=this.api_settings)||void 0===y||null===(S=y.default)||void 0===S||null===(U=S.typing)||void 0===U?void 0:U[t])&&void 0!==m?m:{}),null!==(R=null===(w=this.api_settings)||void 0===w||null===(k=w[null===(C=this.api_settings)||void 0===C||null===(I=C[e])||void 0===I?void 0:I.model_type])||void 0===k||null===(L=k.typing)||void 0===L?void 0:L[t])&&void 0!==R?R:{}),null===(_=this.api_settings[e].typing)||void 0===_?void 0:_[t]);var B=t+x.name+(null!==(T=null===(E=this.api_settings.suffix)||void 0===E?void 0:E[t])&&void 0!==T?T:""),q=[],F=void 0;x[t].forEach((function(e,t){if(Array.isArray(e)){F={};for(var n=0,o=Object.entries(r);n0?t.listRecipes(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,this.settings.sort_by_new,1,this.settings.recently_viewed,{query:{last_viewed:this.settings.recently_viewed}}).then((function(t){e.last_viewed_recipes=t.data.results})):this.last_viewed_recipes=[]},genericSelectChanged:function(e){this.settings[e.var]=e.val,this.refreshData(!1)},resetSearch:function(){this.settings.search_input="",this.settings.search_internal=!1,this.settings.search_keywords=[],this.settings.search_foods=[],this.settings.search_books=[],this.settings.pagination_page=1,this.refreshData(!1)},pageChange:function(e){this.settings.pagination_page=e,this.refreshData(!1)},isAdvancedSettingsSet:function(){return this.settings.search_keywords.length+this.settings.search_foods.length+this.settings.search_books.length>0},normalizer:function(e){return{id:e.id,label:e.name+" ("+e.count+")",children:e.children,isDefaultExpanded:e.isDefaultExpanded}}}},S=y,_=(r("60bc"),r("2877")),w=Object(_["a"])(S,i,o,!1,null,null,null),k=w.exports,P=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:P["a"],render:function(e){return e(k)}}).$mount("#app")},"6b0a":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("b-card",{directives:[{name:"hover",rawName:"v-hover"}],attrs:{"no-body":""}},[r("a",{attrs:{href:e.clickUrl()}},[r("b-card-img-lazy",{staticStyle:{height:"15vh","object-fit":"cover"},attrs:{src:e.recipe_image,alt:e.$t("Recipe_Image"),top:""}}),r("div",{staticClass:"card-img-overlay h-100 d-flex flex-column justify-content-right",staticStyle:{float:"right","text-align":"right","padding-top":"10px","padding-right":"5px"}},[r("a",[null!==e.recipe?r("recipe-context-menu",{staticStyle:{float:"right"},attrs:{recipe:e.recipe}}):e._e()],1)])],1),r("b-card-body",{staticClass:"p-4"},[r("h6",[r("a",{attrs:{href:e.clickUrl()}},[null!==e.recipe?[e._v(e._s(e.recipe.name))]:[e._v(e._s(e.meal_plan.title))]],2)]),r("b-card-text",{staticStyle:{"text-overflow":"ellipsis"}},[null!==e.recipe?[r("recipe-rating",{attrs:{recipe:e.recipe}}),null!==e.recipe.description?[e.recipe.description.length>120?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")))]),Date.parse(e.recipe.created_at)>new Date(Date.now()-6048e5)?r("b-badge",{attrs:{pill:"",variant:"success"}},[e._v(" "+e._s(e.$t("New"))+" ")]):e._e()]:[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"),h=r("830a");p["default"].prototype.moment=d.a;var l={name:"RecipeCard",mixins:[s["b"]],components:{LastCooked:h["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["g"])("view_recipe",this.recipe.id):Object(s["g"])("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")}))}}}},b=l,f=r("2877"),j=Object(f["a"])(b,n,i,!1,null,"354baad6",null);t["a"]=j.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"}')},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("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},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:10}}).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,"7b150568",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"d",(function(){return s})),r.d(t,"b",(function(){return c})),r.d(t,"a",(function(){return u}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["g"])("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){d(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["g"])("api:cooklog-list"),e).then((function(e){Object(o["f"])("Saved","Cook Log entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function c(e){return i.a.get(Object(o["g"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){}))}function u(e){return i.a.post(Object(o["g"])("api:recipebookentry-list"),e).then((function(e){Object(o["f"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function d(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["e"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["f"])(r,t,"danger")}else Object(o["f"])("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()})},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"}')},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("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[r("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("7c15");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:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},l=h,b=(r("60bc"),r("2877")),f=Object(b["a"])(l,n,i,!1,null,null,null);t["a"]=f.exports},d76c:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"row"},[r("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[r("img",{staticClass:"spinner-tandoor",style:{height:e.size+"vh"},attrs:{alt:"loading spinner",src:""}})])])},i=[],o=(r("a9e3"),{name:"LoadingSpinner",props:{recipe:Object,size:{type:Number,default:30}}}),a=o,s=r("2877"),c=Object(s["a"])(a,n,i,!1,null,null,null);t["a"]=c.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"f",(function(){return s})),r.d(t,"a",(function(){return c})),r.d(t,"e",(function(){return u})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return p})),r.d(t,"d",(function(){return l}));var n=r("53ca"),i=(r("99af"),r("59e4"));function o(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 a={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return s(e,t,r)}}};function s(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new i["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var c={methods:{_:function(e){return u(e)}}};function u(e){return window.gettext(e)}var d={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(e,t)}}};function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(n["a"])(t))return window.Urls[e](t);if("object"==Object(n["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 h(e){return window.USER_PREF[e]}function l(e,t){if(h("use_fractions")){var r="",n=o(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return b(e*t)}function b(e){var t=h("user_fractions")?h("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}},fc0d:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("div",{staticClass:"dropdown d-print-none"},[e._m(0),r("div",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{"aria-labelledby":"dropdownMenuLink"}},[r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_recipe",e.recipe.id)}},[r("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e.$t("Edit")))]),e.recipe.internal?e._e():r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_convert_recipe",e.recipe.id)}},[r("i",{staticClass:"fas fa-exchange-alt fa-fw"}),e._v(" "+e._s(e.$t("convert_internal")))]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_add_book_"+e.modal_id)}}},[r("i",{staticClass:"fas fa-bookmark fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Book"))+" ")])]),e.recipe.internal?r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_shopping")+"?r=["+e.recipe.id+","+e.servings_value+"]",target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-shopping-cart fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Shopping"))+" ")]):e._e(),r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_meal_plan")+"?recipe="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-calendar fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Plan"))+" ")]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_cook_log_"+e.modal_id)}}},[r("i",{staticClass:"fas fa-clipboard-list fa-fw"}),e._v(" "+e._s(e.$t("Log_Cooking"))+" ")])]),r("a",{attrs:{href:"#"}},[r("button",{staticClass:"dropdown-item",attrs:{onclick:"window.print()"}},[r("i",{staticClass:"fas fa-print fa-fw"}),e._v(" "+e._s(e.$t("Print"))+" ")])]),r("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_export")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[r("i",{staticClass:"fas fa-file-export fa-fw"}),e._v(" "+e._s(e.$t("Export")))]),r("a",{attrs:{href:"#"}},[e.recipe.internal?r("button",{staticClass:"dropdown-item",on:{click:function(t){return e.createShareLink()}}},[r("i",{staticClass:"fas fa-share-alt fa-fw"}),e._v(" "+e._s(e.$t("Share"))+" ")]):e._e()])])]),r("cook-log",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),r("add-recipe-to-book",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),r("b-modal",{attrs:{id:"modal-share-link_"+e.modal_id,title:e.$t("Share"),"hide-footer":""}},[r("div",{staticClass:"row"},[r("div",{staticClass:"col col-md-12"},[void 0!==e.recipe_share_link?r("label",[e._v(e._s(e.$t("Public share link")))]):e._e(),r("input",{directives:[{name:"model",rawName:"v-model",value:e.recipe_share_link,expression:"recipe_share_link"}],ref:"share_link_ref",staticClass:"form-control",domProps:{value:e.recipe_share_link},on:{input:function(t){t.target.composing||(e.recipe_share_link=t.target.value)}}}),r("b-button",{staticClass:"mt-2 mb-3 d-none d-md-inline",attrs:{variant:"secondary"},on:{click:function(t){return e.$bvModal.hide("modal-share-link_"+e.modal_id)}}},[e._v(e._s(e.$t("Close"))+" ")]),r("b-button",{staticClass:"mt-2 mb-3 ml-md-2",attrs:{variant:"primary"},on:{click:function(t){return e.copyShareLink()}}},[e._v(e._s(e.$t("Copy")))]),r("b-button",{staticClass:"mt-2 mb-3 ml-2 float-right",attrs:{variant:"success"},on:{click:function(t){return e.shareIntend()}}},[e._v(e._s(e.$t("Share"))+" "),r("i",{staticClass:"fa fa-share-alt"})])],1)])])],1)},i=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("a",{staticClass:"btn shadow-none",attrs:{href:"#",role:"button",id:"dropdownMenuLink","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[r("i",{staticClass:"fas fa-ellipsis-v fa-lg"})])}],o=(r("a9e3"),r("9911"),r("b0c0"),r("99af"),r("fa7d")),a=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-modal",{staticClass:"modal",attrs:{id:"id_modal_cook_log_"+e.modal_id,title:e.$t("Log_Recipe_Cooking"),"ok-title":e.$t("Save"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.logCook()}}},[r("p",[e._v(e._s(e.$t("all_fields_optional")))]),r("form",[r("label",{attrs:{for:"id_log_servings"}},[e._v(e._s(e.$t("Servings")))]),r("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.servings,expression:"logObject.servings"}],staticClass:"form-control",attrs:{type:"number",id:"id_log_servings"},domProps:{value:e.logObject.servings},on:{input:function(t){t.target.composing||e.$set(e.logObject,"servings",t.target.value)}}}),r("label",{staticStyle:{"margin-top":"2vh"}},[e._v(e._s(e.$t("Rating"))+" - "),r("span",{attrs:{id:"id_rating_show"}},[e._v(e._s(e.logObject.rating)+"/5")])]),r("b-form-rating",{model:{value:e.logObject.rating,callback:function(t){e.$set(e.logObject,"rating",t)},expression:"logObject.rating"}}),r("label",{staticStyle:{"margin-top":"2vh"},attrs:{for:"id_date"}},[e._v(e._s(e.$t("Date")))]),r("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.created_at,expression:"logObject.created_at"}],staticClass:"form-control",attrs:{type:"datetime-local",id:"id_date"},domProps:{value:e.logObject.created_at},on:{input:function(t){t.target.composing||e.$set(e.logObject,"created_at",t.target.value)}}})],1)])],1)},s=[],c=r("c1df"),u=r.n(c),d=r("a026"),p=r("5f5b"),h=r("7c15");d["default"].prototype.moment=u.a,d["default"].use(p["a"]);var l={name:"CookLog",props:{recipe:Object,modal_id:Number},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:u()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){Object(h["d"])(this.logObject)}}},b=l,f=r("2877"),j=Object(f["a"])(b,a,s,!1,null,null,null),O=j.exports,v=r("bc3a"),g=r.n(v),m=r("d46a"),y={name:"RecipeContextMenu",mixins:[o["b"]],components:{AddRecipeToBook:m["a"],CookLog:O},data:function(){return{servings_value:0,recipe_share_link:void 0,modal_id:this.recipe.id+Math.round(1e5*Math.random())}},props:{recipe:Object,servings:{type:Number,default:-1}},mounted:function(){this.servings_value=-1===this.servings?this.recipe.servings:this.servings},methods:{createShareLink:function(){var e=this;g.a.get(Object(o["g"])("api_share_link",this.recipe.id)).then((function(t){e.$bvModal.show("modal-share-link_".concat(e.modal_id)),e.recipe_share_link=t.data.link})).catch((function(t){403===t.response.status&&Object(o["f"])(e.$t("Share"),e.$t("Sharing is not enabled for this space."),"danger")}))},copyShareLink:function(){var e=this.$refs.share_link_ref;e.select(),document.execCommand("copy")},shareIntend:function(){var e={title:this.recipe.name,text:"".concat(this.$t("Check out this recipe: ")," ").concat(this.recipe.name),url:this.recipe_share_link};navigator.share(e)}}},S=y,_=Object(f["a"])(S,n,i,!1,null,null,null);t["a"]=_.exports}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,s=t[0],c=t[1],u=t[2],p=0,h=[];p0?t.listRecipes(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,this.settings.sort_by_new,1,this.settings.recently_viewed,{query:{last_viewed:this.settings.recently_viewed}}).then((function(t){e.last_viewed_recipes=t.data.results})):this.last_viewed_recipes=[]},genericSelectChanged:function(e){this.settings[e.var]=e.val,this.refreshData(!1)},resetSearch:function(){this.settings.search_input="",this.settings.search_internal=!1,this.settings.search_keywords=[],this.settings.search_foods=[],this.settings.search_books=[],this.settings.pagination_page=1,this.refreshData(!1)},pageChange:function(e){this.settings.pagination_page=e,this.refreshData(!1)},isAdvancedSettingsSet:function(){return this.settings.search_keywords.length+this.settings.search_foods.length+this.settings.search_books.length>0},normalizer:function(e){return{id:e.id,label:e.name+" ("+e.count+")",children:e.children,isDefaultExpanded:e.isDefaultExpanded}}}},_=y,S=(r("60bc"),r("2877")),w=Object(S["a"])(_,i,o,!1,null,null,null),k=w.exports,P=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:P["a"],render:function(e){return e(k)}}).$mount("#app")},"6b0a":function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("b-card",{directives:[{name:"hover",rawName:"v-hover"}],attrs:{"no-body":""}},[r("a",{attrs:{href:e.clickUrl()}},[r("b-card-img-lazy",{staticStyle:{height:"15vh","object-fit":"cover"},attrs:{src:e.recipe_image,alt:e.$t("Recipe_Image"),top:""}}),r("div",{staticClass:"card-img-overlay h-100 d-flex flex-column justify-content-right",staticStyle:{float:"right","text-align":"right","padding-top":"10px","padding-right":"5px"}},[r("a",[null!==e.recipe?r("recipe-context-menu",{staticStyle:{float:"right"},attrs:{recipe:e.recipe}}):e._e()],1)])],1),r("b-card-body",{staticClass:"p-4"},[r("h6",[r("a",{attrs:{href:e.clickUrl()}},[null!==e.recipe?[e._v(e._s(e.recipe.name))]:[e._v(e._s(e.meal_plan.title))]],2)]),r("b-card-text",{staticStyle:{"text-overflow":"ellipsis"}},[null!==e.recipe?[r("recipe-rating",{attrs:{recipe:e.recipe}}),null!==e.recipe.description?[e.recipe.description.length>120?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")))]),Date.parse(e.recipe.created_at)>new Date(Date.now()-6048e5)?r("b-badge",{attrs:{pill:"",variant:"success"}},[e._v(" "+e._s(e.$t("New"))+" ")]):e._e()]:[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"),h=r("830a");p["default"].prototype.moment=d.a;var l={name:"RecipeCard",mixins:[s["d"]],components:{LastCooked:h["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["i"])("view_recipe",this.recipe.id):Object(s["i"])("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")}))}}}},b=l,f=r("2877"),v=Object(f["a"])(b,n,i,!1,null,"354baad6",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"}')},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("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},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:10}}).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,"7b150568",null);t["a"]=p.exports},"7c15":function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"d",(function(){return s})),r.d(t,"b",(function(){return c})),r.d(t,"a",(function(){return u}));var n=r("bc3a"),i=r.n(n),o=r("fa7d");function a(e){var t=Object(o["i"])("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){d(e,"There was an error loading a resource!","danger")}))}function s(e){return i.a.post(Object(o["i"])("api:cooklog-list"),e).then((function(e){Object(o["h"])("Saved","Cook Log entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function c(e){return i.a.get(Object(o["i"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){}))}function u(e){return i.a.post(Object(o["i"])("api:recipebookentry-list"),e).then((function(e){Object(o["h"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function d(e,t){if("response"in e){console.log(e.response);var r="statusText"in e.response?e.response.statusText:Object(o["g"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(o["h"])(r,t,"danger")}else Object(o["h"])("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()})},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"}')},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("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[r("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("7c15");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:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},l=h,b=(r("60bc"),r("2877")),f=Object(b["a"])(l,n,i,!1,null,null,null);t["a"]=f.exports},d76c:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"row"},[r("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[r("img",{staticClass:"spinner-tandoor",style:{height:e.size+"vh"},attrs:{alt:"loading spinner",src:""}})])])},i=[],o=(r("a9e3"),{name:"LoadingSpinner",props:{recipe:Object,size:{type:Number,default:30}}}),a=o,s=r("2877"),c=Object(s["a"])(a,n,i,!1,null,null,null);t["a"]=c.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return l})),r.d(t,"h",(function(){return b})),r.d(t,"c",(function(){return f})),r.d(t,"g",(function(){return v})),r.d(t,"d",(function(){return j})),r.d(t,"i",(function(){return O})),r.d(t,"f",(function(){return m})),r.d(t,"a",(function(){return _})),r.d(t,"b",(function(){return w}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),s=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function c(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 u=r("2b2d"),d=r("bc3a"),p=r.n(d),h=r("a026"),l={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return b(e,t,r)}}};function b(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new s["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var f={methods:{_:function(e){return v(e)}}};function v(e){return window.gettext(e)}var j={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return O(e,t)}}};function O(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 g(e){return window.USER_PREF[e]}function m(e,t){if(g("use_fractions")){var r="",n=c(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=g("user_fractions")?g("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var _={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,d,p,h,l,b,f,v,j,O,g,m,y,_,w,k,P,U,R,C,L,I,E,T;e=e.toLowerCase();var x=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===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==s?s:{}),this.api_settings[e]);x.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(h=null===(l=this.api_settings)||void 0===l||null===(b=l.default)||void 0===b?void 0:b.values)&&void 0!==h?h:{}),null!==(f=null===(v=this.api_settings)||void 0===v||null===(j=v[null===(O=this.api_settings)||void 0===O||null===(g=O[e])||void 0===g?void 0:g.model_type])||void 0===j?void 0:j.values)&&void 0!==f?f:{}),this.api_settings[e].values),x.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(m=null===(y=this.api_settings)||void 0===y||null===(_=y.default)||void 0===_||null===(w=_.typing)||void 0===w?void 0:w[t])&&void 0!==m?m:{}),null!==(k=null===(P=this.api_settings)||void 0===P||null===(U=P[null===(C=this.api_settings)||void 0===C||null===(L=C[e])||void 0===L?void 0:L.model_type])||void 0===U||null===(R=U.typing)||void 0===R?void 0:R[t])&&void 0!==k?k:{}),null===(I=this.api_settings[e].typing)||void 0===I?void 0:I[t]);var B=t+x.name+(null!==(E=null===(T=this.api_settings.suffix)||void 0===T?void 0:T[t])&&void 0!==E?E:""),q=[],F=void 0;x[t].forEach((function(e,t){if(Array.isArray(e)){F={};for(var n=0,o=Object.entries(r);n0?i("div",{staticClass:"col-md-6 order-md-1 col-sm-12 order-sm-2 col-12 order-2"},[i("div",{staticClass:"card border-primary"},[i("div",{staticClass:"card-body"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col col-md-8"},[i("h4",{staticClass:"card-title"},[i("i",{staticClass:"fas fa-pepper-hot"}),e._v(" "+e._s(e.$t("Ingredients")))])])]),i("br"),i("div",{staticClass:"row"},[i("div",{staticClass:"col-md-12"},[i("table",{staticClass:"table table-sm"},[e._l(e.recipe.steps,(function(t){return[e._l(t.ingredients,(function(t){return[i("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":e.updateIngredientCheckedState}})]}))]}))],2)])])])])]):e._e(),i("div",{staticClass:"col-12 order-1 col-sm-12 order-sm-1 col-md-6 order-md-2"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col-12"},[null!==e.recipe.image?i("img",{staticClass:"img img-fluid rounded",staticStyle:{"max-height":"30vh"},attrs:{src:e.recipe.image,alt:e.$t("Recipe_Image")}}):e._e()])]),i("div",{staticClass:"row",staticStyle:{"margin-top":"2vh","margin-bottom":"2vh"}},[i("div",{staticClass:"col-12"},[i("Nutrition",{attrs:{recipe:e.recipe,ingredient_factor:e.ingredient_factor}})],1)])])]),e.recipe.internal?e._e():[e.recipe.file_path.includes(".pdf")?i("div",[i("PdfViewer",{attrs:{recipe:e.recipe}})],1):e._e(),e.recipe.file_path.includes(".png")||e.recipe.file_path.includes(".jpg")||e.recipe.file_path.includes(".jpeg")||e.recipe.file_path.includes(".gif")?i("div",[i("ImageViewer",{attrs:{recipe:e.recipe}})],1):e._e()],e._l(e.recipe.steps,(function(t,r){return i("div",{key:t.id,staticStyle:{"margin-top":"1vh"}},[i("Step",{attrs:{recipe:e.recipe,step:t,ingredient_factor:e.ingredient_factor,index:r,start_time:e.start_time},on:{"update-start-time":e.updateStartTime,"checked-state-changed":e.updateIngredientCheckedState}})],1)}))],2),i("add-recipe-to-book",{attrs:{recipe:e.recipe}}),"None"!==e.share_uid?i("div",{staticClass:"row text-center d-print-none",staticStyle:{"margin-top":"3vh","margin-bottom":"3vh"}},[i("div",{staticClass:"col col-md-12"},[i("a",{attrs:{href:e.resolveDjangoUrl("view_report_share_abuse",e.share_uid)}},[e._v(e._s(e.$t("Report Abuse")))])])]):e._e()],2)},n=[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[i("i",{staticClass:"fas fa-user-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[i("i",{staticClass:"far fa-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[i("i",{staticClass:"fas fa-pizza-slice fa-2x text-primary"})])}],s=i("b85c"),o=i("5f5b"),c=(i("2dd8"),i("7c15")),l=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("hr"),"TEXT"===e.step.type||"RECIPE"===e.step.type?[e.recipe.steps.length>1?i("div",{staticClass:"row"},[i("div",{staticClass:"col col-md-8"},[i("h5",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e.$t("Step"))+" "+e._s(e.index+1))],0!==e.step.time?i("small",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[i("i",{staticClass:"fas fa-user-clock"}),e._v(" "+e._s(e.step.time)+" "+e._s(e.$t("min"))+" ")]):e._e(),""!==e.start_time?i("small",{staticClass:"d-print-none"},[i("b-link",{attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")])],1):e._e()],2)]),i("div",{staticClass:"col col-md-4",staticStyle:{"text-align":"right"}},[i("b-button",{staticClass:"shadow-none d-print-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[i("i",{staticClass:"far fa-check-circle"})])],1)]):e._e()]:e._e(),"TEXT"===e.step.type?[i("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[i("div",{staticClass:"row"},[e.step.ingredients.length>0&&(e.recipe.steps.length>1||e.force_ingredients)?i("div",{staticClass:"col col-md-4"},[i("table",{staticClass:"table table-sm"},[e._l(e.step.ingredients,(function(t){return[i("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":function(i){return e.$emit("checked-state-changed",t)}}})]}))],2)]):e._e(),i("div",{staticClass:"col",class:{"col-md-8":e.recipe.steps.length>1,"col-md-12":e.recipe.steps.length<=1}},[i("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)])])]:e._e(),"TIME"===e.step.type||"FILE"===e.step.type?[i("div",{staticClass:"row"},[i("div",{staticClass:"col-md-8 offset-md-2",staticStyle:{"text-align":"center"}},[i("h4",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e.$t("Step"))+" "+e._s(e.index+1))]],2),0!==e.step.time?i("span",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[i("i",{staticClass:"fa fa-stopwatch"}),e._v(" "+e._s(e.step.time)+" "+e._s(e.$t("min")))]):e._e(),""!==e.start_time?i("b-link",{staticClass:"d-print-none",attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")]):e._e()],1),i("div",{staticClass:"col-md-2",staticStyle:{"text-align":"right"}},[i("b-button",{staticClass:"shadow-none d-print-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[i("i",{staticClass:"far fa-check-circle"})])],1)]),i("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[""!==e.step.instruction?i("div",{staticClass:"row"},[i("div",{staticClass:"col col-md-12",staticStyle:{"text-align":"center"}},[i("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)]):e._e()])]:e._e(),i("div",{staticClass:"row",staticStyle:{"text-align":"center"}},[i("div",{staticClass:"col col-md-12"},[null!==e.step.file?[e.step.file.file.includes(".png")||e.recipe.file_path.includes(".jpg")||e.recipe.file_path.includes(".jpeg")||e.recipe.file_path.includes(".gif")?i("div",[i("img",{staticStyle:{"max-width":"50vw","max-height":"50vh"},attrs:{src:e.step.file.file}})]):i("div",[i("a",{attrs:{href:e.step.file.file,target:"_blank",rel:"noreferrer nofollow"}},[e._v(e._s(e.$t("Download"))+" "+e._s(e.$t("File")))])])]:e._e()],2)]),"RECIPE"===e.step.type&&null!==e.step.step_recipe_data?i("div",{staticClass:"card"},[i("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[i("div",{staticClass:"card-body"},[i("h2",{staticClass:"card-title"},[i("a",{attrs:{href:e.resolveDjangoUrl("view_recipe",e.step.step_recipe_data.id)}},[e._v(e._s(e.step.step_recipe_data.name))])]),e._l(e.step.step_recipe_data.steps,(function(t,r){return i("div",{key:"substep_"+t.id},[i("Step",{attrs:{recipe:e.step.step_recipe_data,step:t,ingredient_factor:e.ingredient_factor,index:r,start_time:e.start_time,force_ingredients:!0}})],1)}))],2)])],1):e._e(),""!==e.start_time?i("div",[i("b-popover",{ref:"id_reactive_popover_"+e.step.id,attrs:{target:"id_reactive_popover_"+e.step.id,triggers:"click",placement:"bottom",title:e.$t("Step start time")}},[i("div",[i("b-form-group",{staticClass:"mb-1",attrs:{label:"Time","label-for":"popover-input-1","label-cols":"3"}},[i("b-form-input",{attrs:{type:"datetime-local",id:"popover-input-1",size:"sm"},model:{value:e.set_time_input,callback:function(t){e.set_time_input=t},expression:"set_time_input"}})],1)],1),i("div",{staticClass:"row",staticStyle:{"margin-top":"1vh"}},[i("div",{staticClass:"col-12",staticStyle:{"text-align":"right"}},[i("b-button",{staticStyle:{"margin-right":"8px"},attrs:{size:"sm",variant:"secondary"},on:{click:e.closePopover}},[e._v("Cancel")]),i("b-button",{attrs:{size:"sm",variant:"primary"},on:{click:e.updateTime}},[e._v("Ok")])],1)])])],1):e._e()],2)},d=[],p=(i("a9e3"),i("fa7d")),u=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("tr",{on:{click:function(t){return e.$emit("checked-state-changed",e.ingredient)}}},[e.ingredient.is_header?[i("td",{attrs:{colspan:"5"}},[i("b",[e._v(e._s(e.ingredient.note))])])]:[i("td",{staticClass:"d-print-none"},[e.ingredient.checked?i("i",{staticClass:"far fa-check-circle text-success"}):e._e(),e.ingredient.checked?e._e():i("i",{staticClass:"far fa-check-circle text-primary"})]),i("td",[0!==e.ingredient.amount?i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.ingredient.amount))}}):e._e()]),i("td",[null===e.ingredient.unit||e.ingredient.no_amount?e._e():i("span",[e._v(e._s(e.ingredient.unit.name))])]),i("td",[null!==e.ingredient.food?[null!==e.ingredient.food.recipe?i("a",{attrs:{href:e.resolveDjangoUrl("view_recipe",e.ingredient.food.recipe),target:"_blank",rel:"noopener noreferrer"}},[e._v(e._s(e.ingredient.food.name))]):e._e(),null===e.ingredient.food.recipe?i("span",[e._v(e._s(e.ingredient.food.name))]):e._e()]:e._e()],2),i("td",[e.ingredient.note?i("div",[i("span",{directives:[{name:"b-popover",rawName:"v-b-popover.hover",value:e.ingredient.note,expression:"ingredient.note",modifiers:{hover:!0}}],staticClass:"d-print-none"},[i("i",{staticClass:"far fa-comment"})]),i("div",{staticClass:"d-none d-print-block"},[i("i",{staticClass:"far fa-comment-alt d-print-none"}),e._v(" "+e._s(e.ingredient.note)+" ")])]):e._e()])]],2)},_=[],f={name:"Ingredient",props:{ingredient:Object,ingredient_factor:{type:Number,default:1}},mixins:[p["b"]],data:function(){return{checked:!1}},methods:{calculateAmount:function(e){return Object(p["d"])(e,this.ingredient_factor)}}},m=f,g=i("2877"),v=Object(g["a"])(m,u,_,!1,null,null,null),h=v.exports,b=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i(e.compiled,{tag:"component",attrs:{ingredient_factor:e.ingredient_factor,code:e.code}})],1)},k=[],j=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.number))}})},w=[],C={name:"ScalableNumber",props:{number:Number,factor:{type:Number,default:4}},methods:{calculateAmount:function(e){return Object(p["d"])(e,this.factor)}}},y=C,S=Object(g["a"])(y,j,w,!1,null,null,null),x=S.exports,O={name:"CompileComponent",props:["code","ingredient_factor"],data:function(){return{compiled:null}},mounted:function(){this.compiled=r["default"].component("compiled-component",{props:["ingredient_factor","code"],components:{ScalableNumber:x},template:"
".concat(this.code,"
")})}},R=O,E=Object(g["a"])(R,b,k,!1,null,null,null),I=E.exports,$=i("c1df"),P=i.n($),A=i("81d5");r["default"].prototype.moment=P.a;var L={name:"Step",mixins:[p["a"],p["b"]],components:{Ingredient:h,CompileComponent:I},props:{step:Object,ingredient_factor:Number,index:Number,recipe:Object,start_time:String,force_ingredients:{type:Boolean,default:!1}},data:function(){return{details_visible:!0,set_time_input:""}},mounted:function(){this.set_time_input=P()(this.start_time).add(this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")},methods:{calculateAmount:function(e){return Object(p["d"])(e,this.ingredient_factor)},updateTime:function(){var e=P()(this.set_time_input).add(-1*this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm");this.$emit("update-start-time",e),this.closePopover()},closePopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("close")},openPopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("open")}}},N=L,D=Object(g["a"])(N,l,d,!1,null,null,null),M=D.exports,B=i("fc0d"),z=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("iframe",{staticStyle:{border:"none"},attrs:{src:e.pdfUrl,width:"100%",height:"700px"}})])},T=[],F={name:"PdfViewer",mixins:[p["b"]],props:{recipe:Object},computed:{pdfUrl:function(){return"/static/pdfjs/viewer.html?file="+Object(p["g"])("api_get_recipe_file",this.recipe.id)}}},U=F,V=Object(g["a"])(U,z,T,!1,null,null,null),H=V.exports,K=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticStyle:{"text-align":"center"}},[i("b-img",{attrs:{src:e.pdfUrl,alt:e.$t("External_Recipe_Image")}})],1)},W=[],Z={name:"ImageViewer",props:{recipe:Object},computed:{pdfUrl:function(){return Object(p["g"])("api_get_recipe_file",this.recipe.id)}}},J=Z,G=Object(g["a"])(J,K,W,!1,null,null,null),q=G.exports,X=function(){var e=this,t=e.$createElement,i=e._self._c||t;return null!==e.recipe.nutrition?i("div",[i("div",{staticClass:"card border-success"},[i("div",{staticClass:"card-body"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col-12"},[i("h4",{staticClass:"card-title"},[i("i",{staticClass:"fas fa-carrot"}),e._v(" "+e._s(e.$t("Nutrition")))])])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-fire fa-fw text-primary"}),e._v(" "+e._s(e.$t("Calories"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.calories))}}),e._v(" kcal ")])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-bread-slice fa-fw text-primary"}),e._v(" "+e._s(e.$t("Carbohydrates"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.carbohydrates))}}),e._v(" g ")])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-cheese fa-fw text-primary"}),e._v(" "+e._s(e.$t("Fats"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.fats))}}),e._v(" g ")])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-drumstick-bite fa-fw text-primary"}),e._v(" "+e._s(e.$t("Proteins"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.proteins))}}),e._v(" g ")])])])])]):e._e()},Q=[],Y={name:"Nutrition",props:{recipe:Object,ingredient_factor:Number},methods:{calculateAmount:function(e){return Object(p["d"])(e,this.ingredient_factor)}}},ee=Y,te=Object(g["a"])(ee,X,Q,!1,null,null,null),ie=te.exports,re=i("d76c"),ae=i("d46a"),ne=i("ca5b"),se=i("830a");r["default"].prototype.moment=P.a,r["default"].use(o["a"]);var oe={name:"RecipeView",mixins:[p["b"],p["c"]],components:{LastCooked:se["a"],RecipeRating:ne["a"],PdfViewer:H,ImageViewer:q,Ingredient:h,Step:M,RecipeContextMenu:B["a"],Nutrition:ie,Keywords:A["a"],LoadingSpinner:re["a"],AddRecipeToBook:ae["a"]},computed:{ingredient_factor:function(){return this.servings/this.recipe.servings}},data:function(){return{loading:!0,recipe:void 0,ingredient_count:0,servings:1,start_time:"",share_uid:window.SHARE_UID}},mounted:function(){this.loadRecipe(window.RECIPE_ID),this.$i18n.locale=window.CUSTOM_LOCALE},methods:{loadRecipe:function(e){var t=this;Object(c["c"])(e).then((function(e){0!==window.USER_SERVINGS&&(e.servings=window.USER_SERVINGS),t.servings=e.servings;var i,r=0,a=Object(s["a"])(e.steps);try{for(a.s();!(i=a.n()).done;){var n=i.value;t.ingredient_count+=n.ingredients.length;var o,c=Object(s["a"])(n.ingredients);try{for(c.s();!(o=c.n()).done;){var l=o.value;t.$set(l,"checked",!1)}}catch(d){c.e(d)}finally{c.f()}n.time_offset=r,r+=n.time}}catch(d){a.e(d)}finally{a.f()}r>0&&(t.start_time=P()().format("yyyy-MM-DDTHH:mm")),t.recipe=e,t.loading=!1}))},updateStartTime:function(e){this.start_time=e},updateIngredientCheckedState:function(e){var t,i=Object(s["a"])(this.recipe.steps);try{for(i.s();!(t=i.n()).done;){var r,a=t.value,n=Object(s["a"])(a.ingredients);try{for(n.s();!(r=n.n()).done;){var o=r.value;o.id===e.id&&this.$set(o,"checked",!o.checked)}}catch(c){n.e(c)}finally{n.f()}}}catch(c){i.e(c)}finally{i.f()}}}},ce=oe,le=Object(g["a"])(ce,a,n,!1,null,null,null),de=le.exports,pe=i("9225");r["default"].config.productionTip=!1,new r["default"]({i18n:pe["a"],render:function(e){return e(de)}}).$mount("#app")},1:function(e,t,i){e.exports=i("0671")},4678:function(e,t,i){var r={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn-bd":"9686","./bn-bd.js":"9686","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-in":"ec2e","./en-in.js":"ec2e","./en-nz":"6f50","./en-nz.js":"6f50","./en-sg":"b7e9","./en-sg.js":"b7e9","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-mx":"b5b7","./es-mx.js":"b5b7","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fil":"d69a","./fil.js":"d69a","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-deva":"aaf2","./gom-deva.js":"aaf2","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./oc-lnc":"167b","./oc-lnc.js":"167b","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tk":"5aff","./tk.js":"5aff","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf755","./tlh.js":"cf755","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-mo":"3a6c","./zh-mo.js":"3a6c","./zh-tw":"90ea","./zh-tw.js":"90ea"};function a(e){var t=n(e);return i(t)}function n(e){if(!i.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=n,e.exports=a,a.id="4678"},"49f8":function(e,t,i){var r={"./de.json":"6ce2","./en.json":"edd4","./hy.json":"dfc6","./nl.json":"a625","./sv.json":"4c5b"};function a(e){var t=n(e);return i(t)}function n(e){if(!i.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=n,e.exports=a,a.id="49f8"},"4c5b":function(e){e.exports=JSON.parse('{"import_running":"Import pågår, var god vänta!","all_fields_optional":"Alla rutor är valfria och kan lämnas tomma.","convert_internal":"Konvertera till internt recept","Log_Recipe_Cooking":"Logga tillagningen av receptet","External_Recipe_Image":"Externt receptbild","Add_to_Book":"Lägg till i kokbok","Add_to_Shopping":"Lägg till i handelslista","Add_to_Plan":"Lägg till i matsedel","Step_start_time":"Steg starttid","Select_Book":"Välj kokbok","Recipe_Image":"Receptbild","Import_finished":"Importering klar","View_Recipes":"Visa recept","Log_Cooking":"Logga tillagning","Proteins":"Protein","Fats":"Fett","Carbohydrates":"Kolhydrater","Calories":"Kalorier","Nutrition":"Näringsinnehåll","Date":"Datum","Share":"Dela","Export":"Exportera","Rating":"Betyg","Close":"Stäng","Add":"Lägg till","Ingredients":"Ingredienser","min":"min","Servings":"Portioner","Waiting":"Väntan","Preparation":"Förberedelse","Edit":"Redigera","Open":"Öppna","Save":"Spara","Step":"Steg","Search":"Sök","Import":"Importera","Print":"Skriv ut","Information":"Information"}')},"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"}')},"7c15":function(e,t,i){"use strict";i.d(t,"c",(function(){return s})),i.d(t,"d",(function(){return o})),i.d(t,"b",(function(){return c})),i.d(t,"a",(function(){return l}));var r=i("bc3a"),a=i.n(r),n=i("fa7d");function s(e){var t=Object(n["g"])("api:recipe-detail",e);return void 0!==window.SHARE_UID&&(t+="?share="+window.SHARE_UID),a.a.get(t).then((function(e){return e.data})).catch((function(e){d(e,"There was an error loading a resource!","danger")}))}function o(e){return a.a.post(Object(n["g"])("api:cooklog-list"),e).then((function(e){Object(n["f"])("Saved","Cook Log entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function c(e){return a.a.get(Object(n["g"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){}))}function l(e){return a.a.post(Object(n["g"])("api:recipebookentry-list"),e).then((function(e){Object(n["f"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){d(e,"There was an error creating a resource!","danger")}))}function d(e,t){if("response"in e){console.log(e.response);var i="statusText"in e.response?e.response.statusText:Object(n["e"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(n["f"])(i,t,"danger")}else Object(n["f"])("Error",t,"danger"),console.log(e)}a.a.defaults.xsrfCookieName="csrftoken",a.a.defaults.xsrfHeaderName="X-CSRFTOKEN"},"81d5":function(e,t,i){"use strict";var r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.recipe.keywords.length>0?i("div",e._l(e.recipe.keywords,(function(t){return i("span",{key:t.id,staticStyle:{padding:"2px"}},[i("b-badge",{attrs:{pill:"",variant:"light"}},[e._v(e._s(t.label))])],1)})),0):e._e()},a=[],n={name:"Keywords",props:{recipe:Object}},s=n,o=i("2877"),c=Object(o["a"])(s,r,a,!1,null,null,null);t["a"]=c.exports},"830a":function(e,t,i){"use strict";var r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[null!==e.recipe.last_cooked?i("b-badge",{attrs:{pill:"",variant:"primary"}},[i("i",{staticClass:"fas fa-utensils"}),e._v(" "+e._s(e.formatDate(e.recipe.last_cooked)))]):e._e()],1)},a=[],n=i("c1df"),s=i.n(n),o={name:"LastCooked",props:{recipe:Object},methods:{formatDate:function(e){return s.a.locale(window.navigator.language),s()(e).format("L")}}},c=o,l=i("2877"),d=Object(l["a"])(c,r,a,!1,null,"720408c0",null);t["a"]=d.exports},9225:function(e,t,i){"use strict";i("159b"),i("d3b7"),i("ddb0"),i("ac1f"),i("466d");var r=i("a026"),a=i("a925");function n(){var e=i("49f8"),t={};return e.keys().forEach((function(i){var r=i.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1){var a=r[1];t[a]=e(i)}})),t}r["default"].use(a["a"]),t["a"]=new a["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:n()})},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"}')},ca5b:function(e,t,i){"use strict";var r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.recipe.rating>0?i("span",{staticClass:"d-inline"},[e._l(Math.floor(e.recipe.rating),(function(e){return i("i",{key:e,staticClass:"fas fa-star fa-xs text-primary"})})),e.recipe.rating%1>0?i("i",{staticClass:"fas fa-star-half-alt fa-xs text-primary"}):e._e(),e._l(5-Math.ceil(e.recipe.rating),(function(e){return i("i",{key:e+10,staticClass:"far fa-star fa-xs text-secondary"})}))],2):e._e()])},a=[],n={name:"RecipeRating",props:{recipe:Object}},s=n,o=i("2877"),c=Object(o["a"])(s,r,a,!1,null,"7151a4e2",null);t["a"]=c.exports},d46a:function(e,t,i){"use strict";var r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("b-modal",{staticClass:"modal",attrs:{id:"id_modal_add_book_"+e.modal_id,title:e.$t("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[i("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},a=[],n=(i("a9e3"),i("8e5f")),s=i.n(n),o=i("c1df"),c=i.n(o),l=i("a026"),d=i("5f5b"),p=i("7c15");l["default"].prototype.moment=c.a,l["default"].use(d["a"]);var u={name:"AddRecipeToBook",components:{Multiselect:s.a},props:{recipe:Object,modal_id:Number},data:function(){return{books:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},_=u,f=(i("60bc"),i("2877")),m=Object(f["a"])(_,r,a,!1,null,null,null);t["a"]=m.exports},d76c:function(e,t,i){"use strict";var r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"row"},[i("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[i("img",{staticClass:"spinner-tandoor",style:{height:e.size+"vh"},attrs:{alt:"loading spinner",src:""}})])])},a=[],n=(i("a9e3"),{name:"LoadingSpinner",props:{recipe:Object,size:{type:Number,default:30}}}),s=n,o=i("2877"),c=Object(o["a"])(s,r,a,!1,null,null,null);t["a"]=c.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,i){"use strict";i.d(t,"c",(function(){return s})),i.d(t,"f",(function(){return o})),i.d(t,"a",(function(){return c})),i.d(t,"e",(function(){return l})),i.d(t,"b",(function(){return d})),i.d(t,"g",(function(){return p})),i.d(t,"d",(function(){return _}));var r=i("53ca"),a=(i("99af"),i("59e4"));function n(e,t,i){var r=Math.floor(e),a=1,n=r+1,s=1;if(e!==r)while(a<=t&&s<=t){var o=(r+n)/(a+s);if(e===o){a+s<=t?(a+=s,r+=n,s=t+1):a>s?s=t+1:a=t+1;break}et&&(a=s,r=n),!i)return[0,r,a];var c=Math.floor(r/a);return[c,r-c*a,a]}var s={methods:{makeToast:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return o(e,t,i)}}};function o(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=new a["a"];r.$bvToast.toast(t,{title:e,variant:i,toaster:"b-toaster-top-center",solid:!0})}var c={methods:{_:function(e){return l(e)}}};function l(e){return window.gettext(e)}var d={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(e,t)}}};function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(r["a"])(t))return window.Urls[e](t);if("object"==Object(r["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 u(e){return window.USER_PREF[e]}function _(e,t){if(u("use_fractions")){var i="",r=n(e*t,9,!0);return r[0]>0&&(i+=r[0]),r[1]>0&&(i+=" ".concat(r[1],"").concat(r[2],"")),i}return f(e*t)}function f(e){var t=u("user_fractions")?u("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}},fc0d:function(e,t,i){"use strict";var r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"dropdown d-print-none"},[e._m(0),i("div",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{"aria-labelledby":"dropdownMenuLink"}},[i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_recipe",e.recipe.id)}},[i("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e.$t("Edit")))]),e.recipe.internal?e._e():i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_convert_recipe",e.recipe.id)}},[i("i",{staticClass:"fas fa-exchange-alt fa-fw"}),e._v(" "+e._s(e.$t("convert_internal")))]),i("a",{attrs:{href:"#"}},[i("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_add_book_"+e.modal_id)}}},[i("i",{staticClass:"fas fa-bookmark fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Book"))+" ")])]),e.recipe.internal?i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_shopping")+"?r=["+e.recipe.id+","+e.servings_value+"]",target:"_blank",rel:"noopener noreferrer"}},[i("i",{staticClass:"fas fa-shopping-cart fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Shopping"))+" ")]):e._e(),i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_meal_plan")+"?recipe="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[i("i",{staticClass:"fas fa-calendar fa-fw"}),e._v(" "+e._s(e.$t("Add_to_Plan"))+" ")]),i("a",{attrs:{href:"#"}},[i("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_cook_log_"+e.modal_id)}}},[i("i",{staticClass:"fas fa-clipboard-list fa-fw"}),e._v(" "+e._s(e.$t("Log_Cooking"))+" ")])]),i("a",{attrs:{href:"#"}},[i("button",{staticClass:"dropdown-item",attrs:{onclick:"window.print()"}},[i("i",{staticClass:"fas fa-print fa-fw"}),e._v(" "+e._s(e.$t("Print"))+" ")])]),i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_export")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[i("i",{staticClass:"fas fa-file-export fa-fw"}),e._v(" "+e._s(e.$t("Export")))]),i("a",{attrs:{href:"#"}},[e.recipe.internal?i("button",{staticClass:"dropdown-item",on:{click:function(t){return e.createShareLink()}}},[i("i",{staticClass:"fas fa-share-alt fa-fw"}),e._v(" "+e._s(e.$t("Share"))+" ")]):e._e()])])]),i("cook-log",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),i("add-recipe-to-book",{attrs:{recipe:e.recipe,modal_id:e.modal_id}}),i("b-modal",{attrs:{id:"modal-share-link_"+e.modal_id,title:e.$t("Share"),"hide-footer":""}},[i("div",{staticClass:"row"},[i("div",{staticClass:"col col-md-12"},[void 0!==e.recipe_share_link?i("label",[e._v(e._s(e.$t("Public share link")))]):e._e(),i("input",{directives:[{name:"model",rawName:"v-model",value:e.recipe_share_link,expression:"recipe_share_link"}],ref:"share_link_ref",staticClass:"form-control",domProps:{value:e.recipe_share_link},on:{input:function(t){t.target.composing||(e.recipe_share_link=t.target.value)}}}),i("b-button",{staticClass:"mt-2 mb-3 d-none d-md-inline",attrs:{variant:"secondary"},on:{click:function(t){return e.$bvModal.hide("modal-share-link_"+e.modal_id)}}},[e._v(e._s(e.$t("Close"))+" ")]),i("b-button",{staticClass:"mt-2 mb-3 ml-md-2",attrs:{variant:"primary"},on:{click:function(t){return e.copyShareLink()}}},[e._v(e._s(e.$t("Copy")))]),i("b-button",{staticClass:"mt-2 mb-3 ml-2 float-right",attrs:{variant:"success"},on:{click:function(t){return e.shareIntend()}}},[e._v(e._s(e.$t("Share"))+" "),i("i",{staticClass:"fa fa-share-alt"})])],1)])])],1)},a=[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("a",{staticClass:"btn shadow-none",attrs:{href:"#",role:"button",id:"dropdownMenuLink","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[i("i",{staticClass:"fas fa-ellipsis-v fa-lg"})])}],n=(i("a9e3"),i("9911"),i("b0c0"),i("99af"),i("fa7d")),s=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("b-modal",{staticClass:"modal",attrs:{id:"id_modal_cook_log_"+e.modal_id,title:e.$t("Log_Recipe_Cooking"),"ok-title":e.$t("Save"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.logCook()}}},[i("p",[e._v(e._s(e.$t("all_fields_optional")))]),i("form",[i("label",{attrs:{for:"id_log_servings"}},[e._v(e._s(e.$t("Servings")))]),i("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.servings,expression:"logObject.servings"}],staticClass:"form-control",attrs:{type:"number",id:"id_log_servings"},domProps:{value:e.logObject.servings},on:{input:function(t){t.target.composing||e.$set(e.logObject,"servings",t.target.value)}}}),i("label",{staticStyle:{"margin-top":"2vh"}},[e._v(e._s(e.$t("Rating"))+" - "),i("span",{attrs:{id:"id_rating_show"}},[e._v(e._s(e.logObject.rating)+"/5")])]),i("b-form-rating",{model:{value:e.logObject.rating,callback:function(t){e.$set(e.logObject,"rating",t)},expression:"logObject.rating"}}),i("label",{staticStyle:{"margin-top":"2vh"},attrs:{for:"id_date"}},[e._v(e._s(e.$t("Date")))]),i("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.created_at,expression:"logObject.created_at"}],staticClass:"form-control",attrs:{type:"datetime-local",id:"id_date"},domProps:{value:e.logObject.created_at},on:{input:function(t){t.target.composing||e.$set(e.logObject,"created_at",t.target.value)}}})],1)])],1)},o=[],c=i("c1df"),l=i.n(c),d=i("a026"),p=i("5f5b"),u=i("7c15");d["default"].prototype.moment=l.a,d["default"].use(p["a"]);var _={name:"CookLog",props:{recipe:Object,modal_id:Number},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:l()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){Object(u["d"])(this.logObject)}}},f=_,m=i("2877"),g=Object(m["a"])(f,s,o,!1,null,null,null),v=g.exports,h=i("bc3a"),b=i.n(h),k=i("d46a"),j={name:"RecipeContextMenu",mixins:[n["b"]],components:{AddRecipeToBook:k["a"],CookLog:v},data:function(){return{servings_value:0,recipe_share_link:void 0,modal_id:this.recipe.id+Math.round(1e5*Math.random())}},props:{recipe:Object,servings:{type:Number,default:-1}},mounted:function(){this.servings_value=-1===this.servings?this.recipe.servings:this.servings},methods:{createShareLink:function(){var e=this;b.a.get(Object(n["g"])("api_share_link",this.recipe.id)).then((function(t){e.$bvModal.show("modal-share-link_".concat(e.modal_id)),e.recipe_share_link=t.data.link})).catch((function(t){403===t.response.status&&Object(n["f"])(e.$t("Share"),e.$t("Sharing is not enabled for this space."),"danger")}))},copyShareLink:function(){var e=this.$refs.share_link_ref;e.select(),document.execCommand("copy")},shareIntend:function(){var e={title:this.recipe.name,text:"".concat(this.$t("Check out this recipe: ")," ").concat(this.recipe.name),url:this.recipe_share_link};navigator.share(e)}}},w=j,C=Object(m["a"])(w,r,a,!1,null,null,null);t["a"]=C.exports}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,s=t[0],c=t[1],u=t[2],p=0,l=[];p0?r("div",{staticClass:"col-md-6 order-md-1 col-sm-12 order-sm-2 col-12 order-2"},[r("div",{staticClass:"card border-primary"},[r("div",{staticClass:"card-body"},[r("div",{staticClass:"row"},[r("div",{staticClass:"col col-md-8"},[r("h4",{staticClass:"card-title"},[r("i",{staticClass:"fas fa-pepper-hot"}),e._v(" "+e._s(e.$t("Ingredients")))])])]),r("br"),r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-12"},[r("table",{staticClass:"table table-sm"},[e._l(e.recipe.steps,(function(t){return[e._l(t.ingredients,(function(t){return[r("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":e.updateIngredientCheckedState}})]}))]}))],2)])])])])]):e._e(),r("div",{staticClass:"col-12 order-1 col-sm-12 order-sm-1 col-md-6 order-md-2"},[r("div",{staticClass:"row"},[r("div",{staticClass:"col-12"},[null!==e.recipe.image?r("img",{staticClass:"img img-fluid rounded",staticStyle:{"max-height":"30vh"},attrs:{src:e.recipe.image,alt:e.$t("Recipe_Image")}}):e._e()])]),r("div",{staticClass:"row",staticStyle:{"margin-top":"2vh","margin-bottom":"2vh"}},[r("div",{staticClass:"col-12"},[r("Nutrition",{attrs:{recipe:e.recipe,ingredient_factor:e.ingredient_factor}})],1)])])]),e.recipe.internal?e._e():[e.recipe.file_path.includes(".pdf")?r("div",[r("PdfViewer",{attrs:{recipe:e.recipe}})],1):e._e(),e.recipe.file_path.includes(".png")||e.recipe.file_path.includes(".jpg")||e.recipe.file_path.includes(".jpeg")||e.recipe.file_path.includes(".gif")?r("div",[r("ImageViewer",{attrs:{recipe:e.recipe}})],1):e._e()],e._l(e.recipe.steps,(function(t,n){return r("div",{key:t.id,staticStyle:{"margin-top":"1vh"}},[r("Step",{attrs:{recipe:e.recipe,step:t,ingredient_factor:e.ingredient_factor,index:n,start_time:e.start_time},on:{"update-start-time":e.updateStartTime,"checked-state-changed":e.updateIngredientCheckedState}})],1)}))],2),r("add-recipe-to-book",{attrs:{recipe:e.recipe}}),"None"!==e.share_uid?r("div",{staticClass:"row text-center d-print-none",staticStyle:{"margin-top":"3vh","margin-bottom":"3vh"}},[r("div",{staticClass:"col col-md-12"},[r("a",{attrs:{href:e.resolveDjangoUrl("view_report_share_abuse",e.share_uid)}},[e._v(e._s(e.$t("Report Abuse")))])])]):e._e()],2)},o=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[r("i",{staticClass:"fas fa-user-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[r("i",{staticClass:"far fa-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[r("i",{staticClass:"fas fa-pizza-slice fa-2x text-primary"})])}],a=r("b85c"),s=r("5f5b"),c=(r("2dd8"),r("7c15")),u=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("hr"),"TEXT"===e.step.type||"RECIPE"===e.step.type?[e.recipe.steps.length>1?r("div",{staticClass:"row"},[r("div",{staticClass:"col col-md-8"},[r("h5",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e.$t("Step"))+" "+e._s(e.index+1))],0!==e.step.time?r("small",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[r("i",{staticClass:"fas fa-user-clock"}),e._v(" "+e._s(e.step.time)+" "+e._s(e.$t("min"))+" ")]):e._e(),""!==e.start_time?r("small",{staticClass:"d-print-none"},[r("b-link",{attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")])],1):e._e()],2)]),r("div",{staticClass:"col col-md-4",staticStyle:{"text-align":"right"}},[r("b-button",{staticClass:"shadow-none d-print-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[r("i",{staticClass:"far fa-check-circle"})])],1)]):e._e()]:e._e(),"TEXT"===e.step.type?[r("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[r("div",{staticClass:"row"},[e.step.ingredients.length>0&&(e.recipe.steps.length>1||e.force_ingredients)?r("div",{staticClass:"col col-md-4"},[r("table",{staticClass:"table table-sm"},[e._l(e.step.ingredients,(function(t){return[r("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":function(r){return e.$emit("checked-state-changed",t)}}})]}))],2)]):e._e(),r("div",{staticClass:"col",class:{"col-md-8":e.recipe.steps.length>1,"col-md-12":e.recipe.steps.length<=1}},[r("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)])])]:e._e(),"TIME"===e.step.type||"FILE"===e.step.type?[r("div",{staticClass:"row"},[r("div",{staticClass:"col-md-8 offset-md-2",staticStyle:{"text-align":"center"}},[r("h4",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e.$t("Step"))+" "+e._s(e.index+1))]],2),0!==e.step.time?r("span",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[r("i",{staticClass:"fa fa-stopwatch"}),e._v(" "+e._s(e.step.time)+" "+e._s(e.$t("min")))]):e._e(),""!==e.start_time?r("b-link",{staticClass:"d-print-none",attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")]):e._e()],1),r("div",{staticClass:"col-md-2",staticStyle:{"text-align":"right"}},[r("b-button",{staticClass:"shadow-none d-print-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[r("i",{staticClass:"far fa-check-circle"})])],1)]),r("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[""!==e.step.instruction?r("div",{staticClass:"row"},[r("div",{staticClass:"col col-md-12",staticStyle:{"text-align":"center"}},[r("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)]):e._e()])]:e._e(),r("div",{staticClass:"row",staticStyle:{"text-align":"center"}},[r("div",{staticClass:"col col-md-12"},[null!==e.step.file?[e.step.file.file.includes(".png")||e.recipe.file_path.includes(".jpg")||e.recipe.file_path.includes(".jpeg")||e.recipe.file_path.includes(".gif")?r("div",[r("img",{staticStyle:{"max-width":"50vw","max-height":"50vh"},attrs:{src:e.step.file.file}})]):r("div",[r("a",{attrs:{href:e.step.file.file,target:"_blank",rel:"noreferrer nofollow"}},[e._v(e._s(e.$t("Download"))+" "+e._s(e.$t("File")))])])]:e._e()],2)]),"RECIPE"===e.step.type&&null!==e.step.step_recipe_data?r("div",{staticClass:"card"},[r("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[r("div",{staticClass:"card-body"},[r("h2",{staticClass:"card-title"},[r("a",{attrs:{href:e.resolveDjangoUrl("view_recipe",e.step.step_recipe_data.id)}},[e._v(e._s(e.step.step_recipe_data.name))])]),e._l(e.step.step_recipe_data.steps,(function(t,n){return r("div",{key:"substep_"+t.id},[r("Step",{attrs:{recipe:e.step.step_recipe_data,step:t,ingredient_factor:e.ingredient_factor,index:n,start_time:e.start_time,force_ingredients:!0}})],1)}))],2)])],1):e._e(),""!==e.start_time?r("div",[r("b-popover",{ref:"id_reactive_popover_"+e.step.id,attrs:{target:"id_reactive_popover_"+e.step.id,triggers:"click",placement:"bottom",title:e.$t("Step start time")}},[r("div",[r("b-form-group",{staticClass:"mb-1",attrs:{label:"Time","label-for":"popover-input-1","label-cols":"3"}},[r("b-form-input",{attrs:{type:"datetime-local",id:"popover-input-1",size:"sm"},model:{value:e.set_time_input,callback:function(t){e.set_time_input=t},expression:"set_time_input"}})],1)],1),r("div",{staticClass:"row",staticStyle:{"margin-top":"1vh"}},[r("div",{staticClass:"col-12",staticStyle:{"text-align":"right"}},[r("b-button",{staticStyle:{"margin-right":"8px"},attrs:{size:"sm",variant:"secondary"},on:{click:e.closePopover}},[e._v("Cancel")]),r("b-button",{attrs:{size:"sm",variant:"primary"},on:{click:e.updateTime}},[e._v("Ok")])],1)])])],1):e._e()],2)},d=[],p=(r("a9e3"),r("fa7d")),l=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("tr",{on:{click:function(t){return e.$emit("checked-state-changed",e.ingredient)}}},[e.ingredient.is_header?[r("td",{attrs:{colspan:"5"}},[r("b",[e._v(e._s(e.ingredient.note))])])]:[r("td",{staticClass:"d-print-none"},[e.ingredient.checked?r("i",{staticClass:"far fa-check-circle text-success"}):e._e(),e.ingredient.checked?e._e():r("i",{staticClass:"far fa-check-circle text-primary"})]),r("td",[0!==e.ingredient.amount?r("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.ingredient.amount))}}):e._e()]),r("td",[null===e.ingredient.unit||e.ingredient.no_amount?e._e():r("span",[e._v(e._s(e.ingredient.unit.name))])]),r("td",[null!==e.ingredient.food?[null!==e.ingredient.food.recipe?r("a",{attrs:{href:e.resolveDjangoUrl("view_recipe",e.ingredient.food.recipe),target:"_blank",rel:"noopener noreferrer"}},[e._v(e._s(e.ingredient.food.name))]):e._e(),null===e.ingredient.food.recipe?r("span",[e._v(e._s(e.ingredient.food.name))]):e._e()]:e._e()],2),r("td",[e.ingredient.note?r("div",[r("span",{directives:[{name:"b-popover",rawName:"v-b-popover.hover",value:e.ingredient.note,expression:"ingredient.note",modifiers:{hover:!0}}],staticClass:"d-print-none"},[r("i",{staticClass:"far fa-comment"})]),r("div",{staticClass:"d-none d-print-block"},[r("i",{staticClass:"far fa-comment-alt d-print-none"}),e._v(" "+e._s(e.ingredient.note)+" ")])]):e._e()])]],2)},h=[],b={name:"Ingredient",props:{ingredient:Object,ingredient_factor:{type:Number,default:1}},mixins:[p["d"]],data:function(){return{checked:!1}},methods:{calculateAmount:function(e){return Object(p["f"])(e,this.ingredient_factor)}}},f=b,v=r("2877"),j=Object(v["a"])(f,l,h,!1,null,null,null),O=j.exports,m=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r(e.compiled,{tag:"component",attrs:{ingredient_factor:e.ingredient_factor,code:e.code}})],1)},g=[],y=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.number))}})},S=[],_={name:"ScalableNumber",props:{number:Number,factor:{type:Number,default:4}},methods:{calculateAmount:function(e){return Object(p["f"])(e,this.factor)}}},P=_,k=Object(v["a"])(P,y,S,!1,null,null,null),w=k.exports,U={name:"CompileComponent",props:["code","ingredient_factor"],data:function(){return{compiled:null}},mounted:function(){this.compiled=n["default"].component("compiled-component",{props:["ingredient_factor","code"],components:{ScalableNumber:w},template:"
".concat(this.code,"
")})}},R=U,C=Object(v["a"])(R,m,g,!1,null,null,null),L=C.exports,I=r("c1df"),E=r.n(I),T=r("81d5");n["default"].prototype.moment=E.a;var x={name:"Step",mixins:[p["c"],p["d"]],components:{Ingredient:O,CompileComponent:L},props:{step:Object,ingredient_factor:Number,index:Number,recipe:Object,start_time:String,force_ingredients:{type:Boolean,default:!1}},data:function(){return{details_visible:!0,set_time_input:""}},mounted:function(){this.set_time_input=E()(this.start_time).add(this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")},methods:{calculateAmount:function(e){return Object(p["f"])(e,this.ingredient_factor)},updateTime:function(){var e=E()(this.set_time_input).add(-1*this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm");this.$emit("update-start-time",e),this.closePopover()},closePopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("close")},openPopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("open")}}},B=x,F=Object(v["a"])(B,u,d,!1,null,null,null),q=F.exports,M=r("fc0d"),A=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("iframe",{staticStyle:{border:"none"},attrs:{src:e.pdfUrl,width:"100%",height:"700px"}})])},D=[],K={name:"PdfViewer",mixins:[p["d"]],props:{recipe:Object},computed:{pdfUrl:function(){return"/static/pdfjs/viewer.html?file="+Object(p["i"])("api_get_recipe_file",this.recipe.id)}}},$=K,N=Object(v["a"])($,A,D,!1,null,null,null),V=N.exports,z=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticStyle:{"text-align":"center"}},[r("b-img",{attrs:{src:e.pdfUrl,alt:e.$t("External_Recipe_Image")}})],1)},H=[],G={name:"ImageViewer",props:{recipe:Object},computed:{pdfUrl:function(){return Object(p["i"])("api_get_recipe_file",this.recipe.id)}}},W=G,J=Object(v["a"])(W,z,H,!1,null,null,null),Z=J.exports,X=function(){var e=this,t=e.$createElement,r=e._self._c||t;return null!==e.recipe.nutrition?r("div",[r("div",{staticClass:"card border-success"},[r("div",{staticClass:"card-body"},[r("div",{staticClass:"row"},[r("div",{staticClass:"col-12"},[r("h4",{staticClass:"card-title"},[r("i",{staticClass:"fas fa-carrot"}),e._v(" "+e._s(e.$t("Nutrition")))])])]),r("div",{staticClass:"row"},[r("div",{staticClass:"col-6"},[r("i",{staticClass:"fas fa-fire fa-fw text-primary"}),e._v(" "+e._s(e.$t("Calories"))+" ")]),r("div",{staticClass:"col-6"},[r("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.calories))}}),e._v(" kcal ")])]),r("div",{staticClass:"row"},[r("div",{staticClass:"col-6"},[r("i",{staticClass:"fas fa-bread-slice fa-fw text-primary"}),e._v(" "+e._s(e.$t("Carbohydrates"))+" ")]),r("div",{staticClass:"col-6"},[r("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.carbohydrates))}}),e._v(" g ")])]),r("div",{staticClass:"row"},[r("div",{staticClass:"col-6"},[r("i",{staticClass:"fas fa-cheese fa-fw text-primary"}),e._v(" "+e._s(e.$t("Fats"))+" ")]),r("div",{staticClass:"col-6"},[r("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.fats))}}),e._v(" g ")])]),r("div",{staticClass:"row"},[r("div",{staticClass:"col-6"},[r("i",{staticClass:"fas fa-drumstick-bite fa-fw text-primary"}),e._v(" "+e._s(e.$t("Proteins"))+" ")]),r("div",{staticClass:"col-6"},[r("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.proteins))}}),e._v(" g ")])])])])]):e._e()},Y=[],Q={name:"Nutrition",props:{recipe:Object,ingredient_factor:Number},methods:{calculateAmount:function(e){return Object(p["f"])(e,this.ingredient_factor)}}},ee=Q,te=Object(v["a"])(ee,X,Y,!1,null,null,null),re=te.exports,ne=r("d76c"),ie=r("d46a"),oe=r("ca5b"),ae=r("830a");n["default"].prototype.moment=E.a,n["default"].use(s["a"]);var se={name:"RecipeView",mixins:[p["d"],p["e"]],components:{LastCooked:ae["a"],RecipeRating:oe["a"],PdfViewer:V,ImageViewer:Z,Ingredient:O,Step:q,RecipeContextMenu:M["a"],Nutrition:re,Keywords:T["a"],LoadingSpinner:ne["a"],AddRecipeToBook:ie["a"]},computed:{ingredient_factor:function(){return this.servings/this.recipe.servings}},data:function(){return{loading:!0,recipe:void 0,ingredient_count:0,servings:1,start_time:"",share_uid:window.SHARE_UID}},mounted:function(){this.loadRecipe(window.RECIPE_ID),this.$i18n.locale=window.CUSTOM_LOCALE},methods:{loadRecipe:function(e){var t=this;Object(c["c"])(e).then((function(e){0!==window.USER_SERVINGS&&(e.servings=window.USER_SERVINGS),t.servings=e.servings;var r,n=0,i=Object(a["a"])(e.steps);try{for(i.s();!(r=i.n()).done;){var o=r.value;t.ingredient_count+=o.ingredients.length;var s,c=Object(a["a"])(o.ingredients);try{for(c.s();!(s=c.n()).done;){var u=s.value;t.$set(u,"checked",!1)}}catch(d){c.e(d)}finally{c.f()}o.time_offset=n,n+=o.time}}catch(d){i.e(d)}finally{i.f()}n>0&&(t.start_time=E()().format("yyyy-MM-DDTHH:mm")),t.recipe=e,t.loading=!1}))},updateStartTime:function(e){this.start_time=e},updateIngredientCheckedState:function(e){var t,r=Object(a["a"])(this.recipe.steps);try{for(r.s();!(t=r.n()).done;){var n,i=t.value,o=Object(a["a"])(i.ingredients);try{for(o.s();!(n=o.n()).done;){var s=n.value;s.id===e.id&&this.$set(s,"checked",!s.checked)}}catch(c){o.e(c)}finally{o.f()}}}catch(c){r.e(c)}finally{r.f()}}}},ce=se,ue=Object(v["a"])(ce,i,o,!1,null,null,null),de=ue.exports,pe=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:pe["a"],render:function(e){return e(de)}}).$mount("#app")},1:function(e,t,r){e.exports=r("0671")},"2b2d":function(e,t,r){"use strict";r.d(t,"a",(function(){return P}));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),b=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}(),f=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",j=function(e,t,r){if(null===r||void 0===r)throw new f(t,"Required parameter "+t+" was null or undefined when calling "+e+".")},O=function(e){for(var t=[],r=1;r0?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()})},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"}')},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("Add_to_Book"),"ok-title":e.$t("Add"),"cancel-title":e.$t("Close")},on:{ok:function(t){return e.addToBook()}}},[r("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e.$t("Select_Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},i=[],o=(r("a9e3"),r("8e5f")),a=r.n(o),s=r("c1df"),c=r.n(s),u=r("a026"),d=r("5f5b"),p=r("7c15");u["default"].prototype.moment=c.a,u["default"].use(d["a"]);var l={name:"AddRecipeToBook",components:{Multiselect:a.a},props:{recipe:Object,modal_id:Number},data:function(){return{books:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(p["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(p["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},h=l,b=(r("60bc"),r("2877")),f=Object(b["a"])(h,n,i,!1,null,null,null);t["a"]=f.exports},d76c:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"row"},[r("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[r("img",{staticClass:"spinner-tandoor",style:{height:e.size+"vh"},attrs:{alt:"loading spinner",src:""}})])])},i=[],o=(r("a9e3"),{name:"LoadingSpinner",props:{recipe:Object,size:{type:Number,default:30}}}),a=o,s=r("2877"),c=Object(s["a"])(a,n,i,!1,null,null,null);t["a"]=c.exports},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return h})),r.d(t,"h",(function(){return b})),r.d(t,"c",(function(){return f})),r.d(t,"g",(function(){return v})),r.d(t,"d",(function(){return j})),r.d(t,"i",(function(){return O})),r.d(t,"f",(function(){return g})),r.d(t,"a",(function(){return S})),r.d(t,"b",(function(){return P}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),s=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function c(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 u=r("2b2d"),d=r("bc3a"),p=r.n(d),l=r("a026"),h={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return b(e,t,r)}}};function b(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new s["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var f={methods:{_:function(e){return v(e)}}};function v(e){return window.gettext(e)}var j={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return O(e,t)}}};function O(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 m(e){return window.USER_PREF[e]}function g(e,t){if(m("use_fractions")){var r="",n=c(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=m("user_fractions")?m("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var S={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,d,p,l,h,b,f,v,j,O,m,g,y,S,P,k,w,U,R,C,L,I,E,T;e=e.toLowerCase();var x=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===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==s?s:{}),this.api_settings[e]);x.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(l=null===(h=this.api_settings)||void 0===h||null===(b=h.default)||void 0===b?void 0:b.values)&&void 0!==l?l:{}),null!==(f=null===(v=this.api_settings)||void 0===v||null===(j=v[null===(O=this.api_settings)||void 0===O||null===(m=O[e])||void 0===m?void 0:m.model_type])||void 0===j?void 0:j.values)&&void 0!==f?f:{}),this.api_settings[e].values),x.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(g=null===(y=this.api_settings)||void 0===y||null===(S=y.default)||void 0===S||null===(P=S.typing)||void 0===P?void 0:P[t])&&void 0!==g?g:{}),null!==(k=null===(w=this.api_settings)||void 0===w||null===(U=w[null===(C=this.api_settings)||void 0===C||null===(L=C[e])||void 0===L?void 0:L.model_type])||void 0===U||null===(R=U.typing)||void 0===R?void 0:R[t])&&void 0!==k?k:{}),null===(I=this.api_settings[e].typing)||void 0===I?void 0:I[t]);var B=t+x.name+(null!==(E=null===(T=this.api_settings.suffix)||void 0===T?void 0:T[t])&&void 0!==E?E:""),F=[],q=void 0;x[t].forEach((function(e,t){if(Array.isArray(e)){q={};for(var n=0,o=Object.entries(r);n1){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()})},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"}')},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"f",(function(){return c})),r.d(t,"a",(function(){return s})),r.d(t,"e",(function(){return u})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return p})),r.d(t,"d",(function(){return b}));var n=r("53ca"),i=(r("99af"),r("59e4"));function o(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var c=(n+o)/(i+a);if(e===c){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 s=Math.floor(n/i);return[s,n-s*i,i]}var a={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return c(e,t,r)}}};function c(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new i["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var s={methods:{_:function(e){return u(e)}}};function u(e){return window.gettext(e)}var d={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(e,t)}}};function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(n["a"])(t))return window.Urls[e](t);if("object"==Object(n["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 h(e){return window.USER_PREF[e]}function b(e,t){if(h("use_fractions")){var r="",n=o(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return f(e*t)}function f(e){var t=h("user_fractions")?h("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,c=t[0],s=t[1],u=t[2],p=0,h=[];p1){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()})},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"}')},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return b})),r.d(t,"h",(function(){return f})),r.d(t,"c",(function(){return l})),r.d(t,"g",(function(){return O})),r.d(t,"d",(function(){return j})),r.d(t,"i",(function(){return v})),r.d(t,"f",(function(){return g})),r.d(t,"a",(function(){return S})),r.d(t,"b",(function(){return U}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),c=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function s(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var c=(n+o)/(i+a);if(e===c){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 s=Math.floor(n/i);return[s,n-s*i,i]}var u=r("2b2d"),d=r("bc3a"),p=r.n(d),h=r("a026"),b={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return f(e,t,r)}}};function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new c["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var l={methods:{_:function(e){return O(e)}}};function O(e){return window.gettext(e)}var j={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return v(e,t)}}};function v(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 m(e){return window.USER_PREF[e]}function g(e,t){if(m("use_fractions")){var r="",n=s(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=m("user_fractions")?m("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var S={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,c,s,d,p,h,b,f,l,O,j,v,m,g,y,S,U,k,R,w,L,C,_,I,T,E;e=e.toLowerCase();var x=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!==(c=null===(s=this.api_settings)||void 0===s?void 0:s[null===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==c?c:{}),this.api_settings[e]);x.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(h=null===(b=this.api_settings)||void 0===b||null===(f=b.default)||void 0===f?void 0:f.values)&&void 0!==h?h:{}),null!==(l=null===(O=this.api_settings)||void 0===O||null===(j=O[null===(v=this.api_settings)||void 0===v||null===(m=v[e])||void 0===m?void 0:m.model_type])||void 0===j?void 0:j.values)&&void 0!==l?l:{}),this.api_settings[e].values),x.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(g=null===(y=this.api_settings)||void 0===y||null===(S=y.default)||void 0===S||null===(U=S.typing)||void 0===U?void 0:U[t])&&void 0!==g?g:{}),null!==(k=null===(R=this.api_settings)||void 0===R||null===(w=R[null===(C=this.api_settings)||void 0===C||null===(_=C[e])||void 0===_?void 0:_.model_type])||void 0===w||null===(L=w.typing)||void 0===L?void 0:L[t])&&void 0!==k?k:{}),null===(I=this.api_settings[e].typing)||void 0===I?void 0:I[t]);var B=t+x.name+(null!==(T=null===(E=this.api_settings.suffix)||void 0===E?void 0:E[t])&&void 0!==T?T:""),F=[],q=void 0;x[t].forEach((function(e,t){if(Array.isArray(e)){q={};for(var n=0,o=Object.entries(r);n1){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()})},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"}')},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"c",(function(){return a})),r.d(t,"f",(function(){return c})),r.d(t,"a",(function(){return s})),r.d(t,"e",(function(){return u})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return p})),r.d(t,"d",(function(){return b}));var n=r("53ca"),i=(r("99af"),r("59e4"));function o(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var c=(n+o)/(i+a);if(e===c){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 s=Math.floor(n/i);return[s,n-s*i,i]}var a={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return c(e,t,r)}}};function c(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new i["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var s={methods:{_:function(e){return u(e)}}};function u(e){return window.gettext(e)}var d={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(e,t)}}};function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null==t)return window.Urls[e]();if("object"!=Object(n["a"])(t))return window.Urls[e](t);if("object"==Object(n["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 h(e){return window.USER_PREF[e]}function b(e,t){if(h("use_fractions")){var r="",n=o(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return f(e*t)}function f(e){var t=h("user_fractions")?h("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}},fd4d:function(e,t,r){"use strict";r.r(t);r("e260"),r("e6cf"),r("cca6"),r("a79d");var n=r("a026"),i=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{attrs:{id:"app"}},[r("div",{staticClass:"row"},[r("div",{staticClass:"col col-md-12"},[r("h3",[e._v(e._s(e.$t("Files"))+" "),r("span",{staticClass:"float-right"},[r("file-editor",{on:{change:function(t){return e.loadInitial()}}})],1)])])]),r("div",{staticClass:"row",staticStyle:{"margin-top":"2vh"}},[r("div",{staticClass:"col col-md-12"},[r("b-progress",{attrs:{max:e.max_file_size_mb}},[r("b-progress-bar",{attrs:{value:e.current_file_size_mb}},[r("span",[r("strong",{staticClass:"text-dark "},[e._v(e._s(e.current_file_size_mb.toFixed(2))+" / "+e._s(e.max_file_size_mb)+" MB")])])])],1)],1)]),r("div",{staticClass:"row",staticStyle:{"margin-top":"2vh"}},[r("div",{staticClass:"col col-md-12"},[r("table",{staticClass:"table"},[r("thead",[r("tr",[r("th",[e._v(e._s(e.$t("Name")))]),r("th",[e._v(e._s(e.$t("Size"))+" (MB)")]),r("th",[e._v(e._s(e.$t("Download")))]),r("th",[e._v(e._s(e.$t("Edit")))])])]),e._l(e.files,(function(t){return r("tr",{key:t.id},[r("td",[e._v(e._s(t.name))]),r("td",[e._v(e._s(t.file_size_kb/1e3))]),r("td",[r("a",{attrs:{href:t.file,target:"_blank",rel:"noreferrer nofollow"}},[e._v(e._s(e.$t("Download")))])]),r("td",[r("file-editor",{attrs:{file_id:t.id},on:{change:function(t){return e.loadInitial()}}})],1)])}))],2)])])])},o=[],a=r("5f5b"),c=(r("2dd8"),r("fa7d")),s=r("2b2d"),u=r("bc3a"),d=r.n(u),p=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("b-button",{directives:[{name:"b-modal",rawName:"v-b-modal",value:"modal-file-editor"+e.file_id,expression:"'modal-file-editor'+file_id"}],class:{"btn-success":void 0===e.file_id}},[this.file_id?[e._v(e._s(e.$t("Edit")))]:[e._v(e._s(e.$t("New")))]],2),r("b-modal",{attrs:{id:"modal-file-editor"+e.file_id,title:e.$t("File")},on:{ok:function(t){return e.modalOk()}},scopedSlots:e._u([{key:"modal-footer",fn:function(){return[r("b-button",{attrs:{size:"sm",variant:"success"},on:{click:function(t){return e.modalOk()}}},[e._v(" "+e._s(e.$t("Ok"))+" ")]),r("b-button",{attrs:{size:"sm",variant:"secondary"},on:{click:function(t){return e.$bvModal.hide("modal-file-editor"+e.file_id)}}},[e._v(" "+e._s(e.$t("Cancel"))+" ")]),r("b-button",{attrs:{size:"sm",variant:"danger"},on:{click:function(t){return e.deleteFile()}}},[e._v(" "+e._s(e.$t("Delete"))+" ")])]},proxy:!0}])},[void 0!==e.file?[e._v(" "+e._s(e.$t("Name"))+" "),r("b-input",{model:{value:e.file.name,callback:function(t){e.$set(e.file,"name",t)},expression:"file.name"}}),r("br"),e._v(" "+e._s(e.$t("File"))+" "),r("b-form-file",{model:{value:e.file.file,callback:function(t){e.$set(e.file,"file",t)},expression:"file.file"}})]:e._e(),r("br"),r("br")],2)],1)},h=[],b=(r("a9e3"),r("d3b7"),r("25f0"),r("b0c0"),{name:"FileEditor",data:function(){return{file:void 0}},props:{file_id:Number},mounted:function(){void 0!==this.file_id?this.loadFile(this.file_id.toString()):this.file={name:"",file:void 0}},methods:{loadFile:function(e){var t=this,r=new s["a"];r.retrieveUserFile(e).then((function(e){t.file=e.data}))},modalOk:function(){void 0===this.file_id?(console.log("CREATING"),this.createFile()):(console.log("UPDATING"),this.updateFile())},updateFile:function(){var e=this,t=new s["a"],r=void 0;"string"===typeof this.file.file||this.file.file instanceof String||(r=this.file.file),t.updateUserFile(this.file.id,this.file.name,r).then((function(t){Object(c["f"])(e.$t("Success"),e.$t("success_updating_resource"),"success"),e.$emit("change")})).catch((function(t){Object(c["f"])(e.$t("Error"),e.$t("err_updating_resource")+"\n"+t.response.data,"danger"),console.log(t.request,t.response)}))},createFile:function(){var e=this,t=new s["a"];t.createUserFile(this.file.name,this.file.file).then((function(t){Object(c["f"])(e.$t("Success"),e.$t("success_creating_resource"),"success"),e.$emit("change"),e.file={name:"",file:void 0}})).catch((function(t){Object(c["f"])(e.$t("Error"),e.$t("err_creating_resource")+"\n"+t.response.data,"danger"),console.log(t.request,t.response)}))},deleteFile:function(){var e=this,t=new s["a"];t.destroyUserFile(this.file.id).then((function(t){Object(c["f"])(e.$t("Success"),e.$t("success_deleting_resource"),"success"),e.$emit("change")})).catch((function(t){Object(c["f"])(e.$t("Error"),e.$t("err_deleting_resource")+"\n"+t.response.data,"danger"),console.log(t.request,t.response)}))}}}),f=b,l=r("2877"),O=Object(l["a"])(f,p,h,!1,null,null,null),j=O.exports;n["default"].use(a["a"]),d.a.defaults.xsrfHeaderName="X-CSRFToken",d.a.defaults.xsrfCookieName="csrftoken";var v={name:"UserFileView",mixins:[c["b"],c["c"]],components:{FileEditor:j},data:function(){return{files:[],current_file_size_mb:window.CURRENT_FILE_SIZE_MB,max_file_size_mb:window.MAX_FILE_SIZE_MB}},mounted:function(){this.$i18n.locale=window.CUSTOM_LOCALE,this.loadInitial()},methods:{loadInitial:function(){var e=this,t=new s["a"];t.listUserFiles().then((function(t){e.files=t.data}))}}},m=v,g=Object(l["a"])(m,i,o,!1,null,null,null),y=g.exports,S=r("9225");n["default"].config.productionTip=!1,new n["default"]({i18n:S["a"],render:function(e){return e(y)}}).$mount("#app")}}); \ No newline at end of file +(function(e){function t(t){for(var n,a,c=t[0],s=t[1],u=t[2],p=0,h=[];p1){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()})},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"}')},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_Book":"Add to Book","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","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","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","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}.","Download":"Download","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."}')},fa7d:function(e,t,r){"use strict";r.d(t,"e",(function(){return b})),r.d(t,"h",(function(){return f})),r.d(t,"c",(function(){return l})),r.d(t,"g",(function(){return O})),r.d(t,"d",(function(){return j})),r.d(t,"i",(function(){return v})),r.d(t,"f",(function(){return m})),r.d(t,"a",(function(){return S})),r.d(t,"b",(function(){return U}));var n=r("b85c"),i=r("3835"),o=r("5530"),a=r("53ca"),c=(r("99af"),r("d3b7"),r("ddb0"),r("b0c0"),r("159b"),r("4fad"),r("caad"),r("2532"),r("b64b"),r("4de4"),r("7db0"),r("59e4"));function s(e,t,r){var n=Math.floor(e),i=1,o=n+1,a=1;if(e!==n)while(i<=t&&a<=t){var c=(n+o)/(i+a);if(e===c){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 s=Math.floor(n/i);return[s,n-s*i,i]}var u=r("2b2d"),d=r("bc3a"),p=r.n(d),h=r("a026"),b={methods:{makeToast:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return f(e,t,r)}}};function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new c["a"];n.$bvToast.toast(t,{title:e,variant:r,toaster:"b-toaster-top-center",solid:!0})}var l={methods:{_:function(e){return O(e)}}};function O(e){return window.gettext(e)}var j={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return v(e,t)}}};function v(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 g(e){return window.USER_PREF[e]}function m(e,t){if(g("use_fractions")){var r="",n=s(e*t,9,!0);return n[0]>0&&(r+=n[0]),n[1]>0&&(r+=" ".concat(n[1],"").concat(n[2],"")),r}return y(e*t)}function y(e){var t=g("user_fractions")?g("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}p.a.defaults.xsrfCookieName="csrftoken",p.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var S={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,c,s,d,p,h,b,f,l,O,j,v,g,m,y,S,U,R,w,k,L,C,_,I,E,T;e=e.toLowerCase();var x=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!==(c=null===(s=this.api_settings)||void 0===s?void 0:s[null===(d=this.api_settings)||void 0===d||null===(p=d[e])||void 0===p?void 0:p.model_type])&&void 0!==c?c:{}),this.api_settings[e]);x.values=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(h=null===(b=this.api_settings)||void 0===b||null===(f=b.default)||void 0===f?void 0:f.values)&&void 0!==h?h:{}),null!==(l=null===(O=this.api_settings)||void 0===O||null===(j=O[null===(v=this.api_settings)||void 0===v||null===(g=v[e])||void 0===g?void 0:g.model_type])||void 0===j?void 0:j.values)&&void 0!==l?l:{}),this.api_settings[e].values),x.typing=Object(o["a"])(Object(o["a"])(Object(o["a"])({},null!==(m=null===(y=this.api_settings)||void 0===y||null===(S=y.default)||void 0===S||null===(U=S.typing)||void 0===U?void 0:U[t])&&void 0!==m?m:{}),null!==(R=null===(w=this.api_settings)||void 0===w||null===(k=w[null===(C=this.api_settings)||void 0===C||null===(_=C[e])||void 0===_?void 0:_.model_type])||void 0===k||null===(L=k.typing)||void 0===L?void 0:L[t])&&void 0!==R?R:{}),null===(I=this.api_settings[e].typing)||void 0===I?void 0:I[t]);var B=t+x.name+(null!==(E=null===(T=this.api_settings.suffix)||void 0===T?void 0:T[t])&&void 0!==E?E:""),F=[],q=void 0;x[t].forEach((function(e,t){if(Array.isArray(e)){q={};for(var n=0,o=Object.entries(r);n -import axios from "axios"; -axios.defaults.xsrfCookieName = 'csrftoken' -axios.defaults.xsrfHeaderName = "X-CSRFTOKEN" - import Vue from 'vue' import {BootstrapVue} from 'bootstrap-vue' import 'bootstrap-vue/dist/bootstrap-vue.css' -import {ToastMixin} from "@/utils/utils"; +import {ToastMixin, ApiMixin, CardMixin} from "@/utils/utils"; -import {ApiApiFactory} from "@/utils/openapi/api.ts"; import GenericSplitLists from "@/components/GenericSplitLists"; import GenericHorizontalCard from "@/components/GenericHorizontalCard"; import GenericMultiselect from "@/components/GenericMultiselect"; @@ -156,7 +147,7 @@ Vue.use(BootstrapVue) export default { name: 'FoodListView', - mixins: [ToastMixin, GenericSplitLists, GenericHorizontalCard], + mixins: [ToastMixin, ApiMixin, CardMixin], components: {GenericHorizontalCard, GenericMultiselect, GenericSplitLists}, data() { return { @@ -250,75 +241,42 @@ export default { } }, getFoods: function(params, callback) { - let apiClient = new ApiApiFactory() - let query = options?.query ?? '' - let page = options?.page ?? 1 - let root = options?.root ?? undefined - let tree = options?.tree ?? undefined - let pageSize = options?.pageSize ?? 25 - - if (query === '') { - query = undefined - root = 0 - } - // delete above - let options = { - 'query': params?.query ?? '', - 'page': params?.page ?? 1, - 'root' : params?.id ?? undefined - } let column = params?.column ?? 'left' - // let promise = this.listObjects(this.this_model, options).then(result => { - let promise = apiClient.listFoods(query, root, tree, page, pageSize).then((result) => { + this.genericAPI(this.this_model, 'list', params).then((result) => { if (result.data.results.length){ if (column ==='left') { - this.foods = this.foods.concat(result.data.results) - if (this.foods?.length < result.data.count) { - this.load_more_left = true - } else { - this.load_more_left = false - } - + this.foods = this.foods.concat(result.data.results) } else if (column ==='right') { this.foods2 = this.foods2.concat(result.data.results) - - if (this.foods2?.length < result.data.count) { - this.load_more_right = true - } else { - this.load_more_right = false - } } + // are the total elements less than the length of the array? if so, stop loading + callback(result.data.count > (column==="left" ? this.foods.length : this.foods2.length)) } else { - if (column ==='left') { - this.load_more_left = false - } else if (column ==='right') { - this.load_more_right = false - } + callback(false) // stop loading console.log('no data returned') } - callback(promise) + // return true if total objects are still less than the length of the list + callback(result.data.count < (column==="left" ? this.foods.length : this.foods2.length)) }).catch((err) => { console.log(err) this.makeToast(this.$t('Error'), err.bodyText, 'danger') }) }, + getThis: function(id, callback){ + return this.genericAPI(this.this_model, 'retrieve', {'id': id}) + }, saveFood: function () { - let apiClient = new ApiApiFactory() - let food = { - name: this.this_item.name, - description: this.this_item.description, - recipe: this.this_item.recipe?.id ?? null, - ignore_shopping: this.this_item.ignore_shopping, - supermarket_category: this.this_item.supermarket_category?.id ?? null, - } - if (!this.this_item.id) { // if there is no item id assume its a new item - apiClient.createFood(food).then(result => { + let food = {...this.this_item} + food.supermarket_category = this.this_item.supermarket_category?.id ?? null + food.recipe = this.this_item.recipe?.id ?? null + if (!food?.id) { // if there is no item id assume it's a new item + this.genericAPI(this.this_model, 'create', food).then((result) => { // place all new foods at the top of the list - could sort instead this.foods = [result.data].concat(this.foods) // this creates a deep copy to make sure that columns stay independent if (this.show_split){ - this.foods2 = [JSON.parse(JSON.stringify(result.data))].concat(this.foods2) + this.foods2 = [...this.foods] } else { this.foods2 = [] } @@ -326,8 +284,8 @@ export default { console.log(err) }) } else { - apiClient.partialUpdateFood(this.this_item.id, food).then(result => { - this.refreshCard(this.this_item.id) + this.genericAPI(this.this_model, 'updatePartial', food).then((result) => { + this.refreshObject(this.this_item.id) }).catch((err) => { console.log(err) }) @@ -335,18 +293,16 @@ export default { this.this_item = {...this.blank_item} }, moveFood: function (source_id, target_id) { - let apiClient = new ApiApiFactory() - apiClient.moveFood(String(source_id), String(target_id)).then(result => { + this.genericAPI(this.this_model, 'move', {'source': source_id, 'target': target_id}).then((result) => { if (target_id === 0) { - let food = this.findCard(this.foods, source_id) || this.findCard(this.foods2, source_id) + let food = this.findCard(source_id, this.foods) || this.findCard(source_id, this.foods2) + this.foods = [food].concat(this.destroyCard(source_id, this.foods)) // order matters, destroy old card before adding it back in at root + this.foods2 = [...[food]].concat(this.destroyCard(source_id, this.foods2)) // order matters, destroy old card before adding it back in at root food.parent = null - this.foods = [food].concat(this.destroyCard(source_id, this.foods)) - this.foods2 = [...food].concat(this.destroyCard(source_id, this.foods2)) // order matters, destroy old card before adding it back in at root - } else { this.foods = this.destroyCard(source_id, this.foods) this.foods2 = this.destroyCard(source_id, this.foods2) - this.refreshCard(target_id) + this.refreshObject(target_id) } }).catch((err) => { // TODO none of the error checking works because the openapi generated functions don't throw an error? @@ -356,31 +312,23 @@ export default { }) }, mergeFood: function (source_id, target_id) { - let apiClient = new ApiApiFactory() - apiClient.mergeFood(String(source_id), String(target_id)).then(result => { - // this.destroyCard(source_id) - this.refreshCard(target_id) + this.genericAPI(this.this_model, 'merge', {'source': source_id, 'target': target_id}).then((result) => { + this.foods = this.destroyCard(source_id, this.foods) + this.foods2 = this.destroyCard(source_id, this.foods2) + this.refreshObject(target_id) }).catch((err) => { console.log('Error', err) this.makeToast(this.$t('Error'), err.bodyText, 'danger') }) }, - // TODO: DRY the listFood functions (refresh, get children, infinityHandler ) can probably all be consolidated into a single function getChildren: function(col, food){ - let apiClient = new ApiApiFactory() let parent = {} - let query = undefined - let page = undefined - let root = food.id - let tree = undefined - let pageSize = 200 - - apiClient.listFoods(query, root, tree, page, pageSize).then(result => { - if (col == 'left') { - parent = this.findCard(this.foods, food.id) - } else if (col == 'right'){ - parent = this.findCard(this.foods2, food.id) - } + let options = { + 'root': food.id, + 'pageSize': 200 + } + this.genericAPI(this.this_model, 'list', options).then((result) => { + parent = this.findCard(food.id, col === 'left' ? this.foods : this.foods2) if (parent) { Vue.set(parent, 'children', result.data.results) Vue.set(parent, 'show_children', true) @@ -392,19 +340,14 @@ export default { }) }, getRecipes: function(col, food){ - let apiClient = new ApiApiFactory() let parent = {} - let pageSize = 200 + let options = { + 'foods': food.id, + 'pageSize': 200 + } - apiClient.listRecipes( - undefined, undefined, String(food.id), undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, pageSize, undefined - ).then(result => { - if (col == 'left') { - parent = this.findCard(this.foods, food.id) - } else if (col == 'right'){ - parent = this.findCard(this.foods2, food.id) - } + this.genericAPI('recipe', 'list', options).then((result) => { + parent = this.findCard(food.id, col === 'left' ? this.foods : this.foods2) if (parent) { Vue.set(parent, 'recipes', result.data.results) Vue.set(parent, 'show_recipes', true) @@ -416,38 +359,10 @@ export default { this.makeToast(this.$t('Error'), err.bodyText, 'danger') }) }, - refreshCard: function(id){ - let target = {} - let apiClient = new ApiApiFactory() - let idx = undefined - let idx2 = undefined - apiClient.retrieveFood(id).then(result => { - target = this.findCard(this.foods, id) || this.findCard(this.foods2, id) - - if (target.parent) { - let parent = this.findCard(this.foods, target.parent) - let parent2 = this.findCard(this.foods2, target.parent) - - if (parent) { - if (parent.show_children){ - idx = parent.children.indexOf(parent.children.find(kw => kw.id === target.id)) - Vue.set(parent.children, idx, result.data) - } - } - if (parent2){ - if (parent2.show_children){ - idx2 = parent2.children.indexOf(parent2.children.find(kw => kw.id === target.id)) - // deep copy to force columns to be indepedent - Vue.set(parent2.children, idx2, JSON.parse(JSON.stringify(result.data))) - } - } - } else { - idx = this.foods.indexOf(this.foods.find(food => food.id === target.id)) - idx2 = this.foods2.indexOf(this.foods2.find(food => food.id === target.id)) - Vue.set(this.foods, idx, result.data) - Vue.set(this.foods2, idx2, JSON.parse(JSON.stringify(result.data))) - } - + refreshObject: function(id){ + this.getThis(id).then(result => { + this.refreshCard(result.data, this.foods) + this.refreshCard({...result.data}, this.foods2) }) }, // this would move with modals with mixin? @@ -461,14 +376,14 @@ export default { this.this_item.icon = icon }, deleteThis: function(id, model) { - const result = new Promise((callback) => this.deleteObject(id, model, callback)) - result.then(() => { + this.genericAPI(this.this_model, 'destroy', {'id': id}).then((result) => { this.foods = this.destroyCard(id, this.foods) this.foods2 = this.destroyCard(id, this.foods2) - }) - + }).catch((err) => { + console.log(err) + this.makeToast(this.$t('Error'), err.bodyText, 'danger') + }) }, - } } diff --git a/vue/src/components/GenericHorizontalCard.vue b/vue/src/components/GenericHorizontalCard.vue index ee5e434a9..83481c7ed 100644 --- a/vue/src/components/GenericHorizontalCard.vue +++ b/vue/src/components/GenericHorizontalCard.vue @@ -74,7 +74,7 @@ - + {{$t('Move')}}: {{$t('move_confirmation', {'child': source.name,'parent':model.name})}} @@ -91,7 +91,6 @@ diff --git a/vue/src/components/GenericSplitLists.vue b/vue/src/components/GenericSplitLists.vue index 3270d6239..465a55da3 100644 --- a/vue/src/components/GenericSplitLists.vue +++ b/vue/src/components/GenericSplitLists.vue @@ -108,11 +108,6 @@ export default { list_name: {type: String, default: 'Blank List'}, // TODO update translations to handle plural translations left_list: {type:Array, default(){return []}}, right_list: {type:Array, default(){return []}}, - load_more_left: {type: Boolean, default: false}, - load_more_right: {type: Boolean, default: false}, - //merge: {type: Boolean, default: false}, - //move: {type: Boolean, default: false}, - //action: Object }, data() { return { @@ -120,8 +115,8 @@ export default { show_split: false, search_right: '', search_left: '', - right_page: 1, - left_page: 1, + right_page: 0, + left_page: 0, right: +new Date(), left: +new Date(), isDirtyright: false, @@ -175,54 +170,17 @@ export default { 'page': (col==='left') ? this.left_page + 1 : this.right_page + 1, 'column': col } - const result = new Promise((callback) => this.$emit('get-list', params, callback)) - result.then((result) => { - console.log(result) + new Promise((callback) => this.$emit('get-list', params, callback)).then((result) => { this[col+'_page']+=1 $state.loaded(); - if (!this['load_more_' + col]) { + if (!result) { // callback needs to return true if handler should continue loading more data $state.complete(); } }).catch(() => { $state.complete(); }) }, - findCard: function(card_list, id){ - let card_length = card_list?.length ?? 0 - if (card_length == 0) { - return false - } - let cards = card_list.filter(obj => obj.id == id) - if (cards.length == 1) { - return cards[0] - } else if (cards.length == 0) { - for (const o of card_list.filter(o => o.show_children == true)) { - cards = this.findCard(o.children, id) - if (cards) { - return cards - } - } - } else { - console.log('something terrible happened') - } - }, - destroyCard: function(id, cardList) { - let card = this.findCard(cardList, id) - let card_id = undefined - let p_id = card?.parent ?? undefined - - if (p_id) { - let parent = this.findCard(cardList, p_id) - if (parent){ - Vue.set(parent, 'numchild', parent.numchild - 1) - if (parent.show_children) { - let idx = parent.children.indexOf(parent.children.find(x => x.id === id)) - Vue.delete(parent.children, idx) - } - } - } - return cardList.filter(kw => kw.id != id) - }, + } } diff --git a/vue/src/utils/utils.js b/vue/src/utils/utils.js index e7bbfa044..d93e86f75 100644 --- a/vue/src/utils/utils.js +++ b/vue/src/utils/utils.js @@ -152,3 +152,217 @@ export function roundDecimals(num) { let decimals = ((getUserPreference('user_fractions')) ? getUserPreference('user_fractions') : 2); return +(Math.round(num + `e+${decimals}`) + `e-${decimals}`); } + +/* +* Utility functions to use OpenAPIs generically +* */ +import {ApiApiFactory} from "@/utils/openapi/api.ts"; // TODO: is it possible to only import inside the Mixin? + +import axios from "axios"; +axios.defaults.xsrfCookieName = 'csrftoken' +axios.defaults.xsrfHeaderName = "X-CSRFTOKEN" +export const ApiMixin = { + data() { + return { + api_settings: { + // TODO consider moving this to an API type dictionary that contains api types with details on the function call name, suffix, etc + 'suffix': { // if OpenApiGenerator adds a suffix to model name in function calls + 'list': 's' + }, + // model specific settings, when not provided will use defaults instead + 'food': { // must be lowercase + // *REQUIRED* name is name of the model used for translations and looking up APIFactory + 'name': 'Food', + // *OPTIONAL: parameters will be built model -> model_type -> default + 'model_type': 'tree', + // *OPTIONAL* model specific params for api, if not present will attempt modeltype_create then default_create + // an array will create a dict of name:value pairs + 'create': [['name', 'description', 'recipe', 'ignore_shopping', 'supermarket_category']], // required: unordered array of fields that can be set during create + // *OPTIONAL* model specific params for api, includes ordered list of parameters + // and an unordered array that will be converted to a dictionary and passed as the 2nd param + 'partialUpdate': ['id', // required: ordered array of list params to patch existing object + ['name', 'description', 'recipe', 'ignore_shopping', 'supermarket_category'] // must include ordered array of field names that can be updated + ], + // *OPTIONAL* provide model specific typing + // 'typing': {}, + }, + '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', + } + }, + + }, + // collection of default attributes for model_type TREE. All settings except typing and values will be overwritten by model values + 'tree': { + 'values': { + 'root': 'getFunction()', // if default value is exactly 'getFunction()' will call getFunction(model_type, param, params) + 'tree': undefined, + }, + 'list': ['query', 'root', 'tree', 'page', 'pageSize'], // ordered array of list params for tree + 'typing': { + 'move': { + 'source': 'string', + 'target': 'string', + } + } + }, + // collection of global defaults. All settings except typing and values will be overwritten by model_type or model values + 'default': { + 'list': ['query', 'page', 'pageSize'], // ordered array of list params for default listApi + 'destroy': ['id'], // ordered array of list params for default deleteApi + 'retrieve': ['id'], // ordered array of list params for default retrieveApi + 'merge': ['source', 'target'], // ordered array of list params for default mergeApi + 'move': ['source', 'target'], // ordered array of list params for default moveApi + 'create': [], // ordered array of list params for default createApi + 'partialUpdate': [], // ordered array of list params for default updateApi + 'values': { + 'query': undefined, // default values for list API + 'page': 1, + 'pageSize': 25, + }, + 'typing': { // optional settings to force type on parameters + 'merge': { + 'source': 'string', + 'target': 'string', + }, + }, + } + } + } + }, + methods: { + /** + * constructs OpenAPI Generator function using named parameters + * @param {string} model string to define which model API to use + * @param {string} api string to define which of the API functions to use + * @param {object} options dictionary to define all of the parameters necessary to use API + */ + genericAPI: function(model, api, options) { + model = model.toLowerCase() + // construct settings for this model and this api - values are assigned in order (default is overwritten by api overwritten by model) + let settings = {...this.api_settings?.default ?? {}, ...this.api_settings?.[this.api_settings?.[model]?.model_type] ?? {}, ...this.api_settings[model]}; + // values and typing are also dicts and need to be merged, + settings.values = {...this.api_settings?.default?.values ?? {}, + ...this.api_settings?.[this.api_settings?.[model]?.model_type]?.values ?? {}, + ...this.api_settings[model].values} + settings.typing = {...this.api_settings?.default?.typing?.[api] ?? {}, + ...this.api_settings?.[this.api_settings?.[model]?.model_type]?.typing?.[api] ?? {}, + ...this.api_settings[model].typing?.[api]} + let func = api + settings.name + (this.api_settings.suffix?.[api] ?? '') + // does model params exist? + let params = [] + let this_value = undefined + settings[api].forEach(function (item, index) { + + if (Array.isArray(item)) { + this_value = {} + for (const [k, v] of Object.entries(options)) { // filters options dict based on valus in array, I'm sure there's a better way to do this + if (item.includes(k)) { + this_value[k] = v + } + } + } else { + this_value = options?.[item] ?? settings.values?.[item] ?? undefined // set the value or apply default + } + if (this_value ==='getFunction()') { + this_value = getFunction(item, settings?.model_type, options) + } + if (Object.keys(settings?.typing).includes(item)) { + switch (settings.typing[item]) { + case 'string': + if (this_value) {this_value = String(this_value)} + break; + } + } + params.push(this_value) + }); + + let apiClient = new ApiApiFactory() + return apiClient[func](...params) + } + } +} + +/* +* Utility functions to calculate default value +* */ +export function getFunction(item, model_type, params) { + if (item==='root' && model_type==='tree') { + if ((!params?.query ?? undefined) || params?.query?.length == 0) { + return 0 + } + return undefined + } +} + + +// /* +// * Utility functions to use manipulate nested components +// * */ +import Vue from 'vue' +export const CardMixin = { + methods: { + findCard: function(id, card_list){ + let card_length = card_list?.length ?? 0 + if (card_length == 0) { + return false + } + let cards = card_list.filter(obj => obj.id == id) + if (cards.length == 1) { + return cards[0] + } else if (cards.length == 0) { + for (const c of card_list.filter(x => x.show_children == true)) { + cards = this.findCard(id, c.children) + if (cards) { + return cards + } + } + } else { + console.log('something terrible happened') + } + }, + destroyCard: function(id, card_list) { + let card = this.findCard(id, card_list) + let p_id = card?.parent ?? undefined + + if (p_id) { + let parent = this.findCard(p_id, card_list) + if (parent){ + Vue.set(parent, 'numchild', parent.numchild - 1) + if (parent.show_children) { + let idx = parent.children.indexOf(parent.children.find(x => x.id === id)) + Vue.delete(parent.children, idx) + } + } + } + return card_list.filter(x => x.id != id) + }, + refreshCard: function(obj, card_list){ + let target = {} + let idx = undefined + target = this.findCard(obj.id, card_list) + + if (target.parent) { + let parent = this.findCard(target.parent, card_list) + if (parent) { + if (parent.show_children){ + idx = parent.children.indexOf(parent.children.find(x => x.id === target.id)) + Vue.set(parent.children, idx, obj) + } + } + } else { + idx = card_list.indexOf(card_list.find(x => x.id === target.id)) + console.log(card_list, idx, obj) + Vue.set(card_list, idx, obj) + } + }, + } +} \ No newline at end of file