{"version":3,"sources":["webpack:///./src/utils/Helpers.ts","webpack:///./src/components/vModal.vue?387a","webpack:///./src/components/vBreadcrumbs.vue","webpack:///./src/components/vBreadcrumbs.vue?361d","webpack:///./src/components/vBreadcrumbs.vue?72f9","webpack:///./src/components/vBreadcrumbs.vue?06cf","webpack:///./src/views/User/Ingredients.vue?8aaf","webpack:///./src/assets/Customer/assets/img/apple-profile.jpg","webpack:///./src/views/User/Ingredients.vue","webpack:///./src/views/User/Ingredients.vue?73cb","webpack:///./src/views/User/Ingredients.vue?e10a","webpack:///./src/views/User/Ingredients.vue?1ff3","webpack:///./src/models/Recipes/DailyValueCalculationMethod.ts","webpack:///./src/components/vModal.vue","webpack:///./src/components/vModal.vue?9dbe","webpack:///./src/components/vModal.vue?4636","webpack:///./src/components/vModal.vue?1836","webpack:///./src/views/User/Ingredients.vue?681e"],"names":["debounce","callback","time","arguments","length","undefined","intervalId","localStorage","getItem","clearTimeout","setTimeout","setItem","getBoldString","mainString","subString","concat","index","toLowerCase","indexOf","startIndex","substring","endIndex","highlightedString","round","number","decimalPlaces","Math","pow","shorten","text","newText","replace","parts","split","map","part","substr","join","toCamelCase","i","charAt","toUpperCase","slice","cammeled","desanitizeString","html","txt","document","createElement","innerHTML","value","getErrorMessage","error","translations","response","data","errorMessages","userVisibleMessage","get","mapNutritions","nutritions","dailyValueCalculationMethod","dvCheck","roundedDv","exactDv","roundingCheck","roundedValue","DailyValueCalculationMethod","Unrounded","Number","isInteger","exactValue","toFixed","Rounded","addedSugarPerServing","unadjustedAddedSugarPerServing","sugarAlcohols","alcoholSugarPerServing","alcoholSugarDv","roundedDailyValue","exactDailyValue","iron","ironPerServing","ironDv","calciumDv","calciumPerServing","calcium","potassiumDv","potassiumPerServing","potassium","vitaminDDv","vitaminDPerServing","vitaminD","vitaminC","vitaminCPerServing","sodiumDv","sodiumPerServing","sodium","cholesterol","cholesterolPerServing","cholesterolDv","protein","proteinPerServing","sugarsDv","sugarPerServing","sugars","fibre","fibrePerServing","fibreDv","carbohydrate","carbohydratePerServing","carbohydrateDv","transFatDv","transFatPerServing","transFat","saturatedFatDv","saturatedFatPerServing","saturatedFat","fatDv","fatPerServing","fat","calories","energyPerServing","servingWeight","weightPerServing","saturatedAndTransDv","saturatedAndTransFatPerServing","monounsaturatedFats","monounsaturatedFatPerServing","polyunsaturatedFats","polyunsaturatedFatPerServing","omega3","omega3PerServing","omega6","omega6PerServing","caffeine","caffeinePerServing","ash","ashPerServing","water","waterPerServing","moisture","moisturePerServing","servingQuantityInUnitOfMeasurement","quantityPerServingInUnitOfMeasurement","item1","servingUnitOfMeasurement","item2","volume","weight","labelType","additionalLabelInformation","groupBy","items","key","reduce","acc","item","group","values","push","set","Map","render","_vm","this","_c","_self","_setupProxy","staticClass","attrs","_l","$route","meta","breadCrumbs","crumb","class","name","_v","_s","staticRenderFns","vBreadcrumbs","_Vue","_this","_classCallCheck","_len","args","Array","_key","_callSuper","_defineProperty","_inherits","_createClass","localizationState","Vue","__decorate","Component","computed","_objectSpread","mapState","state","LocalizationModule","component","module","exports","$store","getters","getUserDetails","staticStyle","require","_m","on","$event","preventDefault","add","apply","content","exportToExcelURL","tableHeaders","transformIngredients","ingredientsState","count","totalCount","pageSize","loading","changePage","onRecipeClick","onChangeLogClick","edit","prepareDeletePrompt","order","showDeletePrompt","deletePromptTitle","resetState","confirmDelete","modalTitle","showModal","ingredient","editMode","submit","_e","recipesModal","isOpen","recipes","recipe","id","$router","params","changeLogModal","createdOn","getFormatedDateTime","createdUserName","updatedOn","updatedUserName","vSelectFx","vIngredientManagement","_","Ingredients","page","filters","orders","field","orderType","OrderType","Asc","removeList","ingredients","createDefaultIngredient","nutrients","additionalNutrients","customIngredient","position","splice","unitHelper","selectedUnit","process","ids","_this2","$snotify","async","Promise","resolve","reject","IngredientsRepository","deleteRestaurantIngredients","then","body","requestIngredients","ListRequest","catch","message","timeout","closeOnClick","orderings","ordering","flag","showAll","nutrientHeaders","_this3","formatTableHeadersForVitaminC","formatTableDataForVitaminC","element","all","nutrientUnit","nutrient","nutrientType","NutrientType","Other","conversionCoeficient","e1","parseFloat","weightInGrams","link","searchable","searchString","sortable","serving","header","units","unit","listRequest","_this4","listRestaurantIngredients","result","populateTable","headers","indexC","findIndex","x","VitaminC","indexD","VitaminD","arraymove","tableData","_step","_iterator","_createForOfIteratorHelper","s","n","done","err","e","f","arr","fromIndex","toIndex","date","$moment","format","dateTimeDisplayFormat","ingr","cloneDeep","find","allMeasurements","_toConsumableArray","measurement","submitEdit","submitNew","_this5","updateIngredient","measurements","unitOfMeasurement","categoryDensityId","quantityInUnitOfMeasurement","subIngredients","updateRestaurantIngredient","_this6","newIngredient","createRestaurantIngredient","_this7","RecipesRepository","listRecipesThatUseIngredient","getAllRecipesThatUseIngredient","obj","_this8","dispatch","TRANSLATIONS_FETCH","category","collections","title","_this9","window","$","Pages","init","searchTerm","select2","allowClear","width","placeholder","minimumInputLength","ajax","delay","transport","success","listIngredientSearch","term","processResults","ingredientList","r","results","escapeMarkup","eventData","target","components","vTable","vModal","show","modalId","size","cancelModal","_t","bodee","getElementsByTagName","classList","remove","$emit","addEventListener","keyCode","Prop","Watch"],"mappings":"kHAAA,kUAGM,SAAUA,EAASC,GAAyB,IAAVC,EAAIC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAEzCG,EAAkBC,aAAaC,QAAQ,+BAEvCF,GACFG,aAAaH,GAGfA,EAAaI,YAAW,WACtBT,MACCC,GAEHK,aAAaI,QAAQ,8BAA+BL,GAGhD,SAAUM,EAAcC,EAAoBC,GAChD,GAAgB,IAAbA,EACD,MAAO,MAAPC,OAAcF,EAAU,QAGxB,IAAMG,EAAQH,EAAWI,cAAcC,QAAQJ,EAAUG,eACzD,IAAe,IAAXD,EAAc,CAChB,IAAMG,EAAaN,EAAWO,UAAU,EAAGJ,GACrCK,EAAWR,EAAWO,UAAUJ,EAAQF,EAAUV,QAClDkB,EAAoBH,EAAa,MAAQN,EAAWO,UAAUJ,EAAOA,EAAQF,EAAUV,QAAU,OAASiB,EAChH,OAAOC,EAET,OAAOT,EAKL,SAAUU,EAAMC,EAAgBC,GACpC,OAAOC,KAAKH,MAAMC,EAASE,KAAKC,IAAI,GAAIF,IAAkBC,KAAKC,IAAI,GAAIF,GAGnE,SAAUG,EAAQC,GAEtB,IAAIC,EAAUD,EAAKE,QAAQ,IAAK,IAChCD,EAAUA,EAAQC,QAAQ,IAAK,IAE/B,IAAIC,EAAQF,EAAQG,MAAM,KAS1B,OARAD,EAAQA,EAAME,KAAI,SAACC,GACjB,OAAIA,EAAK/B,OAAS,EACT+B,EAAKC,OAAO,EAAG,GAAK,IAEpBD,KAIJH,EAAMK,KAAK,KAGd,SAAUC,EAAYT,GAG1B,IADA,IAAIG,EAAQH,EAAKI,MAAM,KACdM,EAAI,EAAGA,EAAIP,EAAM5B,OAAQmC,IAEhCP,EAAMO,GAAKP,EAAMO,GAAGC,OAAO,GAAGC,cAAgBT,EAAMO,GAAGG,MAAM,GAG/D,IAAIC,EAAWX,EAAMK,KAAK,IAG1B,OAFAM,EAAWA,EAASZ,QAAQ,IAAK,IAE1BY,EAGH,SAAUC,EAAiBC,GAC/B,IAAIC,EAAMC,SAASC,cAAc,YAEjC,OADAF,EAAIG,UAAYJ,EACTC,EAAII,MAGP,SAAUC,EAAgBC,EAAYC,GAC1C,OAAOD,EAAME,UACPF,EAAME,SAASC,KAAKC,cAAc,GAAGC,mBACvCL,EAAME,SAASC,KAAKC,cAAc,GAAGC,mBACrCJ,EAAaK,IAAI,wBAKjB,SAAUC,EAAcC,EAAiBC,GAC7C,IAAMC,EAAU,SAACC,EAAmBC,GAClC,OAAOH,EAA8BG,EAAUD,GAG3CE,EAAgB,SAACf,GACrB,YAAmC7C,GAA/BwD,EACKX,EAAMgB,aAITL,GAA+BM,OAA4BC,UACtDC,OAAOC,UAAUpB,EAAMqB,YAAcrB,EAAMqB,WAAYrB,EAAMqB,WAAWC,QAAQ,GAEjFX,GAA+BM,OAA4BM,QAC1DJ,OAAOC,UAAUpB,EAAMgB,cAAgBhB,EAAMgB,aAAchB,EAAMgB,aAAaM,QAAQ,GAGtFtB,EAAMgB,cAKnB,MAAO,CACLQ,qBAAsBd,EAAWc,qBAAqBH,WACtDI,+BAAgCf,EAAWe,+BAA+BJ,WAC1EK,cAAeX,EAAcL,EAAWiB,wBACxCC,eAAgBhB,EACdF,EAAWiB,uBAAuBE,kBAClCnB,EAAWiB,uBAAuBG,iBAEpCC,KAAMhB,EAAcL,EAAWsB,gBAC/BC,OAAQrB,EACNF,EAAWsB,eAAeH,kBAC1BnB,EAAWsB,eAAeF,iBAE5BI,UAAWtB,EACTF,EAAWyB,kBAAkBN,kBAC7BnB,EAAWyB,kBAAkBL,iBAE/BM,QAASrB,EAAcL,EAAWyB,mBAClCE,YAAazB,EACXF,EAAW4B,oBAAoBT,kBAC/BnB,EAAW4B,oBAAoBR,iBAEjCS,UAAWxB,EAAcL,EAAW4B,qBACpCE,WAAY5B,EACVF,EAAW+B,mBAAmBZ,kBAC9BnB,EAAW+B,mBAAmBX,iBAEhCY,SAAU3B,EAAcL,EAAW+B,oBACnCE,SAAU5B,EAAcL,EAAWkC,oBACnCC,SAAUjC,EACRF,EAAWoC,iBAAiBjB,kBAC5BnB,EAAWoC,iBAAiBhB,iBAE9BiB,OAAQhC,EAAcL,EAAWoC,kBACjCE,YAAajC,EAAcL,EAAWuC,uBACtCC,cAAetC,EACbF,EAAWuC,sBAAsBpB,kBACjCnB,EAAWuC,sBAAsBnB,iBAEnCqB,QAASpC,EAAcL,EAAW0C,mBAClCC,SAAUzC,EACRF,EAAW4C,gBAAgBzB,kBAC3BnB,EAAW4C,gBAAgBxB,iBAE7ByB,OAAQxC,EAAcL,EAAW4C,iBACjCE,MAAOzC,EAAcL,EAAW+C,iBAChCC,QAAS9C,EACPF,EAAW+C,gBAAgB5B,kBAC3BnB,EAAW+C,gBAAgB3B,iBAE7B6B,aAAc5C,EAAcL,EAAWkD,wBACvCC,eAAgBjD,EACdF,EAAWkD,uBAAuB/B,kBAClCnB,EAAWkD,uBAAuB9B,iBAEpCgC,WAAYlD,EACVF,EAAWqD,mBAAmBlC,kBAC9BnB,EAAWqD,mBAAmBjC,iBAEhCkC,SAAUjD,EAAcL,EAAWqD,oBACnCE,eAAgBrD,EACdF,EAAWwD,uBAAuBrC,kBAClCnB,EAAWwD,uBAAuBpC,iBAEpCqC,aAAcpD,EAAcL,EAAWwD,wBACvCE,MAAOxD,EACLF,EAAW2D,cAAcxC,kBACzBnB,EAAW2D,cAAcvC,iBAE3BwC,IAAKvD,EAAcL,EAAW2D,eAC9BE,SAAUxD,EAAcL,EAAW8D,kBACnCC,cAAe/D,EAAWgE,iBAC1BC,oBAAqB/D,EACnBF,EAAWkE,+BAA+B/C,kBAC1CnB,EAAWkE,+BAA+B9C,iBAE5C+C,oBAAqB9D,EAAcL,EAAWoE,8BAC9CC,oBAAqBhE,EAAcL,EAAWsE,8BAC9CC,OAAQlE,EAAcL,EAAWwE,kBACjCC,OAAQpE,EAAcL,EAAW0E,kBACjCC,SAAUtE,EAAcL,EAAW4E,oBACnCC,IAAKxE,EAAcL,EAAW8E,eAC9BC,MAAO1E,EAAcL,EAAWgF,iBAChCC,SAAU5E,EAAcL,EAAWkF,oBACnCC,mCAAoCnF,EAAWoF,sCAAsCC,MACrFC,yBAA0BtF,EAAWoF,sCAAsCG,MAC3EC,OAAQxF,EAAWwF,OACnBC,OAAQzF,EAAWyF,OACnBC,UAAW1F,EAAW0F,UACtBC,2BAA4B3F,EAAW2F,4BA0CrC,SAAUC,EAAcC,EAAYC,GACxC,OAAOD,EAAME,QAAO,SAACC,EAAKC,GACxB,IAAMC,EAAQJ,EAAIG,GACZE,EAASH,EAAIlG,IAAIoG,IAAU,GAGjC,OAFAC,EAAOC,KAAKH,GACZD,EAAIK,IAAIH,EAAOC,GACRH,IACN,IAAIM,O,oCCtPT,W,kCCAA,IAAIC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACG,YAAY,YAAYC,MAAM,CAAC,aAAa,aAAa,CAACJ,EAAG,MAAM,CAACG,YAAY,+DAA+D,CAACH,EAAG,MAAM,CAACG,YAAY,SAAS,CAACH,EAAG,KAAK,CAACG,YAAY,cAAcL,EAAIO,GAAIP,EAAIQ,OAAOC,KAAKC,aAAa,SAASC,GAAO,OAAOT,EAAG,KAAK,CAACZ,IAAIqB,EAAMN,YAAY,kBAAkBO,MAAM,CAAC,OAAUZ,EAAIQ,OAAOC,KAAKC,YAAY1K,SAAWgK,EAAIQ,OAAOC,KAAKC,YAAY5J,QAAQ6J,GAAO,IAAI,CAAEX,EAAIQ,OAAOC,KAAKC,YAAY1K,SAAWgK,EAAIQ,OAAOC,KAAKC,YAAY5J,QAAQ6J,GAAO,EAAGT,EAAG,cAAc,CAACI,MAAM,CAAC,GAAK,CAACO,KAAMF,KAAS,CAACX,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAIqH,OAAW,CAACX,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAIqH,OAAW,MAAK,UAErvBK,EAAkB,G,0qFCSP,IAAMC,EAAY,SAAAC,GAAA,SAAAD,IAAA,IAAAE,EAAAC,EAAA,KAAAH,GAAA,QAAAI,EAAAtL,UAAAC,OAAAsL,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAzL,UAAAyL,GAAA,OAAAL,EAAAM,EAAA,KAAAR,EAAA,GAAAtK,OAAA2K,IAAAI,EAAAP,EAAA,4BAAAA,EAAA,OAAAQ,EAAAV,EAAAC,GAAAU,EAAAX,EAAA,EAAA3B,IAAA,eAAAhG,IAG/B,WACE,OAAO2G,KAAK4B,kBAAkB5I,iBAJD,CAAS6I,QAArBb,EAAYc,eAAA,CAPhCC,eAAU,CACTC,SAAQC,EAAA,GACHC,eAAS,CACVN,kBAAmB,SAACO,GAAU,OAAKA,EAAMC,0BAI1BpB,WCXiX,I,YCOlYqB,EAAY,eACd,EACAvC,EACAiB,GACA,EACA,KACA,WACA,MAIa,OAAAsB,E,6CClBf,W,qBCAAC,EAAOC,QAAU,IAA0B,kC,gECA3C,IAAIzC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACG,YAAY,wBAAwB,CAACH,EAAG,MAAM,CAACG,YAAY,WAAW,CAACH,EAAG,eAAe,CAACI,MAAM,CAAC,eAAeN,EAAIyC,OAAOC,QAAQC,kBAAkBzC,EAAG,MAAM,CAACG,YAAY,sCAAsC,CAACH,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,aAAa,CAACH,EAAG,KAAK,CAACA,EAAG,MAAM,CAACG,YAAY,2BAA2BuC,YAAY,CAAC,MAAQ,QAAQtC,MAAM,CAAC,IAAMuC,EAAQ,QAAsD,IAAM,qBAAqB7C,EAAIc,GAAG,iBAAiBd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,eAAe,mBAAmB4G,EAAG,QAAQ,CAACF,EAAIc,GAAG,mBAAmBd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,4BAA4B,oBAAoB4G,EAAG,cAAc,CAACI,MAAM,CAAC,GAAK,aAAa,CAACN,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,WAAWzC,kBAAkBqJ,EAAG,OAAO,CAAC0C,YAAY,CAAC,YAAY,SAAS,CAAC5C,EAAIc,GAAG,KAAKd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,qBAAqB,QAAQ,WAAW4G,EAAG,MAAM,CAACG,YAAY,sCAAsC,CAACH,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACL,EAAI8C,GAAG,GAAG5C,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,IAAI,CAACG,YAAY,yBAAyBC,MAAM,CAAC,KAAO,KAAKyC,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAOC,iBAAwBjD,EAAIkD,IAAIC,MAAM,KAAMpN,cAAc,CAACmK,EAAG,IAAI,CAACG,YAAY,aAAaC,MAAM,CAAC,cAAc,UAAUN,EAAIc,GAAG,iBAAiBd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,mBAAmBjB,eAAe,kBAAkB6H,EAAG,OAAO,CAACG,YAAY,iCAAiC,CAACH,EAAG,MAAM,CAACG,YAAY,cAAc,CAACH,EAAG,YAAY,CAACI,MAAM,CAAC,QAAU,CAC3jD,CACExH,MAAO,IACPsK,QAASpD,EAAI/G,aAAaK,IAAI,8BAE5B,GAAG4G,EAAG,IAAI,CAACG,YAAY,eAAeC,MAAM,CAAC,KAAON,EAAIqD,mBAAmB,CAACnD,EAAG,IAAI,CAACG,YAAY,iBAAiBC,MAAM,CAAC,cAAc,oBAAoBJ,EAAG,MAAM,CAACG,YAAY,sCAAsC,CAACH,EAAG,MAAM,CAACG,YAAY,qCAAqC,CAACH,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,KAAK,CAACG,YAAY,cAAc,CAACL,EAAIc,GAAG,iBAAiBd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,qBAAqB,oBAAoB4G,EAAG,MAAM,CAACG,YAAY,wBAAwB,CAACH,EAAG,SAAS,CAACG,YAAY,oBAAoBC,MAAM,CAAC,gBAAgBN,EAAIsD,aAAa,gBAAe,EAAK,QAAUtD,EAAIuD,qBAAqB,MAAQvD,EAAIwD,iBAAiBC,MAAM,cAAczD,EAAIwD,iBAAiBE,WAAW,YAAY1D,EAAIwD,iBAAiBG,SAAS,UAAW,EAAK,QAAU3D,EAAIwD,iBAAiBI,QAAQ,wBAAuB,EAAK,oBAAmB,GAAMb,GAAG,CAAC,WAAa/C,EAAI6D,WAAW,cAAgB7D,EAAI8D,cAAc,iBAAmB9D,EAAI+D,iBAAiB,KAAO/D,EAAIgE,KAAK,OAAShE,EAAIiE,oBAAoB,MAAQjE,EAAIkE,UAAU,QAAQ,GAAGhE,EAAG,SAAS,CAACI,MAAM,CAAC,KAAON,EAAImE,iBAAiB,cAAcnE,EAAIoE,mBAAmBrB,GAAG,CAAC,YAAc/C,EAAIqE,aAAa,CAACnE,EAAG,OAAO,CAACG,YAAY,SAASC,MAAM,CAAC,KAAO,QAAQyC,GAAG,CAAC,OAAS,SAASC,GAAgC,OAAxBA,EAAOC,iBAAwBjD,EAAIsE,cAAcnB,MAAM,KAAMpN,cAAc,CAACmK,EAAG,MAAM,CAACG,YAAY,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAACH,EAAG,SAAS,CAACG,YAAY,kCAAkCC,MAAM,CAAC,KAAO,WAAW,CAACN,EAAIc,GAAG,iBAAiBd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,QAAQ,kBAAkB4G,EAAG,SAAS,CAACG,YAAY,sBAAsBC,MAAM,CAAC,KAAO,SAASyC,GAAG,CAAC,MAAQ/C,EAAIqE,aAAa,CAACrE,EAAIc,GAAG,iBAAiBd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,WAAW,0BAA0B4G,EAAG,SAAS,CAACI,MAAM,CAAC,cAAcN,EAAIuE,WAAW,KAAOvE,EAAIwE,UAAU,KAAO,KAAKzB,GAAG,CAAC,YAAc/C,EAAIqE,aAAa,CAAErE,EAAIwE,UAAWtE,EAAG,wBAAwB,CAACI,MAAM,CAAC,WAAaN,EAAIwD,iBAAiBiB,WAAW,YAAYzE,EAAI0E,UAAU3B,GAAG,CAAC,OAAS/C,EAAI2E,OAAO,OAAS3E,EAAIqE,cAAcrE,EAAI4E,MAAM,GAAG1E,EAAG,SAAS,CAACI,MAAM,CAAC,cAAcN,EAAI/G,aAAaK,IAAI,oBAAoB,KAAO0G,EAAI6E,aAAaC,OAAO,KAAO,KAAK/B,GAAG,CAAC,YAAc,SAASC,GAAQhD,EAAI6E,aAAaC,QAAS,KAAS,CAAE9E,EAAI6E,aAAaE,QAAQ/O,OAAS,EAAGkK,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,SAAS,CAACH,EAAG,MAAM,CAACG,YAAY,2BAA2BuC,YAAY,CAAC,MAAQ,QAAQtC,MAAM,CAAC,IAAMuC,EAAQ,QAAqE,IAAM,6BAA6B3C,EAAG,MAAM,CAACG,YAAY,SAAS,CAACH,EAAG,MAAM,CAACG,YAAY,yBAAyB,CAACH,EAAG,OAAO,CAACF,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,yBAAyB,SAAS0G,EAAIO,GAAIP,EAAI6E,aAAaE,SAAS,SAASC,GAAQ,OAAO9E,EAAG,KAAK,CAACZ,IAAI0F,EAAOC,IAAI,CAAC/E,EAAG,KAAK,CAACG,YAAY,eAAe,CAACH,EAAG,OAAO,CAAC6C,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAOC,iBAAwBjD,EAAIkF,QAAQtF,KAAK,CACl3FiB,KAAM,cACNsE,OAAQ,CAAEF,GAAI,GAAFtO,OAAKqO,EAAOC,UACpB,CAACjF,EAAIc,GAAGd,EAAIe,GAAGiE,EAAOnE,iBAAgB,KAAKX,EAAG,MAAM,CAACF,EAAIc,GAAG,WAAWd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,iCAAiC,aAAa4G,EAAG,MAAM,CAAC0C,YAAY,CAAC,MAAQ,UAAU,CAAC1C,EAAG,SAAS,CAACG,YAAY,sBAAsB0C,GAAG,CAAC,MAAQ,SAASC,GAAQhD,EAAI6E,aAAaC,QAAS,KAAS,CAAC9E,EAAIc,GAAG,aAAad,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,WAAW,kBAAkB4G,EAAG,SAAS,CAACI,MAAM,CAAC,cAAcN,EAAI/G,aAAaK,IAAI,oBAAoB,KAAO0G,EAAIoF,eAAeN,OAAO,KAAO,KAAK/B,GAAG,CAAC,YAAc,SAASC,GAAQhD,EAAIoF,eAAeN,QAAS,KAAS,CAAC5E,EAAG,MAAM,CAAgD,OAA9CF,EAAIwD,iBAAiBiB,WAAWY,UAAoBnF,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,OAAO,CAACF,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,eAAe,MAAM0G,EAAIe,GAAGf,EAAIsF,oBAAoBtF,EAAIwD,iBAAiBiB,WAAWY,mBAAmBrF,EAAI4E,KAA0D,OAApD5E,EAAIwD,iBAAiBiB,WAAWc,gBAA0BrF,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,OAAO,CAACF,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,eAAe,MAAM0G,EAAIe,GAAGf,EAAIwD,iBAAiBiB,WAAWc,wBAAwBvF,EAAI4E,KAAoD,OAA9C5E,EAAIwD,iBAAiBiB,WAAWe,UAAoBtF,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,OAAO,CAACF,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,eAAe,MAAM0G,EAAIe,GAAGf,EAAIsF,oBAAoBtF,EAAIwD,iBAAiBiB,WAAWe,mBAAmBxF,EAAI4E,KAA0D,OAApD5E,EAAIwD,iBAAiBiB,WAAWgB,gBAA0BvF,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,OAAO,CAACF,EAAIc,GAAGd,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,eAAe,MAAM0G,EAAIe,GAAGf,EAAIwD,iBAAiBiB,WAAWgB,wBAAwBzF,EAAI4E,OAAO1E,EAAG,MAAM,CAAC0C,YAAY,CAAC,MAAQ,UAAU,CAAC1C,EAAG,SAAS,CAACG,YAAY,sBAAsB0C,GAAG,CAAC,MAAQ,SAASC,GAAQhD,EAAIoF,eAAeN,QAAS,KAAS,CAAC9E,EAAIc,GAAG,aAAad,EAAIe,GAAGf,EAAI/G,aAAaK,IAAI,UAAU,mBAAmB,IAEl2D0H,EAAkB,CAAC,WAAY,IAAIhB,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,OAAO,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,MAAM,CAACG,YAAY,cAAc,CAACH,EAAG,SAAS,CAACG,YAAY,uCAAuCC,MAAM,CAAC,GAAK,qBAAqB,mBAAmB,SAAS,mBAAmB,UAAU,cAAc,kB,0pICW9X,IAAMoF,EAAY,WAAH,OAAS,iDAClBC,EAAwB,WAAH,OACzB,iDAEEC,EAAI/C,EAAQ,QAwCVgD,EAAW,SAAA3E,GAAA,SAAA2E,IAAA,IAAA1E,EAAAC,EAAA,KAAAyE,GAAA,QAAAxE,EAAAtL,UAAAC,OAAAsL,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAzL,UAAAyL,GA2Cd,OA3CcL,EAAAM,EAAA,KAAAoE,EAAA,GAAAlP,OAAA2K,IAAAI,EAAAP,EAAA,4BAAAO,EAAAP,EAAA,mBAEsB,CACnCsC,MAAO,EACPC,WAAY,EACZoC,KAAM,EACNnC,SAAU,GACVoC,QAAS,GACTC,OAAQ,CAAEC,MAAO,GAAIC,UAAWC,OAAUC,KAC1CxC,SAAS,EACTyC,WAAY,GACZC,YAAa,GACb7B,WAAY8B,iBACZC,UAAW,GACXC,oBAAqB,KAGvB/E,EAAAP,EAAA,aACY,GAAKO,EAAAP,EAAA,oBACE,GAAKO,EAAAP,EAAA,oBACJ,IAAEO,EAAAP,EAAA,aACT,IAEbO,EAAAP,EAAA,eACe,IAAEO,EAAAP,EAAA,YAEN,GAEXO,EAAAP,EAAA,eACsB,IAAEO,EAAAP,EAAA,uBACI,IAE5BO,EAAAP,EAAA,WACmB,GAAKO,EAAAP,EAAA,eAET,CACb2D,QAAQ,EACR4B,iBAAkB,EAClB3B,QAAS,IAAIxD,QACdG,EAAAP,EAAA,iBAEgB,CACf2D,QAAQ,IACT3D,EAAA,OAAAQ,EAAAkE,EAAA3E,GAAAU,EAAAiE,EAAA,EAAAvG,IAAA,2BAAAxG,MAID,SAAyB6N,GACvB1G,KAAKuD,iBAAiBiD,oBAAoBG,OAAOD,EAAU,KAG7D,CAAArH,IAAA,wBAAAxG,MAGA,WACEmH,KAAKuD,iBAAiBiD,oBAAoB7G,KAAK,CAC7CiH,WAAY,KACZC,aAAc,KACdhO,MAAO,SAEV,CAAAwG,IAAA,mBAAAhG,IAED,WACE,MAAO,GAAP3C,OAAUoQ,2BAA+B,kDAG3C,CAAAzH,IAAA,sBAAAxG,MAKA,SAAoBkO,GAClB/G,KAAKuD,iBAAiB6C,WAAaW,EACnC/G,KAAKmE,kBAAoBnE,KAAKhH,aAAaK,IACzC,6BACA0N,EAAIhR,QAENiK,KAAKkE,kBAAmB,IAG1B,CAAA7E,IAAA,gBAAAxG,MAGA,WAAa,IAAAmO,EAAA,KACXhH,KAAKiH,SAASC,MACZlH,KAAKhH,aAAaK,IAChB,uBACA2G,KAAKuD,iBAAiB6C,WAAWrQ,SAEnC,kBACE,IAAIoR,SAAiB,SAACC,EAASC,GAC7BC,OAAsBC,4BAA4B,CAChDR,IAAKC,EAAKzD,iBAAiB6C,aAE1BoB,MAAK,WACJJ,EAAQ,CACNK,KAAMT,EAAKhO,aAAaK,IACtB,sBACA2N,EAAKzD,iBAAiB6C,WAAWrQ,UAIrCiR,EAAKzD,iBAAiBsC,KAAO,EAE7BmB,EAAKU,mBACH,IAAIC,OAAY,CACd9B,KAAMmB,EAAKzD,iBAAiBsC,KAC5BnC,SAAUsD,EAAKzD,iBAAiBG,SAChCoC,QAASkB,EAAKzD,iBAAiBuC,QAC/BC,OAAQ,CAACiB,EAAKzD,iBAAiBwC,WAInCiB,EAAKzD,iBAAiB6C,WAAa,MAEpCwB,OAAM,SAAC7O,GACN,IAAI8O,EAAU,GAEZA,EADE9O,EAAME,SAENF,EAAME,SAASC,KAAKC,cAAc,GAAGC,mBAG7B4N,EAAKhO,aAAaK,IAAI,iBAElCgO,EAAO,CAAEI,KAAMI,YAGvB,CACEC,QAAS,IACTC,cAAc,IAGlB/H,KAAKoE,eAGP,CAAA/E,IAAA,aAAAxG,MAGA,SAAWwI,GACT,IAAM2G,EAAwB,GAC9BA,EAAUrI,KAAIsC,EAAC,GAAKZ,EAAK,KAEzBrB,KAAK0H,mBACH,IAAIC,OAAY,CACd9B,KAAMxE,EAAK,GACXqC,SAAU1D,KAAKuD,iBAAiBG,SAChCoC,QAAS9F,KAAKuD,iBAAiBuC,QAC/BC,OAAQiC,KAGZhI,KAAKuD,iBAAiBsC,KAAOxE,EAAK,GAClCrB,KAAKuD,iBAAiBwC,OAAM9D,EAAA,GAAQZ,EAAK,MAC1C,CAAAhC,IAAA,QAAAxG,MAED,SAAMiN,EAAmBmC,GACvB,IAAMD,EAAwB,GAC9BA,EAAUrI,KAAIsC,EAAC,GAAKgG,IAEpBjI,KAAK0H,mBACH,IAAIC,OAAY,CACd9B,KAAM7F,KAAKuD,iBAAiBsC,KAC5BnC,SAAU1D,KAAKuD,iBAAiBG,SAChCoC,QAAS9F,KAAKuD,iBAAiBuC,QAC/BC,OAAQiC,KAIZhI,KAAKuD,iBAAiBwC,OAAM9D,EAAA,GAAQgG,KAGtC,CAAA5I,IAAA,mBAAAxG,MAGA,SAAiBqP,GACflI,KAAKmI,QAAUD,IAIjB,CAAA7I,IAAA,gBAAAxG,MAGA,SAAcuP,GAAoB,IAAAC,EAAA,KAEhCrI,KAAKsI,8BAA8BF,GACnCpI,KAAKuI,2BAA2BvI,KAAKuD,iBAAiB8C,aAGtDrG,KAAKsD,qBAAuBtD,KAAKuD,iBAAiB8C,YAAYxO,KAC5D,SAAC2Q,GAGC,IAFA,IAAIC,EAAW,GAENvQ,EAAI,EAAGA,EAAIsQ,EAAQjC,UAAUxQ,OAAS,EAAGmC,KAE5CmQ,EAAKF,SAYLK,EAAQjC,UAAUrO,EAAI,GAAGwQ,aAAaC,SAASC,eAC/CC,OAAaC,SAZfL,EAAI,IAAD/R,OAAKwB,IAAOsQ,EAAQjC,UAAUrO,EAAI,GACjChB,eACAsR,EAAQjC,UAAUrO,EAAI,GAAGW,MACvB2P,EAAQjC,UAAUrO,EAAI,GAAGwQ,aAAaK,qBACxC,GAEA,GAqBR,OAAA9G,IAAA,GAEKwG,GAAG,IAENO,GAAIC,YACD5R,KAAKH,MAA8B,IAAxBsR,EAAQU,eAAuB,KAAK/O,QAAQ,IAE1DqG,KAAM,CACJwE,GAAIwD,EAAQxD,GACZmE,KAAMX,EAAQ5H,WAStBZ,KAAKqD,aAAatN,OAAS,EAE3B,IAAI0S,EAAW,GAGX7H,EAAY,CACdA,KAAMZ,KAAKhH,aAAaK,IAAI,mBAC5BgG,IAAK,OACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAGRC,EAAe,CACjB3I,KAAMZ,KAAKhH,aAAaK,IAAI,sBAC5BgG,IAAK,gBACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAGZlB,EAAgBvQ,KAAI,SAAC2R,GAEfnB,EAAKF,QACPM,EAAI9I,KAAK,CACPiB,KAAMrJ,eAAQiS,EAAO5I,MAAQ,KAAHlK,OAAQ8S,EAAOC,MAAM,GAAGC,KAAK9I,KAAI,KAC3DvB,IAAKpH,eAAYuR,EAAO5I,MACxBwI,YAAY,EACZC,aAAc,GACdC,UAAU,IAKRE,EAAOZ,eAAiBC,OAAaC,OACvCL,EAAI9I,KAAK,CACPiB,KAAMrJ,eAAQiS,EAAO5I,MAAQ,KAAHlK,OAAQ8S,EAAOC,MAAM,GAAGC,KAAK9I,KAAI,KAC3DvB,IAAKpH,eAAYuR,EAAO5I,MACxBwI,YAAY,EACZC,aAAc,GACdC,UAAU,OAOlBtJ,KAAKqD,aAAe,CAACzC,EAAM2I,GAAO7S,OAAK+R,KAKzC,CAAApJ,IAAA,qBAAAxG,MAKA,SAAmB8Q,GAAwB,IAAAC,EAAA,KACzC5J,KAAKuD,iBAAiBI,SAAU,EAEhC2D,OAAsBuC,0BAA0BF,GAC7CnC,MAAK,SAACvO,GACL2Q,EAAKrG,iBAAiBC,MAAQvK,EAASC,KAAK4Q,OAAOzD,YAAY7C,MAC/DoG,EAAKrG,iBAAiBE,WACpBxK,EAASC,KAAK4Q,OAAOzD,YAAY5C,WACnCmG,EAAKrG,iBAAiB8C,YACpBpN,EAASC,KAAK4Q,OAAOzD,YAAYyD,OACnCF,EAAKrG,iBAAiBI,SAAU,EAEhCiG,EAAKG,cAAc9Q,EAASC,KAAK4Q,OAAO1B,oBAEzCR,OAAM,SAAC7O,GACFA,EAAME,SACR2Q,EAAK3C,SAASlO,MACZA,EAAME,SAASC,KAAKC,cAAc,GAAGC,oBAGpCwQ,EAAK3C,SAASlO,MAAM6Q,EAAK5Q,aAAaK,IAAI,uBAGrD,CAAAgG,IAAA,gCAAAxG,MAGA,SAA8BmR,GAC5B,IAAMC,EAASD,EAAQE,WACrB,SAACC,GAAM,OAAKA,EAAEvB,eAAiBC,OAAauB,YAExCC,EAASL,EAAQE,WACrB,SAACC,GAAM,OAAKA,EAAEvB,eAAiBC,OAAayB,aAG/B,GAAXL,IAA2B,GAAXI,GAClBrK,KAAKuK,UAAUP,EAASC,EAAQI,EAAS,KAG7C,CAAAhL,IAAA,6BAAAxG,MAGA,SAA2B2R,GAAc,IACRC,EADQC,EAAAC,EACjBH,GAAS,IAA/B,IAAAE,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAiC,KAAtBtC,EAAOiC,EAAA5R,MACVoR,EAASzB,EAAQjC,UAAU2D,WAC/B,SAACC,GAAM,OACLA,EAAEzB,aAAaC,SAASC,eAAiBC,OAAauB,YAEpDC,EAAS7B,EAAQjC,UAAU2D,WAC/B,SAACC,GAAM,OACLA,EAAEzB,aAAaC,SAASC,eAAiBC,OAAayB,aAE3C,GAAXL,IAA2B,GAAXI,GAClBrK,KAAKuK,UAAU/B,EAAQjC,UAAW0D,EAAQI,EAAS,IAEtD,MAAAU,GAAAL,EAAAM,EAAAD,GAAA,QAAAL,EAAAO,OAEH,CAAA5L,IAAA,YAAAxG,MAGA,SAAUqS,EAAUC,EAAmBC,GACrC,IAAM5C,EAAU0C,EAAIC,GACpBD,EAAIvE,OAAOwE,EAAW,GACtBD,EAAIvE,OAAOyE,EAAS,EAAG5C,KAEzB,CAAAnJ,IAAA,aAAAxG,MAGA,WACEmH,KAAKuE,WAAY,EACjBvE,KAAKkE,kBAAmB,EACxBlE,KAAKyE,UAAW,EAChBzE,KAAKuD,iBAAiBiB,WAAa8B,iBACnCtG,KAAKuD,iBAAiBiD,oBAAoBzQ,OAAS,IACpD,CAAAsJ,IAAA,sBAAAxG,MAED,SAAoBwS,GAClB,OAAOrL,KAAKsL,QAAQD,GAAME,OAAOC,UAGnC,CAAAnM,IAAA,OAAAxG,MAGA,SAAKmM,GACH,IAAIyG,EAAO9F,EAAE+F,UACX1L,KAAKuD,iBAAiB8C,YAAYsF,MAAK,SAACzT,GAAC,OAAKA,EAAE8M,KAAOA,MAErDyG,IACFzL,KAAKuD,iBAAiBiB,WAAUvC,EAAA,GAAQwJ,GAGxCzL,KAAKuD,iBAAiBiB,WAAWoH,gBAAeC,EAC3CJ,EAAKG,iBAGV5L,KAAKuD,iBAAiBiB,WAAWoH,gBAAgB/T,KAAI,SAACiU,GACpDA,EAAY5C,cAAgBD,YACzB5R,KAAKH,MAAkC,IAA5B4U,EAAY5C,eAAuB,KAAK/O,QAAQ,QAuBlE6F,KAAKuE,WAAY,EACjBvE,KAAKyE,UAAW,EAChBzE,KAAKsE,WAAatE,KAAKhH,aAAaK,IAAI,2BAG1C,CAAAgG,IAAA,MAAAxG,MAGA,WACEmH,KAAKuE,WAAY,EACjBvE,KAAKsE,WAAatE,KAAKhH,aAAaK,IAAI,0BAG1C,CAAAgG,IAAA,SAAAxG,MAGA,SACE2L,EACA+B,GAKIvG,KAAKyE,SACPzE,KAAK+L,WAAWxF,GAGhBvG,KAAKgM,UAAUzF,KAElB,CAAAlH,IAAA,aAAAxG,MAED,SACE0N,GAGG,IAAA0F,EAAA,KAGCC,EAA+C,CACjDC,aAAcnM,KAAKuD,iBAAiBiB,WAAWoH,gBAC/C5G,GAAIhF,KAAKuD,iBAAiBiB,WAAWQ,GACrCpE,KAAMZ,KAAKuD,iBAAiBiB,WAAW5D,KACvCsI,cAAelJ,KAAKuD,iBAAiBiB,WAAW0E,cAChDkD,kBAAmBpM,KAAKuD,iBAAiBiB,WAAW4H,kBACpDC,kBAAmBrM,KAAKuD,iBAAiBiB,WAAW6H,kBACpDC,4BACEtM,KAAKuD,iBAAiBiB,WAAW8H,4BAEnC/F,UAAWA,EACXgG,eAAgBvM,KAAKuD,iBAAiBiB,WAAW+H,gBAInDvM,KAAKiH,SAASC,MACZlH,KAAKhH,aAAaK,IAAI,yBACtB,kBACE,IAAI8N,SAAiB,SAACC,EAASC,GAC7BC,OAAsBkF,2BAA2BN,GAC9C1E,MAAK,WACJJ,EAAQ,CACNK,KAAMwE,EAAKjT,aAAaK,IACtB,sBACA6S,EAAiBtL,QAIrBqL,EAAKvE,mBACH,IAAIC,OAAY,CACd9B,KAAMoG,EAAK1I,iBAAiBsC,KAC5BnC,SAAUuI,EAAK1I,iBAAiBG,SAChCoC,QAASmG,EAAK1I,iBAAiBuC,QAC/BC,OAAQ,CAACkG,EAAK1I,iBAAiBwC,WAInCkG,EAAK7H,gBAENwD,OAAM,SAAC7O,GACN,IAAI8O,EAAU,GACdoE,EAAKlI,KAAKkI,EAAK1I,iBAAiBiB,WAAWQ,IAEzC6C,EADE9O,EAAME,SAENF,EAAME,SAASC,KAAKC,cAAc,GAAGC,mBAG7B6S,EAAKjT,aAAaK,IAAI,iBAElCgO,EAAO,CAAEI,KAAMI,YAGvB,CACEC,QAAS,IACTC,cAAc,MAGnB,CAAA1I,IAAA,YAAAxG,MAED,SACE0N,GAGG,IAAAkG,EAAA,KAGCC,EAA4C,CAC9C9L,KAAMZ,KAAKuD,iBAAiBiB,WAAW5D,KACvCsI,cAAelJ,KAAKuD,iBAAiBiB,WAAW0E,cAChDiD,aAAcnM,KAAKuD,iBAAiBiB,WAAWoH,gBAC/CQ,kBAAmBpM,KAAKuD,iBAAiBiB,WAAW4H,kBACpDC,kBAAmBrM,KAAKuD,iBAAiBiB,WAAW6H,kBACpDC,4BACEtM,KAAKuD,iBAAiBiB,WAAW8H,4BAEnC/F,UAAWA,EACXgG,eAAgBvM,KAAKuD,iBAAiBiB,WAAW+H,gBAInDvM,KAAKiH,SAASC,MACZlH,KAAKhH,aAAaK,IAAI,uBACtB,kBACE,IAAI8N,SAAiB,SAACC,EAASC,GAC7BC,OAAsBqF,2BAA2BD,GAC9ClF,MAAK,WACJJ,EAAQ,CACNK,KAAMgF,EAAKzT,aAAaK,IACtB,oBACAqT,EAAc9L,QAIlB6L,EAAK/E,mBACH,IAAIC,OAAY,CACd9B,KAAM4G,EAAKlJ,iBAAiBsC,KAC5BnC,SAAU+I,EAAKlJ,iBAAiBG,SAChCoC,QAAS2G,EAAKlJ,iBAAiBuC,QAC/BC,OAAQ,CAAC0G,EAAKlJ,iBAAiBwC,WAInC0G,EAAKrI,gBAENwD,OAAM,SAAC7O,GACN,IAAI8O,EAAU,GAEZA,EADE9O,EAAME,SAENF,EAAME,SAASC,KAAKC,cAAc,GAAGC,mBAG7BqT,EAAKzT,aAAaK,IAAI,iBAElCgO,EAAO,CAAEI,KAAMI,YAGvB,CACEC,QAAS,IACTC,cAAc,MAIpB,CAAA1I,IAAA,iCAAAxG,MACA,WAA8B,IAAA+T,EAAA,KAC5BC,OAAkBC,6BAChB9M,KAAK4E,aAAa6B,kBAEjBe,MAAK,SAACvO,GACL2T,EAAKhI,aAAaE,QAAU7L,EAASC,KAAK4Q,UAE3ClC,OAAM,SAAC7O,GACFA,EAAME,SACR2T,EAAK3F,SAASlO,MACZA,EAAME,SAASC,KAAKC,cAAc,GAAGC,oBAGpCwT,EAAK3F,SAASlO,MAAM6T,EAAK5T,aAAaK,IAAI,uBAEpD,CAAAgG,IAAA,gBAAAxG,MACD,SAAcmM,GACZhF,KAAK4E,aAAa6B,iBAAmBzB,EACrChF,KAAK4E,aAAaC,QAAS,EAC3B7E,KAAK+M,mCACN,CAAA1N,IAAA,mBAAAxG,MAED,SAAiBmM,GACfhF,KAAKmF,eAAeN,QAAS,EAC7B7E,KAAKuD,iBAAiBiB,WAAcxE,KAAKuD,iBAAiB8C,YAAYsF,MAAK,SAACqB,GAAG,OAAKA,EAAIhI,KAAOA,OAChG,CAAA3F,IAAA,eAAAhG,IAED,WACE,OAAO2G,KAAK4B,kBAAkB5I,eAC/B,CAAAqG,IAAA,UAAAxG,MAED,WAAO,IAAAoU,EAAA,KACLjN,KAAKwC,OACF0K,SAASC,OAAoB,CAC5BC,SAAU,QACVC,YAAa,CAAC,SAAU,iBAEzB7F,MAAK,WACJ9O,SAAS4U,MACPL,EAAKjU,aAAaK,IAAI,cACtB,IACA4T,EAAKjU,aAAaK,IAAI,yBAEzBuO,OAAM,SAAC7O,GACFA,EAAME,SACRgU,EAAKhG,SAASlO,MACZA,EAAME,SAASC,KAAKC,cAAc,GAAGC,oBAGpC6T,EAAKhG,SAASlO,MAAMkU,EAAKjU,aAAaK,IAAI,qBAGnD2G,KAAK0H,mBACH,IAAIC,OAAY,CAAE9B,KAAM,EAAGnC,SAAU1D,KAAKuD,iBAAiBG,YAI7D1D,KAAKqD,aAAe,CAClB,CACEzC,KAAMZ,KAAKhH,aAAaK,IAAI,mBAC5BgG,IAAK,OACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,kBAC5BgG,IAAK,SACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,kBAAoB,OAChDgG,IAAK,MACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,kBAAoB,OAChDgG,IAAK,sBACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,oBAAsB,OAClDgG,IAAK,kBACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,mBAAqB,QACjDgG,IAAK,cACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,kBAAoB,QAChDgG,IAAK,SACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,mBAAqB,OACjDgG,IAAK,eACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,kBAAoB,OAChDgG,IAAK,QACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,kBAAoB,OAChDgG,IAAK,SACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,mBAAqB,OACjDgG,IAAK,UACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,mBAAqB,SACjDgG,IAAK,WACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,mBAAqB,QACjDgG,IAAK,WACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,kBAAoB,QAChDgG,IAAK,YACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,mBAAqB,QACjDgG,IAAK,UACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,GAEZ,CACE1I,KAAMZ,KAAKhH,aAAaK,IAAI,mBAAqB,QACjDgG,IAAK,OACL+J,YAAY,EACZC,aAAc,GACdC,UAAU,MAGf,CAAAjK,IAAA,UAAAxG,MACD,WAAO,IAAA0U,EAAA,KACCC,OAAQC,EAAEC,MAAMC,OACtB,IAAIC,EAAa,GAEXH,EAAE,uBACLI,QAAQ,CACPC,YAAY,EACZC,MAAO,OACPC,YAAa,qBACbC,mBAAoB,EACpBC,KAAM,CACJC,MAAO,IACPC,UAAW,SAAClJ,EAAamJ,GACvB/G,OAAsBgH,qBACpB,IAAI3G,OAAY,CACd9B,KAAM0H,EAAKhK,iBAAiBsC,KAC5BnC,SAAU6J,EAAKhK,iBAAiBG,SAChCkK,WAAY1I,EAAOhM,KAAKqV,KAAOrJ,EAAOhM,KAAKqV,KAAO,GAClDxI,OAAQ,CAACwH,EAAKhK,iBAAiBwC,WAEjCyB,MAAK,SAACvO,GACNoV,EAAQpV,MAEV2U,EAAa1I,EAAOhM,KAAKqV,MAE3BC,eAAgB,SAACvV,GACf,IAAIC,EAAc,GAMlB,OALAA,EAAKyG,KAAK,CAAEqF,GAAI,EAAGxN,KAAMjB,eAAc,yBAA0B,MACjE0C,EAASC,KAAK4Q,OAAO2E,eAAe3E,OAAOjS,KAAI,SAAC6W,GAC9CxV,EAAKyG,KAAK,CAAEqF,GAAI0J,EAAE1J,GAAIxN,KAAMjB,eAAcmY,EAAE9N,KAAMgN,QAG7C,CAAEe,QAASzV,KAGtB0V,aAAc,SAASpG,GACrB,OAAOA,KAGV1F,GAAG,kBAAkB,SAAC+L,GACrBtB,EAAKhK,iBAAiBsC,KAAO,EAC7B0H,EAAKhK,iBAAiBwC,OAAS,CAAEC,MAAO,GAAIC,UAAWC,OAAUC,KAEnC,GAA1B0I,EAAUC,OAAOjW,MACnB0U,EAAKhK,iBAAiBuC,QAAQ/P,OAAS,EAGvCwX,EAAKhK,iBAAiBuC,QAAU,CAC9B,CAAElF,KAAM,KAAM/H,MAAOgW,EAAUC,OAAOjW,QAI1CyO,OAAsBuC,0BACpB,IAAIlC,OAAY,CACd9B,KAAM0H,EAAKhK,iBAAiBsC,KAC5BnC,SAAU6J,EAAKhK,iBAAiBG,SAChCoC,QAASyH,EAAKhK,iBAAiBuC,QAC/BC,OAAQ,CAACwH,EAAKhK,iBAAiBwC,WAEjCyB,MAAK,SAACvO,GACNsU,EAAKhK,iBAAiB8C,YACpBpN,EAASC,KAAK4Q,OAAOzD,YAAYyD,OACnCyD,EAAKhK,iBAAiBC,MAAQvK,EAASC,KAAK4Q,OAAOzD,YAAY7C,MAC/D+J,EAAKhK,iBAAiBE,WACpBxK,EAASC,KAAK4Q,OAAOzD,YAAY5C,WACnC8J,EAAKhK,iBAAiBI,SAAU,EAGhC4J,EAAKxD,cAAc9Q,EAASC,KAAK4Q,OAAO1B,2BAhzBjC,CAASvG,QAApB+D,EAAW9D,eAAA,CAdhBC,eAAU,CACTgN,WAAY,CACV/N,oBACAgO,cACAC,cACAxJ,YACAC,yBAEF1D,SAAQC,EAAA,GACHC,eAAS,CACVN,kBAAmB,SAACO,GAAU,OAAKA,EAAMC,0BAIzCwD,GAqzBSA,QCt3BwY,I,kCCSnZvD,EAAY,eACd,EACAvC,EACAiB,GACA,EACA,KACA,WACA,MAIa,aAAAsB,E,yFCpBR,IAAKvI,EAAZ,2CAAYA,GACVA,IAAA,wBACAA,IAAA,4BAFF,CAAYA,MAA2B,M,kCCAvC,IAAIgG,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,QAAQ,KAAO,WAAW,CAAEN,EAAImP,KAAMjP,EAAG,MAAM,CAACG,YAAY,cAAc,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgBC,MAAM,CAAC,GAAKN,EAAIoP,UAAU,CAAClP,EAAG,MAAM,CAACG,YAAY,eAAeO,MAAM,CAAC,cAA2B,MAAbZ,EAAIqP,KAAc,eAA0B,MAAXrP,EAAIqP,MAAkC,qBAAbrP,EAAIqP,KAAsB,cAA2B,MAAbrP,EAAIqP,KAAc,gBAA6B,OAAbrP,EAAIqP,OAAgB,CAACnP,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,KAAK,CAACG,YAAY,eAAe,CAACL,EAAIc,GAAGd,EAAIe,GAAGf,EAAIuE,eAAerE,EAAG,SAAS,CAACG,YAAY,QAAQC,MAAM,CAAC,KAAO,UAAUyC,GAAG,CAAC,MAAQ/C,EAAIsP,cAAc,CAACpP,EAAG,OAAO,CAACI,MAAM,CAAC,cAAc,SAAS,CAACN,EAAIc,GAAG,WAAWZ,EAAG,MAAM,CAACG,YAAY,cAAc,CAACL,EAAIuP,GAAG,YAAY,WAAWvP,EAAI4E,QAE10B5D,EAAkB,G,+lECEP,IAAMkO,EAAM,SAAAhO,GAAA,SAAAgO,IAAA,IAAA/N,EAAAC,EAAA,KAAA8N,GAAA,QAAA7N,EAAAtL,UAAAC,OAAAsL,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAzL,UAAAyL,GAAA,OAAAL,EAAAM,EAAA,KAAAyN,EAAA,GAAAvY,OAAA2K,IAAAI,EAAAP,EAAA,eAAAO,EAAAP,EAAA,qBAAAO,EAAAP,EAAA,eAAAO,EAAAP,EAAA,kBAAAA,EAAA,OAAAQ,EAAAuN,EAAAhO,GAAAU,EAAAsN,EAAA,EAAA5P,IAAA,YAAAxG,MAOzB,WACE,IAAI0W,EAAQ7W,SAAS8W,qBAAqB,QAAQ,GAC9CxP,KAAKkP,KAAMK,EAAME,UAAUxM,IAAI,aAC9BsM,EAAME,UAAUC,OAAO,eAC7B,CAAArQ,IAAA,YAAAxG,MAED,WACEmH,KAAK2P,MAAM,eACZ,CAAAtQ,IAAA,cAAAxG,MAED,WACEmH,KAAK2P,MAAM,iBACZ,CAAAtQ,IAAA,UAAAxG,MAED,WAAO,IAAAmO,EAAA,KACLtO,SAASkX,iBAAiB,WAAW,SAAC5E,GAChChE,EAAKkI,MAAqB,IAAblE,EAAE6E,SACjB7I,EAAKqI,qBAxBc,CAASxN,QAC1BC,eAAA,CAAPgO,kB,2BACOhO,eAAA,CAAPgO,kB,iCACOhO,eAAA,CAAPgO,kB,2BACOhO,eAAA,CAAPgO,kB,8BAGDhO,eAAA,CADCiO,eAAM,S,8BANYd,EAAMnN,eAAA,CAD1BC,QACoBkN,WCJ2W,I,wBCQ5X5M,EAAY,eACd,EACAvC,EACAiB,GACA,EACA,KACA,WACA,MAIa,OAAAsB,E,2CCnBf","file":"js/chunk-53187f5d.b6c1c1c5.js","sourcesContent":["import { DailyValueCalculationMethod } from \"@/models/Recipes/DailyValueCalculationMethod\";\r\nimport { Nutritions } from \"@/models/Recipes/Nutritions\";\r\n\r\nexport function debounce(callback: any, time = 250) {\r\n\r\n let intervalId: any = localStorage.getItem(\"some-unique-key-interval-id\");\r\n\r\n if (intervalId) {\r\n clearTimeout(intervalId);\r\n }\r\n\r\n intervalId = setTimeout(() => {\r\n callback();\r\n }, time);\r\n\r\n localStorage.setItem(\"some-unique-key-interval-id\", intervalId);\r\n}\r\n\r\nexport function getBoldString(mainString: string, subString: string) {\r\n if(subString == \"\"){\r\n return `${mainString}`;\r\n }\r\n else{\r\n const index = mainString.toLowerCase().indexOf(subString.toLowerCase());\r\n if (index !== -1) {\r\n const startIndex = mainString.substring(0, index);\r\n const endIndex = mainString.substring(index + subString.length);\r\n const highlightedString = startIndex + \"\" + mainString.substring(index, index + subString.length) + \"\" + endIndex;\r\n return highlightedString;\r\n }\r\n return mainString;\r\n }\r\n}\r\n\r\n\r\nexport function round(number: number, decimalPlaces: number) {\r\n return Math.round(number * Math.pow(10, decimalPlaces)) / Math.pow(10, decimalPlaces);\r\n}\r\n\r\nexport function shorten(text: string) {\r\n\r\n let newText = text.replace(',', '');\r\n newText = newText.replace('.', '');\r\n\r\n let parts = newText.split(' ');\r\n parts = parts.map((part) => {\r\n if (part.length > 3)\r\n return part.substr(0, 3) + '.';\r\n else {\r\n return part;\r\n }\r\n });\r\n\r\n return parts.join(' ');\r\n}\r\n\r\nexport function toCamelCase(text: string) {\r\n\r\n let parts = text.split(' ');\r\n for (let i = 0; i < parts.length; i++) {\r\n\r\n parts[i] = parts[i].charAt(0).toUpperCase() + parts[i].slice(1);\r\n }\r\n\r\n let cammeled = parts.join('');\r\n cammeled = cammeled.replace(',', '');\r\n\r\n return cammeled;\r\n}\r\n\r\nexport function desanitizeString(html: string) {\r\n let txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n}\r\n\r\nexport function getErrorMessage(error: any, translations: any) {\r\n return error.response &&\r\n error.response.data.errorMessages[0].userVisibleMessage\r\n ? error.response.data.errorMessages[0].userVisibleMessage\r\n : translations.get(\"toastr_network_error\");\r\n}\r\n\r\n// Fallowing functions are used to simplify the object nutritionAnalysis returned from backend\r\n\r\nexport function mapNutritions(nutritions: any, dailyValueCalculationMethod?: DailyValueCalculationMethod): Partial {\r\n const dvCheck = (roundedDv: number, exactDv: number): number => {\r\n return dailyValueCalculationMethod ? exactDv : roundedDv;\r\n };\r\n\r\n const roundingCheck = (value: any) => {\r\n if (dailyValueCalculationMethod == undefined) {\r\n return value.roundedValue;\r\n }\r\n\r\n else {\r\n if (dailyValueCalculationMethod == DailyValueCalculationMethod.Unrounded) {\r\n return Number.isInteger(value.exactValue) ? value.exactValue: value.exactValue.toFixed(2);\r\n }\r\n else if(dailyValueCalculationMethod == DailyValueCalculationMethod.Rounded) {\r\n return Number.isInteger(value.roundedValue) ? value.roundedValue: value.roundedValue.toFixed(2);\r\n }\r\n else {\r\n return value.roundedValue;\r\n }\r\n }\r\n };\r\n\r\n return {\r\n addedSugarPerServing: nutritions.addedSugarPerServing.exactValue,\r\n unadjustedAddedSugarPerServing: nutritions.unadjustedAddedSugarPerServing.exactValue,\r\n sugarAlcohols: roundingCheck(nutritions.alcoholSugarPerServing),\r\n alcoholSugarDv: dvCheck(\r\n nutritions.alcoholSugarPerServing.roundedDailyValue,\r\n nutritions.alcoholSugarPerServing.exactDailyValue\r\n ),\r\n iron: roundingCheck(nutritions.ironPerServing),\r\n ironDv: dvCheck(\r\n nutritions.ironPerServing.roundedDailyValue,\r\n nutritions.ironPerServing.exactDailyValue\r\n ),\r\n calciumDv: dvCheck(\r\n nutritions.calciumPerServing.roundedDailyValue,\r\n nutritions.calciumPerServing.exactDailyValue\r\n ),\r\n calcium: roundingCheck(nutritions.calciumPerServing),\r\n potassiumDv: dvCheck(\r\n nutritions.potassiumPerServing.roundedDailyValue,\r\n nutritions.potassiumPerServing.exactDailyValue\r\n ),\r\n potassium: roundingCheck(nutritions.potassiumPerServing),\r\n vitaminDDv: dvCheck(\r\n nutritions.vitaminDPerServing.roundedDailyValue,\r\n nutritions.vitaminDPerServing.exactDailyValue\r\n ),\r\n vitaminD: roundingCheck(nutritions.vitaminDPerServing),\r\n vitaminC: roundingCheck(nutritions.vitaminCPerServing),\r\n sodiumDv: dvCheck(\r\n nutritions.sodiumPerServing.roundedDailyValue,\r\n nutritions.sodiumPerServing.exactDailyValue\r\n ),\r\n sodium: roundingCheck(nutritions.sodiumPerServing),\r\n cholesterol: roundingCheck(nutritions.cholesterolPerServing),\r\n cholesterolDv: dvCheck(\r\n nutritions.cholesterolPerServing.roundedDailyValue,\r\n nutritions.cholesterolPerServing.exactDailyValue\r\n ),\r\n protein: roundingCheck(nutritions.proteinPerServing),\r\n sugarsDv: dvCheck(\r\n nutritions.sugarPerServing.roundedDailyValue,\r\n nutritions.sugarPerServing.exactDailyValue\r\n ),\r\n sugars: roundingCheck(nutritions.sugarPerServing),\r\n fibre: roundingCheck(nutritions.fibrePerServing),\r\n fibreDv: dvCheck(\r\n nutritions.fibrePerServing.roundedDailyValue,\r\n nutritions.fibrePerServing.exactDailyValue\r\n ),\r\n carbohydrate: roundingCheck(nutritions.carbohydratePerServing),\r\n carbohydrateDv: dvCheck(\r\n nutritions.carbohydratePerServing.roundedDailyValue,\r\n nutritions.carbohydratePerServing.exactDailyValue\r\n ),\r\n transFatDv: dvCheck(\r\n nutritions.transFatPerServing.roundedDailyValue,\r\n nutritions.transFatPerServing.exactDailyValue\r\n ),\r\n transFat: roundingCheck(nutritions.transFatPerServing),\r\n saturatedFatDv: dvCheck(\r\n nutritions.saturatedFatPerServing.roundedDailyValue,\r\n nutritions.saturatedFatPerServing.exactDailyValue\r\n ),\r\n saturatedFat: roundingCheck(nutritions.saturatedFatPerServing),\r\n fatDv: dvCheck(\r\n nutritions.fatPerServing.roundedDailyValue,\r\n nutritions.fatPerServing.exactDailyValue\r\n ),\r\n fat: roundingCheck(nutritions.fatPerServing),\r\n calories: roundingCheck(nutritions.energyPerServing),\r\n servingWeight: nutritions.weightPerServing,\r\n saturatedAndTransDv: dvCheck(\r\n nutritions.saturatedAndTransFatPerServing.roundedDailyValue,\r\n nutritions.saturatedAndTransFatPerServing.exactDailyValue\r\n ),\r\n monounsaturatedFats: roundingCheck(nutritions.monounsaturatedFatPerServing),\r\n polyunsaturatedFats: roundingCheck(nutritions.polyunsaturatedFatPerServing),\r\n omega3: roundingCheck(nutritions.omega3PerServing),\r\n omega6: roundingCheck(nutritions.omega6PerServing),\r\n caffeine: roundingCheck(nutritions.caffeinePerServing),\r\n ash: roundingCheck(nutritions.ashPerServing),\r\n water: roundingCheck(nutritions.waterPerServing),\r\n moisture: roundingCheck(nutritions.moisturePerServing),\r\n servingQuantityInUnitOfMeasurement: nutritions.quantityPerServingInUnitOfMeasurement.item1,\r\n servingUnitOfMeasurement: nutritions.quantityPerServingInUnitOfMeasurement.item2,\r\n volume: nutritions.volume,\r\n weight: nutritions.weight,\r\n labelType: nutritions.labelType,\r\n additionalLabelInformation: nutritions.additionalLabelInformation\r\n };\r\n}\r\n\r\nexport function mapNutritionsForDish(nutritions: any): Partial {\r\n return {\r\n calories: nutritions.energyPerServing.roundedValue,\r\n fat: nutritions.fatPerServing.roundedValue,\r\n fatDv: nutritions.fatPerServing.roundedDailyValue,\r\n saturatedFat: nutritions.saturatedFatPerServing.roundedValue,\r\n transFat: nutritions.transFatPerServing.roundedValue,\r\n saturatedAndTransDv: nutritions.saturatedAndTransFatPerServing.roundedDailyValue,\r\n cholesterol: nutritions.cholesterolPerServing.roundedValue,\r\n sodium: nutritions.sodiumPerServing.roundedValue,\r\n sodiumDv: nutritions.sodiumPerServing.roundedDailyValue,\r\n carbohydrate: nutritions.carbohydratePerServing.roundedValue,\r\n fibre: nutritions.fibrePerServing.roundedValue,\r\n fibreDv: nutritions.fibrePerServing.roundedDailyValue,\r\n sugars: nutritions.sugarPerServing.roundedValue,\r\n sugarsDv: nutritions.sugarPerServing.roundedDailyValue,\r\n protein: nutritions.proteinPerServing.roundedValue,\r\n vitaminD: nutritions.vitaminDPerServing.roundedValue,\r\n vitaminDDv: nutritions.vitaminDPerServing.roundedDailyValue,\r\n vitaminC: nutritions.vitaminCPerServing.roundedValue,\r\n potassium: nutritions.potassiumPerServing.roundedValue,\r\n potassiumDv: nutritions.potassiumPerServing.roundedDailyValue,\r\n calcium: nutritions.calciumPerServing.roundedValue,\r\n calciumDv: nutritions.calciumPerServing.roundedDailyValue,\r\n iron: nutritions.ironPerServing.roundedValue,\r\n ironDv: nutritions.ironPerServing.roundedDailyValue,\r\n monounsaturatedFats: nutritions.monounsaturatedFatPerServing.roundedValue,\r\n polyunsaturatedFats: nutritions.polyunsaturatedFatPerServing.roundedValue,\r\n omega3: nutritions.omega3PerServing.roundedValue,\r\n omega6: nutritions.omega6PerServing.roundedValue,\r\n caffeine: nutritions.caffeinePerServing.roundedValue,\r\n ash: nutritions.ashPerServing.roundedValue,\r\n water: nutritions.waterPerServing.roundedValue,\r\n moisture: nutritions.moisturePerServing.roundedValue,\r\n servingWeight: nutritions.weightPerServing\r\n };\r\n}\r\n\r\nexport function groupBy(items: K[], key: (item: K) => V): Map {\r\n return items.reduce((acc, item) => {\r\n const group = key(item);\r\n const values = acc.get(group) || [];\r\n values.push(item);\r\n acc.set(group, values);\r\n return acc;\r\n }, new Map());\r\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vModal.vue?vue&type=style&index=0&id=c51eb92e&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"jumbotron\",attrs:{\"data-pages\":\"parallax\"}},[_c('div',{staticClass:\"container-fluid container-fixed-lg sm-p-l-0 sm-p-r-0 p-t-10\"},[_c('div',{staticClass:\"inner\"},[_c('ol',{staticClass:\"breadcrumb\"},_vm._l((_vm.$route.meta.breadCrumbs),function(crumb){return _c('li',{key:crumb,staticClass:\"breadcrumb-item\",class:{'active': _vm.$route.meta.breadCrumbs.length === _vm.$route.meta.breadCrumbs.indexOf(crumb)+1}},[(_vm.$route.meta.breadCrumbs.length !== _vm.$route.meta.breadCrumbs.indexOf(crumb)+1)?_c('router-link',{attrs:{\"to\":{name: crumb}}},[_vm._v(_vm._s(_vm.translations.get(crumb)))]):[_vm._v(_vm._s(_vm.translations.get(crumb)))]],2)}),0)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component } from \"vue-property-decorator\";\r\nimport { mapState } from 'vuex';\r\n\r\n@Component({\r\n computed: {\r\n ...mapState({\r\n localizationState: (state: any) => state.LocalizationModule,\r\n })\r\n }\r\n})\r\nexport default class vBreadcrumbs extends Vue {\r\n localizationState: any;\r\n\r\n get translations() {\r\n return this.localizationState.translations;\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vBreadcrumbs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vBreadcrumbs.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vBreadcrumbs.vue?vue&type=template&id=3639f50c&scoped=true\"\nimport script from \"./vBreadcrumbs.vue?vue&type=script&lang=ts\"\nexport * from \"./vBreadcrumbs.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3639f50c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ingredients.vue?vue&type=style&index=0&id=e2a10322&prod&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/apple-profile.93e9aeab.jpg\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"page-content-wrapper\"},[_c('div',{staticClass:\"content\"},[_c('vBreadcrumbs',{attrs:{\"user-details\":_vm.$store.getters.getUserDetails}}),_c('div',{staticClass:\"container-fluid container-fixed-lg\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h2',[_c('img',{staticClass:\"img-thumbnail img-circle\",staticStyle:{\"width\":\"75px\"},attrs:{\"src\":require(\"../../assets/Customer/assets/img/apple-profile.jpg\"),\"alt\":\"Profile picture\"}}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"ingr_title\"))+\":\\n \"),_c('small',[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"ing_title_combine_yours\"))+\"\\n \"),_c('router-link',{attrs:{\"to\":\"/recipes\"}},[_vm._v(_vm._s(_vm.translations.get(\"recipes\").toLowerCase()))]),_c('span',{staticStyle:{\"font-size\":\"16px\"}},[_vm._v(\" (\"+_vm._s(_vm.translations.get(\"ingr_description\"))+\")\")])],1)])])])]),_c('div',{staticClass:\"container-fluid container-fixed-lg\"},[_c('div',{staticClass:\"row search-add\"},[_vm._m(0),_c('div',{staticClass:\"col-md-8 col-12\"},[_c('a',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.add.apply(null, arguments)}}},[_c('i',{staticClass:\"fa fa-plus\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"ingr_add_button\").toUpperCase())+\"\\n \")]),_c('form',{staticClass:\"form-inline pull-right export\"},[_c('div',{staticClass:\"form-group\"},[_c('vSelectFx',{attrs:{\"options\":[\n {\n value: '0',\n content: _vm.translations.get('ingr_export_to_excel'),\n },\n ]}})],1),_c('a',{staticClass:\"btn down-btn\",attrs:{\"href\":_vm.exportToExcelURL}},[_c('i',{staticClass:\"fa fa-download\",attrs:{\"aria-hidden\":\"true\"}})])])])])]),_c('div',{staticClass:\"container-fluid container-fixed-lg\"},[_c('div',{staticClass:\"card card-default brown lighten-5\"},[_c('div',{staticClass:\"card-header\"},[_c('h4',{staticClass:\"card-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"ingr_table_title\"))+\"\\n \")])]),_c('div',{staticClass:\"card-body no-pad-top\"},[_c('vTable',{staticClass:\"table-ingredients\",attrs:{\"table-headers\":_vm.tableHeaders,\"select-erase\":true,\"results\":_vm.transformIngredients,\"total\":_vm.ingredientsState.count,\"total-count\":_vm.ingredientsState.totalCount,\"page-size\":_vm.ingredientsState.pageSize,\"editable\":true,\"loading\":_vm.ingredientsState.loading,\"show-change-log-icon\":true,\"show-recipe-icon\":true},on:{\"changePage\":_vm.changePage,\"onRecipeClick\":_vm.onRecipeClick,\"onChangeLogClick\":_vm.onChangeLogClick,\"edit\":_vm.edit,\"remove\":_vm.prepareDeletePrompt,\"order\":_vm.order}})],1)])])],1),_c('vModal',{attrs:{\"show\":_vm.showDeletePrompt,\"modal-title\":_vm.deletePromptTitle},on:{\"cancelModal\":_vm.resetState}},[_c('form',{staticClass:\"p-t-15\",attrs:{\"role\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.confirmDelete.apply(null, arguments)}}},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('button',{staticClass:\"btn btn-primary btn-cons m-t-10\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"yes\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-cons m-t-10\",attrs:{\"type\":\"reset\"},on:{\"click\":_vm.resetState}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"cancel\"))+\"\\n \")])])])])]),_c('vModal',{attrs:{\"modal-title\":_vm.modalTitle,\"show\":_vm.showModal,\"size\":'l'},on:{\"cancelModal\":_vm.resetState}},[(_vm.showModal)?_c('vIngredientManagement',{attrs:{\"ingredient\":_vm.ingredientsState.ingredient,\"edit-mode\":_vm.editMode},on:{\"submit\":_vm.submit,\"cancel\":_vm.resetState}}):_vm._e()],1),_c('vModal',{attrs:{\"modal-title\":_vm.translations.get('ingr_modal_usage'),\"show\":_vm.recipesModal.isOpen,\"size\":'s'},on:{\"cancelModal\":function($event){_vm.recipesModal.isOpen = false}}},[(_vm.recipesModal.recipes.length > 0)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-2\"},[_c('img',{staticClass:\"img-thumbnail img-circle\",staticStyle:{\"width\":\"75px\"},attrs:{\"src\":require(\"../../assets/Customer/assets/img/dashboard/my-recipes-book-sm.jpg\"),\"alt\":\"Recipe book thumbnail\"}})]),_c('div',{staticClass:\"col-9\"},[_c('div',{staticClass:\"recipe-modal-subtitle\"},[_c('span',[_vm._v(_vm._s(_vm.translations.get(\"ingr_used_by_recipes\"))+\":\")])]),_vm._l((_vm.recipesModal.recipes),function(recipe){return _c('ul',{key:recipe.id},[_c('li',{staticClass:\"recipe-name\"},[_c('span',{on:{\"click\":function($event){$event.preventDefault();return _vm.$router.push({\n name: 'recipesEdit',\n params: { id: `${recipe.id}` },\n })}}},[_vm._v(_vm._s(recipe.name))])])])})],2)]):_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"ingr_not_contained_in_recipe\"))+\"!\\n \")]),_c('div',{staticStyle:{\"float\":\"right\"}},[_c('button',{staticClass:\"btn btn-cons m-t-10\",on:{\"click\":function($event){_vm.recipesModal.isOpen = false}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"cancel\"))+\"\\n \")])])]),_c('vModal',{attrs:{\"modal-title\":_vm.translations.get('ingredient_stats'),\"show\":_vm.changeLogModal.isOpen,\"size\":'s'},on:{\"cancelModal\":function($event){_vm.changeLogModal.isOpen = false}}},[_c('div',[(_vm.ingredientsState.ingredient.createdOn !== null)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('span',[_vm._v(_vm._s(_vm.translations.get(\"created_on\"))+\" : \"+_vm._s(_vm.getFormatedDateTime(_vm.ingredientsState.ingredient.createdOn)))])])]):_vm._e(),(_vm.ingredientsState.ingredient.createdUserName !== null)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('span',[_vm._v(_vm._s(_vm.translations.get(\"created_by\"))+\" : \"+_vm._s(_vm.ingredientsState.ingredient.createdUserName))])])]):_vm._e(),(_vm.ingredientsState.ingredient.updatedOn !== null)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('span',[_vm._v(_vm._s(_vm.translations.get(\"updated_on\"))+\" : \"+_vm._s(_vm.getFormatedDateTime(_vm.ingredientsState.ingredient.updatedOn)))])])]):_vm._e(),(_vm.ingredientsState.ingredient.updatedUserName !== null)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('span',[_vm._v(_vm._s(_vm.translations.get(\"updated_by\"))+\" : \"+_vm._s(_vm.ingredientsState.ingredient.updatedUserName))])])]):_vm._e()]),_c('div',{staticStyle:{\"float\":\"right\"}},[_c('button',{staticClass:\"btn btn-cons m-t-10\",on:{\"click\":function($event){_vm.changeLogModal.isOpen = false}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"close\"))+\"\\n \")])])])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col-12 col-md-4\"},[_c('form',{attrs:{\"role\":\"form\"}},[_c('div',{staticClass:\"form-group\"},[_c('select',{staticClass:\"full-width select2-hidden-accessible\",attrs:{\"id\":\"select2Ingredients\",\"data-placeholder\":\"Search\",\"data-init-plugin\":\"select2\",\"aria-hidden\":\"true\"}})])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport vBreadcrumbs from \"@/components/vBreadcrumbs.vue\";\r\nimport vTable from \"@/components/vTable.vue\";\r\nimport { mapState } from \"vuex\";\r\nimport { TRANSLATIONS_FETCH } from \"@/store/ActionTypes\";\r\nimport ListRequest, { Ordering, Filter, OrderType } from \"@/models/ListRequest\";\r\nimport { createDefaultIngredient, Ingredient } from \"@/models/Ingredient/Ingredient\";\r\nimport RecipesRepository from \"@/utils/API/RecipesRepository\";\r\nimport IngredientsRepository from \"@/utils/API/IngredientsRepository\";\r\nimport { CreateRestaurantIngredient } from \"@/models/Ingredient/CreateRestaurantIngredient\";\r\nimport { UpdateRestaurantIngredient } from \"@/models/Ingredient/UpdateRestaurantIngredient\";\r\n\r\nimport { NutrientUnit } from \"../../models/Ingredient/NutrientUnit\";\r\nimport { NutrientUnitList } from \"../../models/Ingredient/NutrientUnitList\";\r\nimport { NutrientType } from \"../../models/Ingredient/NutrientType\";\r\nimport { shorten, round, toCamelCase, getBoldString } from \"@/utils/Helpers\";\r\nimport { dateTimeDisplayFormat } from \"@/utils/Defaults\";\r\nimport vModal from \"@/components/vModal.vue\";\r\nimport { Snotify } from \"vue-snotify\";\r\n\r\nconst vSelectFx = () => import(\"@/components/vSelectFx.vue\");\r\nconst vIngredientManagement = () =>\r\n import(\"@/components/vIngredientManagement.vue\");\r\n\r\nlet _ = require(\"lodash\");\r\n\r\nexport interface IngredientsState {\r\n count: number;\r\n totalCount: number;\r\n page: number;\r\n pageSize: number;\r\n filters: Filter[];\r\n orders: Ordering;\r\n loading: boolean;\r\n removeList: number[];\r\n\r\n ingredients: Ingredient[];\r\n\r\n ingredient: Ingredient;\r\n\r\n // not in use\r\n additionalNutrients: {\r\n unitHelper: NutrientUnitList | null;\r\n selectedUnit: NutrientUnit | null;\r\n value: number | null;\r\n }[];\r\n\r\n nutrients: NutrientUnitList[];\r\n}\r\n\r\n@Component({\r\n components: {\r\n vBreadcrumbs,\r\n vTable,\r\n vModal,\r\n vSelectFx,\r\n vIngredientManagement,\r\n },\r\n computed: {\r\n ...mapState({\r\n localizationState: (state: any) => state.LocalizationModule,\r\n }),\r\n },\r\n})\r\nclass Ingredients extends Vue {\r\n localizationState: any;\r\n ingredientsState: IngredientsState = {\r\n count: 0,\r\n totalCount: 0,\r\n page: 1,\r\n pageSize: 25,\r\n filters: [],\r\n orders: { field: \"\", orderType: OrderType.Asc },\r\n loading: true,\r\n removeList: [],\r\n ingredients: [],\r\n ingredient: createDefaultIngredient(),\r\n nutrients: [],\r\n additionalNutrients: [],\r\n };\r\n\r\n // modals\r\n showModal = false;\r\n showDeletePrompt = false;\r\n deletePromptTitle = \"\";\r\n modalTitle = \"\";\r\n\r\n // user input on the search field\r\n searchString = \"\";\r\n\r\n editMode = false;\r\n\r\n // Dynamic table data\r\n tableHeaders: any[] = [];\r\n transformIngredients: any = {};\r\n\r\n // currently not in use as no additional nutrients are implemented\r\n showAll: boolean = false;\r\n\r\n recipesModal = {\r\n isOpen: false,\r\n customIngredient: 0,\r\n recipes: new Array(),\r\n };\r\n\r\n changeLogModal = {\r\n isOpen: false\r\n };\r\n /**\r\n * NYI\r\n */\r\n removeAdditionalNutrient(position: number) {\r\n this.ingredientsState.additionalNutrients.splice(position, 1);\r\n }\r\n\r\n /**\r\n * NYI\r\n */\r\n addAdditionalNutrient() {\r\n this.ingredientsState.additionalNutrients.push({\r\n unitHelper: null,\r\n selectedUnit: null,\r\n value: null,\r\n });\r\n }\r\n\r\n get exportToExcelURL() {\r\n return `${process.env.VUE_APP_BASE_DOMAIN}/api/Processes/Ingredients/ExportIngredients`;\r\n }\r\n\r\n /**\r\n * Prepare the modal for deletion prompt and populate the list of ids for deletion\r\n *\r\n * @param {number[]} ids\r\n */\r\n prepareDeletePrompt(ids: number[]) {\r\n this.ingredientsState.removeList = ids;\r\n this.deletePromptTitle = this.translations.get(\r\n \"ingr_delete_prompt_message\",\r\n ids.length\r\n );\r\n this.showDeletePrompt = true;\r\n }\r\n\r\n /**\r\n * Method invoked after user confirms deletion in modal prompt\r\n */\r\n confirmDelete() {\r\n this.$snotify.async(\r\n this.translations.get(\r\n \"ingr_toastr_deleting\",\r\n this.ingredientsState.removeList.length\r\n ),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n IngredientsRepository.deleteRestaurantIngredients({\r\n ids: this.ingredientsState.removeList,\r\n })\r\n .then(() => {\r\n resolve({\r\n body: this.translations.get(\r\n \"ingr_toastr_deleted\",\r\n this.ingredientsState.removeList.length\r\n ),\r\n });\r\n\r\n this.ingredientsState.page = 1;\r\n\r\n this.requestIngredients(\r\n new ListRequest({\r\n page: this.ingredientsState.page,\r\n pageSize: this.ingredientsState.pageSize,\r\n filters: this.ingredientsState.filters,\r\n orders: [this.ingredientsState.orders],\r\n })\r\n );\r\n\r\n this.ingredientsState.removeList = [];\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n }\r\n else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 3000,\r\n closeOnClick: true,\r\n }\r\n );\r\n this.resetState();\r\n }\r\n\r\n /**\r\n * Used by vTable after @change event is caught\r\n */\r\n changePage(args: any) {\r\n const orderings: Ordering[] = [];\r\n orderings.push({ ...args[3] });\r\n\r\n this.requestIngredients(\r\n new ListRequest({\r\n page: args[0],\r\n pageSize: this.ingredientsState.pageSize,\r\n filters: this.ingredientsState.filters,\r\n orders: orderings,\r\n })\r\n );\r\n this.ingredientsState.page = args[0];\r\n this.ingredientsState.orders = { ...args[3] };\r\n }\r\n\r\n order(filters: Filter[], ordering: Ordering) {\r\n const orderings: Ordering[] = [];\r\n orderings.push({ ...ordering });\r\n\r\n this.requestIngredients(\r\n new ListRequest({\r\n page: this.ingredientsState.page,\r\n pageSize: this.ingredientsState.pageSize,\r\n filters: this.ingredientsState.filters,\r\n orders: orderings,\r\n })\r\n );\r\n\r\n this.ingredientsState.orders = { ...ordering };\r\n }\r\n\r\n /**\r\n * NYI\r\n */\r\n showAllNutrients(flag: boolean) {\r\n this.showAll = flag;\r\n //this.populateTable();\r\n }\r\n\r\n /**\r\n * Method for dynamically populating the vTable grid based on the headers from API\r\n */\r\n populateTable(nutrientHeaders: any) {\r\n // Format the table headers and table data to put vitamin c next to vitamin d\r\n this.formatTableHeadersForVitaminC(nutrientHeaders);\r\n this.formatTableDataForVitaminC(this.ingredientsState.ingredients);\r\n\r\n // for each ingredient generate vTable friendly data\r\n this.transformIngredients = this.ingredientsState.ingredients.map(\r\n (element: Ingredient) => {\r\n let all: any = {};\r\n // we start from 2 to n+2 because Serving is static field on the table, not part of the nutrient list\r\n for (let i = 2; i < element.nutrients.length + 2; i++) {\r\n // NYI part - go to else\r\n if (this.showAll) {\r\n all[`e${i}`] = element.nutrients[i - 2]\r\n ? round(\r\n element.nutrients[i - 2].value *\r\n element.nutrients[i - 2].nutrientUnit.conversionCoeficient,\r\n 2\r\n )\r\n : 0;\r\n }\r\n else {\r\n // filter nutrients with type Other\r\n if (\r\n element.nutrients[i - 2].nutrientUnit.nutrient.nutrientType !==\r\n NutrientType.Other\r\n ) {\r\n // starting from position 2 we get the nutrient on position n-2,\r\n all[`e${i}`] = element.nutrients[i - 2]\r\n ? round(\r\n element.nutrients[i - 2].value *\r\n element.nutrients[i - 2].nutrientUnit\r\n .conversionCoeficient,\r\n 2\r\n )\r\n : 0;\r\n }\r\n }\r\n }\r\n // vTable friendly data\r\n return {\r\n // spread the dynamically generated list\r\n ...all,\r\n // the static part\r\n e1: parseFloat(\r\n (Math.round(element.weightInGrams * 100) / 100).toFixed(2)\r\n ),\r\n meta: {\r\n id: element.id,\r\n link: element.name,\r\n },\r\n };\r\n }\r\n );\r\n\r\n // Grid will queue refresh @ this point\r\n\r\n // reset headers\r\n this.tableHeaders.length = 0;\r\n\r\n let all: any = [];\r\n\r\n // static\r\n let name: any = {\r\n name: this.translations.get(\"ingr_table_name\"),\r\n key: \"Name\",\r\n searchable: true,\r\n searchString: \"\",\r\n sortable: true,\r\n };\r\n // static\r\n let serving: any = {\r\n name: this.translations.get(\"ingr_table_serving\"),\r\n key: \"WeightInGrams\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: true,\r\n };\r\n\r\n nutrientHeaders.map((header: any) => {\r\n // NYI skip to else\r\n if (this.showAll) {\r\n all.push({\r\n name: shorten(header.name) + ` (${header.units[0].unit.name})`,\r\n key: toCamelCase(header.name),\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n });\r\n }\r\n else {\r\n // all non Other nutrients\r\n if (header.nutrientType !== NutrientType.Other) {\r\n all.push({\r\n name: shorten(header.name) + ` (${header.units[0].unit.name})`,\r\n key: toCamelCase(header.name),\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: true,\r\n });\r\n }\r\n }\r\n });\r\n\r\n // vTable friendly data\r\n this.tableHeaders = [name, serving, ...all];\r\n\r\n // Grid will queue refresh @ this point\r\n }\r\n\r\n /**\r\n * Centralized place to request ingredients\r\n *\r\n * @param {ListRequest} listRequest\r\n */\r\n requestIngredients(listRequest: ListRequest) {\r\n this.ingredientsState.loading = true;\r\n\r\n IngredientsRepository.listRestaurantIngredients(listRequest)\r\n .then((response) => {\r\n this.ingredientsState.count = response.data.result.ingredients.count;\r\n this.ingredientsState.totalCount =\r\n response.data.result.ingredients.totalCount;\r\n this.ingredientsState.ingredients =\r\n response.data.result.ingredients.result;\r\n this.ingredientsState.loading = false;\r\n\r\n this.populateTable(response.data.result.nutrientHeaders);\r\n })\r\n .catch((error) => {\r\n if (error.response) {\r\n this.$snotify.error(\r\n error.response.data.errorMessages[0].userVisibleMessage\r\n );\r\n }\r\n else this.$snotify.error(this.translations.get(\"network-error\"));\r\n });\r\n }\r\n /**\r\n * Format the headers to set the position of vitamin c next to vitamin d\r\n */\r\n formatTableHeadersForVitaminC(headers: any) {\r\n const indexC = headers.findIndex(\r\n (x: any) => x.nutrientType === NutrientType.VitaminC\r\n );\r\n const indexD = headers.findIndex(\r\n (x: any) => x.nutrientType === NutrientType.VitaminD\r\n );\r\n\r\n if (indexC != -1 && indexD != -1) {\r\n this.arraymove(headers, indexC, indexD + 1);\r\n }\r\n }\r\n /**\r\n * Format the headers to set the position of vitamin c next to vitamin d\r\n */\r\n formatTableDataForVitaminC(tableData: any) {\r\n for (const element of tableData) {\r\n const indexC = element.nutrients.findIndex(\r\n (x: any) =>\r\n x.nutrientUnit.nutrient.nutrientType === NutrientType.VitaminC\r\n );\r\n const indexD = element.nutrients.findIndex(\r\n (x: any) =>\r\n x.nutrientUnit.nutrient.nutrientType === NutrientType.VitaminD\r\n );\r\n if (indexC != -1 && indexD != -1) {\r\n this.arraymove(element.nutrients, indexC, indexD + 1);\r\n }\r\n }\r\n }\r\n /**\r\n * Move element in array from one position to another\r\n */\r\n arraymove(arr: any, fromIndex: number, toIndex: number) {\r\n const element = arr[fromIndex];\r\n arr.splice(fromIndex, 1);\r\n arr.splice(toIndex, 0, element);\r\n }\r\n /**\r\n * Hides all modals and resets variables\r\n */\r\n resetState() {\r\n this.showModal = false;\r\n this.showDeletePrompt = false;\r\n this.editMode = false;\r\n this.ingredientsState.ingredient = createDefaultIngredient(),\r\n this.ingredientsState.additionalNutrients.length = 0;\r\n }\r\n\r\n getFormatedDateTime(date: Date) {\r\n return this.$moment(date).format(dateTimeDisplayFormat);\r\n }\r\n\r\n /**\r\n * Prepare edit mode\r\n */\r\n edit(id: number) {\r\n let ingr = _.cloneDeep(\r\n this.ingredientsState.ingredients.find((i) => i.id === id)\r\n );\r\n if (ingr) {\r\n this.ingredientsState.ingredient = { ...ingr };\r\n\r\n // we have to make another copy because of shallow cloning\r\n this.ingredientsState.ingredient.allMeasurements = [\r\n ...ingr.allMeasurements,\r\n ];\r\n // Round measurement weight in gram to two decimals\r\n this.ingredientsState.ingredient.allMeasurements.map((measurement) => {\r\n measurement.weightInGrams = parseFloat(\r\n (Math.round(measurement.weightInGrams * 100) / 100).toFixed(2)\r\n );\r\n });\r\n\r\n // this.ingredientsState.ingredient.additionalNutrients.map(nutrient => {\r\n // let unitHelper = this.ingredientsState.nutrients.find(n =>\r\n // nutrient.nutrientUnit\r\n // ? n.id === nutrient.nutrientUnit.nutrientId\r\n // : false\r\n // );\r\n // if (unitHelper) {\r\n // let selectedUnit = unitHelper.units\r\n // ? unitHelper.units.find(u => u.id === nutrient.nutrientUnitId)\r\n // : null;\r\n // if (selectedUnit)\r\n // this.ingredientsState.additionalNutrients.push({\r\n // unitHelper: unitHelper,\r\n // value: nutrient.value ? nutrient.value : 0,\r\n // selectedUnit: selectedUnit\r\n // });\r\n // }\r\n // });\r\n }\r\n this.showModal = true;\r\n this.editMode = true;\r\n this.modalTitle = this.translations.get(\"ingr_modal_edit_title\");\r\n }\r\n\r\n /**\r\n * Prepare add mode\r\n */\r\n add() {\r\n this.showModal = true;\r\n this.modalTitle = this.translations.get(\"ingr_modal_add_title\");\r\n }\r\n\r\n /**\r\n * Router method, see submitEdit() and submitNew()\r\n */\r\n submit(\r\n ingredient: Ingredient,\r\n nutrients: {\r\n value: number;\r\n nutrientUnitId: number;\r\n }[]\r\n ) {\r\n if (this.editMode) {\r\n this.submitEdit(nutrients);\r\n }\r\n else {\r\n this.submitNew(nutrients);\r\n }\r\n }\r\n\r\n submitEdit(\r\n nutrients: {\r\n value: number;\r\n nutrientUnitId: number;\r\n }[]\r\n ) {\r\n // update ingredien model\r\n let updateIngredient: UpdateRestaurantIngredient = {\r\n measurements: this.ingredientsState.ingredient.allMeasurements,\r\n id: this.ingredientsState.ingredient.id,\r\n name: this.ingredientsState.ingredient.name,\r\n weightInGrams: this.ingredientsState.ingredient.weightInGrams,\r\n unitOfMeasurement: this.ingredientsState.ingredient.unitOfMeasurement,\r\n categoryDensityId: this.ingredientsState.ingredient.categoryDensityId,\r\n quantityInUnitOfMeasurement:\r\n this.ingredientsState.ingredient.quantityInUnitOfMeasurement,\r\n // the model from above\r\n nutrients: nutrients,\r\n subIngredients: this.ingredientsState.ingredient.subIngredients,\r\n };\r\n\r\n // actual submit of the model\r\n this.$snotify.async(\r\n this.translations.get(\"ingr_toastr_updating\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n IngredientsRepository.updateRestaurantIngredient(updateIngredient)\r\n .then(() => {\r\n resolve({\r\n body: this.translations.get(\r\n \"ingr_toastr_updated\",\r\n updateIngredient.name\r\n ),\r\n });\r\n\r\n this.requestIngredients(\r\n new ListRequest({\r\n page: this.ingredientsState.page,\r\n pageSize: this.ingredientsState.pageSize,\r\n filters: this.ingredientsState.filters,\r\n orders: [this.ingredientsState.orders],\r\n })\r\n );\r\n\r\n this.resetState();\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n this.edit(this.ingredientsState.ingredient.id);\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n }\r\n else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 3000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n\r\n submitNew(\r\n nutrients: {\r\n value: number;\r\n nutrientUnitId: number;\r\n }[]\r\n ) {\r\n // ingredient creation model\r\n let newIngredient: CreateRestaurantIngredient = {\r\n name: this.ingredientsState.ingredient.name,\r\n weightInGrams: this.ingredientsState.ingredient.weightInGrams,\r\n measurements: this.ingredientsState.ingredient.allMeasurements,\r\n unitOfMeasurement: this.ingredientsState.ingredient.unitOfMeasurement,\r\n categoryDensityId: this.ingredientsState.ingredient.categoryDensityId,\r\n quantityInUnitOfMeasurement:\r\n this.ingredientsState.ingredient.quantityInUnitOfMeasurement,\r\n // the model from above\r\n nutrients: nutrients,\r\n subIngredients: this.ingredientsState.ingredient.subIngredients,\r\n };\r\n\r\n // the request\r\n this.$snotify.async(\r\n this.translations.get(\"ingr_toastr_adding\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n IngredientsRepository.createRestaurantIngredient(newIngredient)\r\n .then(() => {\r\n resolve({\r\n body: this.translations.get(\r\n \"ingr_toastr_added\",\r\n newIngredient.name\r\n ),\r\n });\r\n\r\n this.requestIngredients(\r\n new ListRequest({\r\n page: this.ingredientsState.page,\r\n pageSize: this.ingredientsState.pageSize,\r\n filters: this.ingredientsState.filters,\r\n orders: [this.ingredientsState.orders],\r\n })\r\n );\r\n\r\n this.resetState();\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n }\r\n else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 3000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n //Get all recipes that are using chosen custom ingredient\r\n getAllRecipesThatUseIngredient() {\r\n RecipesRepository.listRecipesThatUseIngredient(\r\n this.recipesModal.customIngredient\r\n )\r\n .then((response) => {\r\n this.recipesModal.recipes = response.data.result;\r\n })\r\n .catch((error) => {\r\n if (error.response) {\r\n this.$snotify.error(\r\n error.response.data.errorMessages[0].userVisibleMessage\r\n );\r\n }\r\n else this.$snotify.error(this.translations.get(\"network-error\"));\r\n });\r\n }\r\n onRecipeClick(id: number) {\r\n this.recipesModal.customIngredient = id;\r\n this.recipesModal.isOpen = true;\r\n this.getAllRecipesThatUseIngredient();\r\n }\r\n\r\n onChangeLogClick(id: number){\r\n this.changeLogModal.isOpen = true;\r\n this.ingredientsState.ingredient = this.ingredientsState.ingredients.find((obj) => obj.id === id);\r\n }\r\n\r\n get translations() {\r\n return this.localizationState.translations;\r\n }\r\n\r\n created() {\r\n this.$store\r\n .dispatch(TRANSLATIONS_FETCH, {\r\n category: \"pages\",\r\n collections: [\"common\", \"ingredients\"],\r\n })\r\n .then(() => {\r\n document.title =\r\n this.translations.get(\"ingr_title\") +\r\n \" \" +\r\n this.translations.get(\"meta_title_postfix\");\r\n })\r\n .catch((error) => {\r\n if (error.response) {\r\n this.$snotify.error(\r\n error.response.data.errorMessages[0].userVisibleMessage\r\n );\r\n }\r\n else this.$snotify.error(this.translations.get(\"network-error\"));\r\n });\r\n\r\n this.requestIngredients(\r\n new ListRequest({ page: 1, pageSize: this.ingredientsState.pageSize })\r\n );\r\n\r\n // initial table headers before dynamic population\r\n this.tableHeaders = [\r\n {\r\n name: this.translations.get(\"ingr_table_name\"),\r\n key: \"Name\",\r\n searchable: true,\r\n searchString: \"\",\r\n sortable: true,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_ene\"),\r\n key: \"Energy\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_fat\") + \" (g)\",\r\n key: \"Fat\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_sat\") + \" (g)\",\r\n key: \"SaturatedFattyAcids\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_trans\") + \" (g)\",\r\n key: \"TransFattyAcids\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_chol\") + \" (mg)\",\r\n key: \"Cholesterol\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_sod\") + \" (mg)\",\r\n key: \"Sodium\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_carb\") + \" (g)\",\r\n key: \"Carbohydrate\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_fib\") + \" (g)\",\r\n key: \"Fibre\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_sug\") + \" (g)\",\r\n key: \"Sugars\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_prot\") + \" (g)\",\r\n key: \"Protein\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_vitD\") + \" (mcg)\",\r\n key: \"VitaminD\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_vitc\") + \" (mg)\",\r\n key: \"VitaminC\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_pot\") + \" (mg)\",\r\n key: \"Potassium\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_calc\") + \" (mg)\",\r\n key: \"Calcium\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n {\r\n name: this.translations.get(\"ingr_table_iron\") + \" (mg)\",\r\n key: \"Iron\",\r\n searchable: false,\r\n searchString: \"\",\r\n sortable: false,\r\n },\r\n ];\r\n }\r\n mounted() {\r\n (window).$.Pages.init();\r\n let searchTerm = \"\";\r\n\r\n ($(\"#select2Ingredients\"))\r\n .select2({\r\n allowClear: false,\r\n width: \"100%\",\r\n placeholder: \"Search Ingredients\",\r\n minimumInputLength: 3,\r\n ajax: {\r\n delay: 500,\r\n transport: (params: any, success: any) => {\r\n IngredientsRepository.listIngredientSearch(\r\n new ListRequest({\r\n page: this.ingredientsState.page,\r\n pageSize: this.ingredientsState.pageSize,\r\n searchTerm: params.data.term ? params.data.term : \"\",\r\n orders: [this.ingredientsState.orders],\r\n })\r\n ).then((response) => {\r\n success(response);\r\n });\r\n searchTerm = params.data.term;\r\n },\r\n processResults: (response: any) => {\r\n let data: any[] = [];\r\n data.push({ id: 0, text: getBoldString(\"All Custom Ingredients\", \"\") });\r\n response.data.result.ingredientList.result.map((r: any) => {\r\n data.push({ id: r.id, text: getBoldString(r.name, searchTerm) });\r\n });\r\n\r\n return { results: data };\r\n },\r\n },\r\n escapeMarkup: function(element:string){\r\n return element;\r\n },\r\n })\r\n .on(\"select2:select\", (eventData: any) => {\r\n this.ingredientsState.page = 1;\r\n this.ingredientsState.orders = { field: \"\", orderType: OrderType.Asc };\r\n\r\n if (eventData.target.value == 0) {\r\n this.ingredientsState.filters.length = 0;\r\n }\r\n else {\r\n this.ingredientsState.filters = [\r\n { name: \"Id\", value: eventData.target.value },\r\n ];\r\n }\r\n\r\n IngredientsRepository.listRestaurantIngredients(\r\n new ListRequest({\r\n page: this.ingredientsState.page,\r\n pageSize: this.ingredientsState.pageSize,\r\n filters: this.ingredientsState.filters,\r\n orders: [this.ingredientsState.orders],\r\n })\r\n ).then((response) => {\r\n this.ingredientsState.ingredients =\r\n response.data.result.ingredients.result;\r\n this.ingredientsState.count = response.data.result.ingredients.count;\r\n this.ingredientsState.totalCount =\r\n response.data.result.ingredients.totalCount;\r\n this.ingredientsState.loading = false;\r\n\r\n // populate when select is performed\r\n this.populateTable(response.data.result.nutrientHeaders);\r\n });\r\n });\r\n }\r\n}\r\nexport default Ingredients;\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ingredients.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ingredients.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Ingredients.vue?vue&type=template&id=e2a10322&scoped=true\"\nimport script from \"./Ingredients.vue?vue&type=script&lang=ts\"\nexport * from \"./Ingredients.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Ingredients.vue?vue&type=style&index=0&id=e2a10322&prod&scoped=true&lang=css\"\nimport style1 from \"./Ingredients.vue?vue&type=style&index=1&id=e2a10322&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e2a10322\",\n null\n \n)\n\nexport default component.exports","export enum DailyValueCalculationMethod {\r\n Rounded = 0,\r\n Unrounded = 1,\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('transition',{attrs:{\"name\":\"modal\",\"role\":\"dialog\"}},[(_vm.show)?_c('div',{staticClass:\"modal-mask\"},[_c('div',{staticClass:\"modal-wrapper\",attrs:{\"id\":_vm.modalId}},[_c('div',{staticClass:\"modal-dialog\",class:{'modal-small':_vm.size === 's', 'modal-medium':_vm.size==='m' || typeof _vm.size === 'undefined', 'modal-large':_vm.size === 'l', 'modal-x-large':_vm.size === 'xl'}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h3',{staticClass:\"modal-title\"},[_vm._v(_vm._s(_vm.modalTitle))]),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.cancelModal}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])]),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"default\")],2)])])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop, Watch } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class vModal extends Vue {\r\n @Prop() show!: boolean;\r\n @Prop() modalTitle!: string;\r\n @Prop() size?: string;\r\n @Prop() modalId?: string;\r\n\r\n @Watch(\"show\")\r\n showModal() {\r\n let bodee = document.getElementsByTagName(\"body\")[0];\r\n if (this.show) bodee.classList.add(\"modalOpen\");\r\n else bodee.classList.remove(\"modalOpen\");\r\n }\r\n\r\n hideModal() {\r\n this.$emit(\"hideModal\");\r\n }\r\n\r\n cancelModal() {\r\n this.$emit(\"cancelModal\");\r\n }\r\n\r\n mounted() {\r\n document.addEventListener(\"keydown\", (e) => {\r\n if (this.show && e.keyCode == 27) {\r\n this.cancelModal();\r\n }\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vModal.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vModal.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vModal.vue?vue&type=template&id=c51eb92e&scoped=true\"\nimport script from \"./vModal.vue?vue&type=script&lang=ts\"\nexport * from \"./vModal.vue?vue&type=script&lang=ts\"\nimport style0 from \"./vModal.vue?vue&type=style&index=0&id=c51eb92e&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c51eb92e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ingredients.vue?vue&type=style&index=1&id=e2a10322&prod&lang=css\""],"sourceRoot":""}