{"version":3,"sources":["webpack:///./src/components/vTabbedContent.vue?a0c4","webpack:///./src/components/vIngredientManagement.vue?162e","webpack:///./src/components/vIngredientNutrientQuantityInputRow.vue?9593","webpack:///./src/models/Ingredient/IngredientMeasurementEnum.ts","webpack:///./src/components/vIngredientManagement.vue","webpack:///./src/components/vIngredientNutrientQuantityInputRow.vue","webpack:///./src/components/vIngredientNutrientQuantityInputRow.vue?369f","webpack:///./src/components/vIngredientNutrientQuantityInputRow.vue?56a8","webpack:///./src/components/vIngredientNutrientQuantityInputRow.vue?8d73","webpack:///./src/components/vIngredientManagement.vue?aad1","webpack:///./src/components/vIngredientManagement.vue?65cf","webpack:///./src/components/vIngredientManagement.vue?761a","webpack:///./src/components/vIngredientManagement.vue?ffcd","webpack:///./src/components/vTabbedContent.vue","webpack:///./src/components/vTabbedContent.vue?223f","webpack:///./src/components/vTabbedContent.vue?b832","webpack:///./src/components/vTabbedContent.vue?5ef6"],"names":["IngredientMeasurementEnum","render","_vm","this","_c","_self","_setupProxy","on","$event","preventDefault","submit","apply","arguments","staticClass","staticStyle","_m","_v","_s","errors","first","attrs","translations","get","ingredient","unitOfMeasurement","ingredientMeasurementEnum","Milliliter","FluidOunce","directives","name","rawName","value","expression","class","invalid","has","densityOptions","searchCategoryDensities","model","categoryDensityId","callback","$$v","$set","_e","subIngredients","domProps","target","composing","addMeasurement","_l","allMeasurements","measurement","key","indexOf","concat","weightInGrams","removeMeasurement","id","categories","category","slot","mergedNutrientGroup","nutrient","_o","units","unitOptions","errorStates","childNutrients","length","childNutri","cancel","showWarningModal","staticRenderFns","quantityInUnitOfMeasurement","wrong","weightMeasurments","isIndented","nutrientModel","localizationKey","modifiers","ref","capitalizeFirstLetter","errorState","nutrientType","sugarAlcoholNutrientType","_n","$forceUpdate","nutrientUnitId","NutrientType","Moisture","getChildNutrientNames","VIngredientNutrientQuantityInputRow","_Vue","_this","_classCallCheck","_len","args","Array","_key","_callSuper","_defineProperty","SugarAlcohols","_inherits","_createClass","localizationState","childNames","forEach","string","charAt","toUpperCase","slice","$validator","$parent","Vue","__decorate","Prop","default","Component","computed","_objectSpread","mapState","state","LocalizationModule","component","vIngredientManagement","Gram","Ounce","searchQuery","_this2","densityId","debounce","IngredientsRepository","then","response","data","result","catch","error","$snotify","errorMessages","userVisibleMessage","nutrientList","_this3","push","childNutrient","pushNutrient","_this4","nutrients","energyValue","Object","values","Energy","sugarsValue","find","Sugars","vitaminAValue","VitaminA","moistureValue","calculateTotalChildNutrientsValue","validateAll","specifiedSugarAlcohols","$emit","m","index","splice","nutri","list","map","u","unit","isDefault","_this5","sugarAlcoholNames","sum","Number","toFixed","keys","sugarsAlcohol","vitaminA","moisture","totalSugarAlcoholValue","updatedTotalNutrientValue","totalValue","element","_this6","initializeSourceNutrients","_this7","nutrientSourceGroup","$store","getters","getNutrients","assignNutrientSource","dispatch","NUTRIENTS_FETCH","assignCategorys","mergeNutrientsWithValues","categoryNames","nutrientGroups","merged","nutrientToNutrientValueMap","nutrientToNutrientUnitMap","_ref","ingredientNutrient","nutrientUnit","nutrientId","categoryName","Watch","deep","immediate","components","vModal","vTabbedContent","mapGetters","filteredTabs","tab","active","changeTab","_t","tabs","filter","predicate","tabId","errorTabs","reduce","acc"],"mappings":"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","file":"js/chunk-78932a0c.50b864f1.js","sourcesContent":["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!./vTabbedContent.vue?vue&type=style&index=0&id=55c8b60c&prod&scoped=true&lang=css\"","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!./vIngredientManagement.vue?vue&type=style&index=1&id=28b5bef6&prod&scoped=true&lang=css\"","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!./vIngredientNutrientQuantityInputRow.vue?vue&type=style&index=0&id=2b1c74cd&prod&scoped=true&lang=css\"","export enum IngredientMeasurementEnum {\r\n    Gram = 1, Milliliter, Ounce, FluidOunce\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-md-6\",staticStyle:{\"padding\":\"0 20px\"}},[_c('div',{staticClass:\"form-group\"},[_vm._m(0),_vm._m(1),_c('div',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errors.first(\"ingredientName\")))])])])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-md-6\",staticStyle:{\"padding\":\"20px 20px\"}},[_c('div',{staticClass:\"d-inline-block\"},[_c('label',{attrs:{\"for\":\"measurement-options\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.translations.get(\"ingr_modal_nutrients_per\"))+\"\\n          \"),_vm._m(2)]),_c('span',[_vm._m(3)])]),_vm._m(4)],1),_c('div',{staticClass:\"col-md-6\",staticStyle:{\"padding\":\"0 20px\"}},[(\n          _vm.ingredient.unitOfMeasurement == _vm.ingredientMeasurementEnum.Milliliter ||\n            _vm.ingredient.unitOfMeasurement == _vm.ingredientMeasurementEnum.FluidOunce\n        )?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group w-100\"},[_c('div',{staticClass:\"d-inline-block\",staticStyle:{\"vertical-align\":\"top\"}},[_c('label',{attrs:{\"for\":\"density\"}},[_vm._v(\"\\n              \"+_vm._s(\"Ingredient density\")+\"\\n            \")])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"d-inline-block w-100\",attrs:{\"id\":\"density\"}},[_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"density-select dropdown-border\",class:{ invalid: _vm.errors.has('ingredient density') },attrs:{\"options\":_vm.densityOptions,\"filterable\":false,\"label\":\"category\",\"index\":\"id\",\"name\":\"ingredient density\"},on:{\"search\":_vm.searchCategoryDensities},model:{value:(_vm.ingredient.categoryDensityId),callback:function ($$v) {_vm.$set(_vm.ingredient, \"categoryDensityId\", $$v)},expression:\"ingredient.categoryDensityId\"}}),_c('span',[_c('small',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errors.first(\"ingredient density\")))])])],1)])])]):_vm._e()])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-md-6\",staticStyle:{\"padding\":\"0 20px\"}},[_c('div',{staticClass:\"additional-ingredients-container h-100\"},[_c('div',{staticClass:\"form-row ingr-height\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h3',[_vm._v(_vm._s(_vm.translations.get(\"ingr_table_title\")))]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.ingredient.subIngredients),expression:\"ingredient.subIngredients\"}],staticClass:\"form-control h-100\",attrs:{\"rows\":\"5\",\"type\":\"text\"},domProps:{\"value\":(_vm.ingredient.subIngredients)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.ingredient, \"subIngredients\", $event.target.value)}}})])])])]),_c('div',{staticClass:\"col-md-6\",staticStyle:{\"padding\":\"0 20px\"}},[_c('div',{staticClass:\"form-row\",staticStyle:{\"align-items\":\"center\"}},[_c('div',{staticClass:\"col-md-6\"},[_c('h3',[_vm._v(_vm._s(_vm.translations.get(\"ingr_modal_measurements\")))])]),_c('div',{staticClass:\"col-md-6\"},[_c('button',{staticClass:\"btn btn-primary btn-small float-right\",on:{\"click\":function($event){$event.preventDefault();return _vm.addMeasurement.apply(null, arguments)}}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n            \"+_vm._s(_vm.translations.get(\"ingr_modal_add_measurement\"))+\"\\n          \")])])]),_c('hr',{staticClass:\"mt-0\"}),_c('div',{staticClass:\"measurements-container measurements-scroll\"},_vm._l((_vm.ingredient.allMeasurements),function(measurement){return _c('div',{key:'measurement' + _vm.ingredient.allMeasurements.indexOf(measurement),staticClass:\"form-row measurement\"},[_c('div',{staticClass:\"col-md-6 col-sm-12 col-xs-12\"},[_c('div',{staticClass:\"form-group form-group-default\",class:{\n                'has-error': _vm.errors.has(\n                  `measurement${_vm.ingredient.allMeasurements.indexOf(\n                    measurement\n                  )}`\n                ),\n              }},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"ingr_modal_measurement_name\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(measurement.name),expression:\"measurement.name\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"form-control\",staticStyle:{\"margin\":\"4px 0\"},attrs:{\"type\":\"text\",\"name\":`measurement${_vm.ingredient.allMeasurements.indexOf(\n                  measurement\n                )}`,\"data-vv-as\":_vm.translations.get('ingr_modal_measurement_name')},domProps:{\"value\":(measurement.name)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(measurement, \"name\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-4 col-sm-10 col-xs-10\"},[_c('div',{staticClass:\"form-group form-group-default\",class:{\n                'has-error': _vm.errors.has(\n                  `measurementWeight${_vm.ingredient.allMeasurements.indexOf(\n                    measurement\n                  )}`\n                ),\n              }},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"ingr_modal_measurement_weight\"))+\"\\n                (g)\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(measurement.weightInGrams),expression:\"measurement.weightInGrams\"},{name:\"validate\",rawName:\"v-validate\",value:('required|min_value:0'),expression:\"'required|min_value:0'\"}],staticClass:\"form-control\",staticStyle:{\"margin\":\"4px 0\"},attrs:{\"type\":\"text\",\"name\":`measurementWeight${_vm.ingredient.allMeasurements.indexOf(\n                  measurement\n                )}`,\"data-vv-as\":_vm.translations.get('ingr_modal_measurement_weight')},domProps:{\"value\":(measurement.weightInGrams)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(measurement, \"weightInGrams\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-2 col-sm-2 col-xs-2\"},[_c('button',{staticClass:\"btn btn-link btn-block\",staticStyle:{\"padding\":\"15px 0\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeMeasurement(measurement.id)}}},[_c('i',{staticClass:\"fa fa-trash text-danger\"})])]),(\n              _vm.errors.has(\n                `measurement${_vm.ingredient.allMeasurements.indexOf(\n                  measurement\n                )}`\n              )\n            )?_c('div',{staticClass:\"error col-12\"},[_vm._v(\"\\n            \"+_vm._s(_vm.errors.first(\n                `measurement${_vm.ingredient.allMeasurements.indexOf(\n                  measurement\n                )}`\n              ))+\"\\n          \")]):_vm._e(),(\n              _vm.errors.has(\n                `measurementWeight${_vm.ingredient.allMeasurements.indexOf(\n                  measurement\n                )}`\n              )\n            )?_c('div',{staticClass:\"error col-12\"},[_vm._v(\"\\n            \"+_vm._s(_vm.errors.first(\n                `measurementWeight${_vm.ingredient.allMeasurements.indexOf(\n                  measurement\n                )}`\n              ))+\"\\n          \")]):_vm._e()])}),0)])]),_c('hr'),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('vTabbedContent',{attrs:{\"tabs\":_vm.categories}},[_vm._l((_vm.categories),function(category){return _c('template',{slot:category.id},[_c('div',{key:category.id,staticClass:\"form-row\",staticStyle:{\"height\":\"260px\",\"overflow\":\"scroll\"}},_vm._l((_vm.mergedNutrientGroup[category.name]),function(nutrient){return _c('div',{key:nutrient.id,staticClass:\"col-md-6\",staticStyle:{\"padding\":\"0 20px\"}},[_vm._o(_c('v-ingredient-nutrient-quantity-input-row',{attrs:{\"nutrient-model\":nutrient,\"unit-options\":nutrient.units ? _vm.unitOptions(nutrient) : [],\"error-state\":_vm.errorStates[nutrient.id]}}),0,nutrient.id),(nutrient.childNutrients && nutrient.childNutrients.length)?_c('div',_vm._l((nutrient.childNutrients),function(childNutri){return _c('div',{key:childNutri.id,staticClass:\"col-md-12\",staticStyle:{\"padding-left\":\"0 !important\",\"padding-right\":\"0 !important\"}},[_vm._o(_c('v-ingredient-nutrient-quantity-input-row',{attrs:{\"nutrient-model\":childNutri,\"unit-options\":childNutri.units ? _vm.unitOptions(childNutri) : [],\"is-indented\":true}}),1,childNutri.id)],1)}),0):_vm._e()],1)}),0)])})],2)],1)]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-primary m-t-10\",attrs:{\"type\":\"submit\"},on:{\"click\":_vm.submit}},[_c('i',{staticClass:\"fa fa-save\"}),_vm._v(\"\\n      \"+_vm._s(_vm.translations.get(\"save\"))+\"\\n    \")]),_c('button',{staticClass:\"btn btn-secondary m-t-10\",attrs:{\"type\":\"reset\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n      \"+_vm._s(_vm.translations.get(\"close\"))+\"\\n    \")])]),_c('vModal',{attrs:{\"size\":'s',\"modal-title\":_vm.translations.get('alc-calc-warning'),\"show\":_vm.showWarningModal},on:{\"cancelModal\":function($event){_vm.showWarningModal = false}}},[_c('form',[_c('h5',{staticClass:\"p-2 pb-0 m-0\"},[_vm._v(\"\\n        \"+_vm._s(_vm.translations.get(\"confirm-calculation-alc\"))+\".\\n      \")]),_c('h5',{staticClass:\"pl-2 mb-4 mt-0\"},[_vm._v(\"\\n        \"+_vm._s(_vm.translations.get(\"alc-calculate-proceed\"))+\"?\\n      \")]),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.translations.get(\"common-proceed\"))+\"\\n      \")]),_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){$event.preventDefault();_vm.showWarningModal = false}}},[_vm._v(\"\\n        \"+_vm._s(_vm.translations.get(\"cancel\"))+\"\\n      \")])])])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('label',[_vm._v(\"\\n          \"+_vm._s(_vm.translations.get(\"ingr_modal_ingr_name\"))+\"\\n          \"),_c('span',{staticStyle:{\"color\":\"red\"}},[_vm._v(\"*\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.ingredient.name),expression:\"ingredient.name\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('ingredientName') },attrs:{\"type\":\"text\",\"placeholder\":_vm.translations.get('ingr_modal_ingr_name_placeholder'),\"name\":\"ingredientName\",\"data-vv-as\":_vm.translations.get('ingr_modal_ingr_name')},domProps:{\"value\":(_vm.ingredient.name)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.ingredient, \"name\", $event.target.value)}}})\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.ingredient.quantityInUnitOfMeasurement),expression:\"ingredient.quantityInUnitOfMeasurement\"},{name:\"validate\",rawName:\"v-validate\",value:('required|min_value:0'),expression:\"'required|min_value:0'\"}],staticClass:\"text-primary nutrients-per\",class:{ wrong: _vm.errors.has('nutrientsPer') },attrs:{\"value\":\"100\",\"name\":\"nutrientsPer\"},domProps:{\"value\":(_vm.ingredient.quantityInUnitOfMeasurement)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.ingredient, \"quantityInUnitOfMeasurement\", $event.target.value)}}})\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('small',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errors.first(\"nutrientsPer\")))])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-select',{staticClass:\"d-inline-block ml-3 dropdown-border\",staticStyle:{\"width\":\"108px\"},attrs:{\"id\":\"measurement-options\",\"options\":_vm.weightMeasurments,\"clearable\":false,\"label\":\"name\",\"index\":\"id\",\"name\":\"ingr_weight\"},model:{value:(_vm.ingredient.unitOfMeasurement),callback:function ($$v) {_vm.$set(_vm.ingredient, \"unitOfMeasurement\", $$v)},expression:\"ingredient.unitOfMeasurement\"}})\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group\",staticStyle:{\"width\":\"100%\"}},[_c('label',{class:_vm.isIndented ? 'indented-label' : false},[_vm._v(_vm._s(_vm.translations.get(_vm.nutrientModel.localizationKey)))]),_c('div',{staticClass:\"form-row\"},[_c('div',{class:`col-7 ${_vm.isIndented ? 'indented-div' : ''}`},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.nutrientModel.value),expression:\"nutrientModel.value\",modifiers:{\"number\":true}},{name:\"validate\",rawName:\"v-validate\",value:('required|min_value:0'),expression:\"'required|min_value:0'\"}],ref:\"nutrientModel.nutrientType\",staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has(`ingr${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)}`) || _vm.errorState },staticStyle:{\"height\":\"100%\"},attrs:{\"type\":\"text\",\"name\":`ingr${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)}`,\"data-vv-as\":_vm.translations.get(_vm.nutrientModel.localizationKey),\"disabled\":_vm.nutrientModel.nutrientType == _vm.sugarAlcoholNutrientType},domProps:{\"value\":(_vm.nutrientModel.value)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.nutrientModel, \"value\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('div',{staticClass:\"col-5\"},[_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"dropdown-border\",class:{ invalid: _vm.errors.has(`ingr${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)}_m`) },attrs:{\"options\":_vm.unitOptions,\"label\":\"name\",\"index\":\"id\",\"disabled\":_vm.unitOptions.length === 1,\"name\":`ingr${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)}_m`,\"data-vv-as\":_vm.translations.get('ingr_measurement'),\"clearable\":false},model:{value:(_vm.nutrientModel.nutrientUnitId),callback:function ($$v) {_vm.$set(_vm.nutrientModel, \"nutrientUnitId\", $$v)},expression:\"nutrientModel.nutrientUnitId\"}})],1),_c('div',{class:`col-12 ${_vm.isIndented ? 'indented-div' : ''}`},[_c('span',[_c('small',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errors.first(`ingr${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)}`)))]),_c('small',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errors.first(`ingr${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)}_m`)))]),(_vm.errorState && _vm.nutrientModel.nutrientType == _vm.NutrientType.Moisture)?_c('small',{staticClass:\"error\"},[_vm._v(\"\\n            \"+_vm._s(`${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)} cannot exceed ingredient weight.`)+\"\\n          \")]):(_vm.errorState)?_c('small',{staticClass:\"error\"},[_vm._v(\"\\n            \"+_vm._s(`${_vm.getChildNutrientNames(_vm.nutrientModel.childNutrients)} cannot exceed ${_vm.capitalizeFirstLetter(_vm.nutrientModel.name)}.`)+\"\\n          \")]):_vm._e()])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue} from \"vue-property-decorator\";\r\nimport {mapState} from \"vuex\";\r\nimport {LocalizationState} from \"@/store/modules/LocalizationModule\";\r\nimport {UnitOption} from \"@/models/Ingredient/UnitOption\";\r\nimport {MergedNutrient} from \"@/models/Ingredient/NutrientUnitList\";\r\nimport {NutrientType} from \"@/models/Ingredient/NutrientType\";\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 VIngredientNutrientQuantityInputRow extends Vue {\r\n  @Prop() nutrientModel: MergedNutrient;\r\n\r\n  @Prop() unitOptions: UnitOption[];\r\n  @Prop({ default: false }) isIndented: boolean;\r\n  @Prop({ default: false }) errorState: boolean;\r\n\r\n  localizationState: LocalizationState;\r\n  NutrientType = NutrientType;\r\n  sugarAlcoholNutrientType = NutrientType.SugarAlcohols;\r\n\r\n  get translations() {\r\n    return this.localizationState.translations;\r\n  }\r\n\r\n  getChildNutrientNames(childNutrients : MergedNutrient[]){\r\n    let childNames = '';\r\n    childNutrients.forEach((nutrient) => {\r\n      childNames += nutrient.name + ', ';\r\n    });\r\n\r\n    return childNames;\r\n  }\r\n\r\n  capitalizeFirstLetter(string: string) {\r\n    return string.charAt(0).toUpperCase() + string.slice(1);\r\n  }\r\n\r\n  created() {\r\n    this.$validator = this.$parent.$validator;\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!./vIngredientNutrientQuantityInputRow.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!./vIngredientNutrientQuantityInputRow.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vIngredientNutrientQuantityInputRow.vue?vue&type=template&id=2b1c74cd&scoped=true\"\nimport script from \"./vIngredientNutrientQuantityInputRow.vue?vue&type=script&lang=ts\"\nexport * from \"./vIngredientNutrientQuantityInputRow.vue?vue&type=script&lang=ts\"\nimport style0 from \"./vIngredientNutrientQuantityInputRow.vue?vue&type=style&index=0&id=2b1c74cd&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  \"2b1c74cd\",\n  null\n  \n)\n\nexport default component.exports","\r\nimport {Component, Prop, Vue, Watch} from \"vue-property-decorator\";\r\nimport {Ingredient} from \"@/models/Ingredient/Ingredient\";\r\nimport {mapGetters, mapState} from \"vuex\";\r\nimport {NutrientType,} from \"@/models/Ingredient/NutrientType\";\r\nimport {UnitOption} from \"@/models/Ingredient/UnitOption\";\r\nimport {MergedNutrient, NutrientsGroup, NutrientUnitList} from \"@/models/Ingredient/NutrientUnitList\";\r\nimport {IngredientMeasurementEnum} from \"@/models/Ingredient/IngredientMeasurementEnum\";\r\nimport IngredientsRepository from \"@/utils/API/IngredientsRepository\";\r\nimport {debounce} from \"@/utils/Helpers\";\r\nimport vModal from \"@/components/vModal.vue\";\r\nimport VIngredientNutrientQuantityInputRow from \"@/components/vIngredientNutrientQuantityInputRow.vue\";\r\nimport vTabbedContent from \"@/components/vTabbedContent.vue\";\r\nimport {NUTRIENTS_FETCH} from \"@/store/ActionTypes\";\r\nimport {NutrientUnitWithValue} from \"@/models/Nutrient/NutrientUnitWithValue\";\r\n\r\ntype SelectObj = { id: number; name: string };\r\ntype DensityObj = { id: number; category: string };\r\n\r\ninterface ErrorStates {\r\n  [key: number]: boolean;\r\n}\r\n\r\n@Component({\r\n  components: {\r\n    vModal,\r\n    VIngredientNutrientQuantityInputRow,\r\n    vTabbedContent\r\n  },\r\n  computed: {\r\n    ...mapState({\r\n      localizationState: (state: any) => state.LocalizationModule,\r\n    }),\r\n    ...mapGetters('nutrients', ['getNutrients']),\r\n  },\r\n})\r\nexport default class vIngredientManagement extends Vue {\r\n  @Prop() editMode!: Boolean;\r\n  @Prop() ingredient!: Ingredient;\r\n\r\n  weightMeasurments: SelectObj[] = [\r\n    { id: IngredientMeasurementEnum.Gram, name: \"g\" },\r\n    { id: IngredientMeasurementEnum.Milliliter, name: \"ml\" },\r\n    { id: IngredientMeasurementEnum.Ounce, name: \"oz\" },\r\n    { id: IngredientMeasurementEnum.FluidOunce, name: \"fl. oz\" },\r\n  ];\r\n  densityOptions: DensityObj[] = [];\r\n  densityId: number | string = \"\";\r\n  showWarningModal = false;\r\n  localizationState: any;\r\n  categories: { id: number; name: string }[] = [];\r\n  mergedNutrientGroup: { [category: string]: MergedNutrient[] } = {};\r\n  nutrientSourceGroup : NutrientsGroup | null = null;\r\n  errorStates: ErrorStates = {};\r\n\r\n  /**\r\n   * Make ingredient enum available in template, the scope of the template is limited to the component instance members.\r\n   */\r\n  public get ingredientMeasurementEnum(): typeof IngredientMeasurementEnum {\r\n    return IngredientMeasurementEnum;\r\n  }\r\n\r\n  /**\r\n   * Method for fetching ingredient density options based on measurement\r\n   */\r\n  searchCategoryDensities(searchQuery: string) {\r\n    // Check if the density category has changed and update the value so that it is available as a dropdown option\r\n    this.densityId = this.ingredient.categoryDensityId\r\n      ? this.ingredient.categoryDensityId\r\n      : \"\";\r\n    debounce(\r\n      () => {\r\n        IngredientsRepository.searchCategoryDensities(searchQuery, this.densityId)\r\n          .then((response: any) => {\r\n            this.densityOptions = 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      600,\r\n      \"search-category-densities\"\r\n    );\r\n  }\r\n\r\n  pushNutrient(nutrient: MergedNutrient, nutrientList: NutrientUnitWithValue[]) {\r\n    if (nutrient.value) {\r\n      nutrientList.push({\r\n        value: nutrient.value,\r\n        nutrientUnitId: nutrient.nutrientUnitId,\r\n      });\r\n    }\r\n\r\n    // Handle children\r\n    if (nutrient.childNutrients) {\r\n      nutrient.childNutrients.forEach((childNutrient) => {\r\n        this.pushNutrient(childNutrient, nutrientList);\r\n      });\r\n    }\r\n  }\r\n\r\n  submit() {\r\n    // Create the nutrients array based on merged data\r\n    const nutrients: NutrientUnitWithValue[] = [];\r\n\r\n    let energyValue = 0;\r\n\r\n    // Iterate through all categories and nutrients\r\n    Object.values(this.mergedNutrientGroup).forEach((nutrientList) => {\r\n      nutrientList.forEach((nutrient) => {\r\n        if(nutrient.nutrientType == NutrientType.Energy){\r\n          energyValue = nutrient.value;\r\n        }\r\n\r\n        this.pushNutrient(nutrient, nutrients);\r\n      });\r\n    });\r\n\r\n    const sugarsValue = this.mergedNutrientGroup[\"sugars\"].find(\r\n      (nutrient) => nutrient.nutrientType === NutrientType.Sugars\r\n    );\r\n\r\n    const vitaminAValue = this.mergedNutrientGroup[\"vitamins\"].find(\r\n      (nutrient) => nutrient.nutrientType === NutrientType.VitaminA\r\n    );\r\n\r\n    const moistureValue = this.mergedNutrientGroup[\"others\"].find(\r\n      (nutrient) => nutrient.nutrientType === NutrientType.Moisture\r\n    );\r\n\r\n    if (sugarsValue.value < sugarsValue.childNutrients[0].value) {\r\n      this.$snotify.error(\r\n        this.translations.get(\"AddedSugarIsLessThanEqualToSugars\")\r\n      );\r\n      return;\r\n    }\r\n\r\n    if(vitaminAValue.value < this.calculateTotalChildNutrientsValue(vitaminAValue.childNutrients)){\r\n      this.$snotify.error(\r\n        this.translations.get(\"VitaminAIsLessThanEqualToRetinolBetaCarotene\")\r\n      );\r\n      return;\r\n    }\r\n\r\n    if (moistureValue.value > this.ingredient.weightInGrams) {\r\n      this.$snotify.error(\r\n        this.translations.get(\"moisture_loss_less_than_weight\")\r\n      );\r\n      return;\r\n    }\r\n\r\n    // Validation and submission logic\r\n    this.$validator.validateAll().then((result) => {\r\n      if (result) {\r\n        if (\r\n          this.specifiedSugarAlcohols != 0 ||\r\n          energyValue != 0 ||\r\n          this.showWarningModal\r\n        ) {\r\n          this.showWarningModal = false;\r\n          this.$emit(\"submit\", this.ingredient, nutrients);\r\n          return;\r\n        }\r\n\r\n        else {\r\n          this.showWarningModal = true;\r\n          return;\r\n        }\r\n      }\r\n      this.$snotify.error(this.translations.get(\"validation-error-message\"));\r\n    });\r\n  }\r\n\r\n  cancel() {\r\n    this.$emit(\"cancel\");\r\n  }\r\n\r\n  /**\r\n   * Method used in create / edit ingredient which pushes empty measurement in\r\n   * the ingredient for the user to populate\r\n   */\r\n  addMeasurement() {\r\n    // we use length as id as it will always be unique locally\r\n    let length = this.ingredient.allMeasurements.length;\r\n    this.ingredient.allMeasurements.push({\r\n      id: length,\r\n      name: \"\",\r\n      weightInGrams: 0,\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Method used in create / edit ingredient which removes specific measurement in the ingredient\r\n   *\r\n   * @param {number} id\r\n   */\r\n  removeMeasurement(id: number) {\r\n    // find the measurement with id from params\r\n    let measurement = this.ingredient.allMeasurements.find((m) => m.id === id);\r\n    if (measurement) {\r\n      // find it's index in the array of measurements\r\n      let index = this.ingredient.allMeasurements.indexOf(measurement);\r\n      // delete it by deleting 1 item on position 'index'\r\n      this.ingredient.allMeasurements.splice(index, 1);\r\n    }\r\n  }\r\n\r\n  unitOptions(nutri : NutrientUnitList): UnitOption[]{\r\n    let list = nutri.units\r\n      ? nutri.units.map((u) => ({\r\n        id: u.nutrientUnitId ? u.nutrientUnitId : 0,\r\n        name: u.unit ? u.unit.name : \"\",\r\n        isDefault:u.isDefault\r\n      }))\r\n      : [];\r\n    if (list) return list;\r\n  }\r\n\r\n  get specifiedSugarAlcohols() {\r\n    if (!this.mergedNutrientGroup) {\r\n      return 0;\r\n    }\r\n\r\n    const sugarAlcoholNames = [\r\n      'Erythritol',\r\n      'Isomalt',\r\n      'Mannitol',\r\n      'Xylitol',\r\n      'Lactitol',\r\n      'Sorbitol',\r\n      'Maltitol'\r\n    ];\r\n\r\n    let sum = 0;\r\n\r\n    sugarAlcoholNames.forEach((name) => {\r\n      Object.values(this.mergedNutrientGroup).forEach((nutrientList) => {\r\n        nutrientList.forEach((nutrient) => {\r\n          if (nutrient.name === name) {\r\n            sum += Number(nutrient.value) || 0;\r\n          }\r\n        });\r\n      });\r\n    });\r\n\r\n    return Number(sum.toFixed(12));\r\n  }\r\n\r\n  get translations() {\r\n    return this.localizationState.translations;\r\n  }\r\n\r\n  //Watcher to detect changes in the nutrientModel\r\n  @Watch('mergedNutrientGroup', { deep: true, immediate: true })\r\n  onNutrientModelChange() {\r\n    const nutrients = this.mergedNutrientGroup;\r\n    this.errorStates = {};\r\n\r\n    if(Object.keys(nutrients).length != 0){\r\n      const sugarsAlcohol = nutrients[\"sugars\"].find(\r\n        (nutrient) => nutrient.nutrientType === NutrientType.SugarAlcohols\r\n      );\r\n\r\n      const sugarsValue = nutrients[\"sugars\"].find(\r\n        (nutrient) => nutrient.nutrientType === NutrientType.Sugars\r\n      );\r\n\r\n      const vitaminA = nutrients[\"vitamins\"].find(\r\n        (nutrient) => nutrient.nutrientType === NutrientType.VitaminA\r\n      );\r\n\r\n      const moisture = nutrients[\"others\"].find(\r\n        (nutrient) => nutrient.nutrientType === NutrientType.Moisture\r\n      );\r\n\r\n      if(sugarsAlcohol){\r\n        const totalSugarAlcoholValue = this.calculateTotalChildNutrientsValue(sugarsAlcohol.childNutrients);\r\n        this.updatedTotalNutrientValue(sugarsAlcohol, totalSugarAlcoholValue);\r\n      }\r\n\r\n      // Handles quantities of the child item being greater than parent -- which should not be possible\r\n      if (sugarsValue.value < sugarsValue.childNutrients[0].value) {\r\n        this.errorStates[sugarsValue.id] = true;\r\n      }\r\n\r\n      if(vitaminA.value < this.calculateTotalChildNutrientsValue(vitaminA.childNutrients)){\r\n        this.errorStates[vitaminA.id] = true;\r\n      }\r\n\r\n      if (moisture.value > this.ingredient.weightInGrams) {\r\n        this.errorStates[moisture.id] = true;\r\n      }\r\n    }\r\n  }\r\n\r\n  calculateTotalChildNutrientsValue(nutrients: MergedNutrient[]): number {\r\n    let totalValue = 0;\r\n    nutrients.forEach((childNutrient) => {\r\n      totalValue += childNutrient.value;\r\n    });\r\n\r\n    return totalValue;\r\n  }\r\n\r\n  updatedTotalNutrientValue(element:MergedNutrient, value: number) {\r\n    element.value = value;\r\n  }\r\n\r\n  created() {\r\n    this.initializeSourceNutrients();\r\n    // If in edit mode we need to get the density category as an option for the dropdown (if the ingr has it)\r\n    this.densityId = this.ingredient.categoryDensityId\r\n      ? this.ingredient.categoryDensityId\r\n      : \"\";\r\n    IngredientsRepository.searchCategoryDensities(\"\", this.densityId)\r\n      .then((response: any) => {\r\n        this.densityOptions = 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\r\n  initializeSourceNutrients(){\r\n    this.nutrientSourceGroup = this.$store.getters.getNutrients;\r\n\r\n    if(!this.nutrientSourceGroup){\r\n      this.$store\r\n        .dispatch(NUTRIENTS_FETCH)\r\n        .then((nutrients: NutrientsGroup) => {\r\n          this.nutrientSourceGroup = nutrients;\r\n          this.assignNutrientSource(this.nutrientSourceGroup);\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    else{\r\n      this.assignNutrientSource(this.nutrientSourceGroup);\r\n    }\r\n  }\r\n\r\n  assignNutrientSource(nutrientSourceGroup : NutrientsGroup){\r\n    this.categories = this.assignCategorys(Object.keys(nutrientSourceGroup));\r\n    this.mergedNutrientGroup = this.mergeNutrientsWithValues(nutrientSourceGroup, this.ingredient);\r\n  }\r\n\r\n  assignCategorys(categoryNames: string[]): { id: number; name: string }[] {\r\n    return categoryNames.map((name, index) => ({\r\n      id: index + 1,\r\n      name: name\r\n    }));\r\n  }\r\n\r\n  mergeNutrientsWithValues(\r\n    nutrientGroups: NutrientsGroup,\r\n    ingredient: Ingredient\r\n  ): { [category: string]: MergedNutrient[] } {\r\n    const merged: { [category: string]: MergedNutrient[] } = {};\r\n\r\n    // Create a map of nutrient values for quick lookup\r\n    const nutrientToNutrientValueMap: { [nutrientId: number]: number | null } = {};\r\n    const nutrientToNutrientUnitMap: { [nutrientId: number]: number | null } = {};\r\n\r\n    Object.values(ingredient.nutrients).forEach(({ ingredientNutrient }) => {\r\n      nutrientToNutrientValueMap[ingredientNutrient.nutrientUnit.nutrientId] = ingredientNutrient.value;\r\n      nutrientToNutrientUnitMap[ingredientNutrient.nutrientUnit.nutrientId] = ingredientNutrient.nutrientUnitId;\r\n    });\r\n\r\n    // Merge nutrient details with their values\r\n    Object.keys(nutrientGroups).forEach((categoryName) => {\r\n      merged[categoryName] = nutrientGroups[categoryName].map((nutrient) => ({\r\n        ...nutrient,\r\n        value: nutrientToNutrientValueMap[nutrient.id || 0] || 0,\r\n        nutrientUnitId: nutrientToNutrientUnitMap[nutrient.id] || nutrient.units[0].nutrientUnitId,\r\n        childNutrients: nutrient.childNutrients.map((childNutrient) => ({\r\n          ...childNutrient,\r\n          value: nutrientToNutrientValueMap[childNutrient.id || 0] || 0,\r\n          nutrientUnitId: nutrientToNutrientUnitMap[childNutrient.id || 0] || (childNutrient.units && childNutrient.units.length > 0 ? childNutrient.units[0].nutrientUnitId : null)\r\n        })) || null\r\n      }));\r\n    });\r\n\r\n    return merged;\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!./vIngredientManagement.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!./vIngredientManagement.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vIngredientManagement.vue?vue&type=template&id=28b5bef6&scoped=true\"\nimport script from \"./vIngredientManagement.vue?vue&type=script&lang=ts\"\nexport * from \"./vIngredientManagement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./vIngredientManagement.vue?vue&type=style&index=0&id=28b5bef6&prod&lang=css\"\nimport style1 from \"./vIngredientManagement.vue?vue&type=style&index=1&id=28b5bef6&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  \"28b5bef6\",\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!./vIngredientManagement.vue?vue&type=style&index=0&id=28b5bef6&prod&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"card card-transparent\"},[_c('ul',{staticClass:\"nav nav-tabs nav-tabs-fillup\"},_vm._l((_vm.filteredTabs),function(tab){return _c('li',{key:`tab${tab.id}`,staticClass:\"nav-item\"},[_c('a',{class:{'active show':tab.id === _vm.active},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.changeTab(tab.id)}}},[_c('span',[_vm._v(\"\\n          \"+_vm._s(tab.name)+\"\\n          \")])])])}),0),_c('div',{staticClass:\"tab-content\"},_vm._l((_vm.filteredTabs),function(tab){return _c('div',{key:`tab${tab.id}`,staticClass:\"tab-pane\",class:{'active':tab.id === _vm.active}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_vm._t(tab.id)],2)])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop } from \"vue-property-decorator\";\r\nimport {INumberIndexedObject} from \"@/components/proptypes/INumberIndexedObject\";\r\nimport {ITab} from \"@/components/proptypes/ITab\";\r\n\r\n@Component\r\nexport default class vTabbedContent extends Vue {\r\n\r\n  active: number = 1;\r\n  @Prop() tabs!: ITab[];\r\n\r\n  errorTabs: INumberIndexedObject = {};\r\n\r\n  // fliter tabs that are meant to be null (not rendered)\r\n  get filteredTabs() {\r\n    return this.tabs.filter((tab) => !tab.predicate || tab.predicate());\r\n  }\r\n\r\n  changeTab(tabId: number) {\r\n    this.active = tabId;\r\n  }\r\n\r\n  created() {\r\n    // Map a validator for any children which may be part of a form\r\n    this.$validator = this.$parent.$validator;\r\n    this.errorTabs = this.tabs.reduce<ITab>((acc, tab) => {\r\n      acc[tab.id] = false;\r\n      return acc;\r\n    }, this.tabs[0]);\r\n  }\r\n\r\n  setErrorTab(tabId: number, error: boolean) {\r\n    this.errorTabs[tabId] = error;\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!./vTabbedContent.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!./vTabbedContent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vTabbedContent.vue?vue&type=template&id=55c8b60c&scoped=true\"\nimport script from \"./vTabbedContent.vue?vue&type=script&lang=ts\"\nexport * from \"./vTabbedContent.vue?vue&type=script&lang=ts\"\nimport style0 from \"./vTabbedContent.vue?vue&type=style&index=0&id=55c8b60c&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  \"55c8b60c\",\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}