| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  | <template> | 
					
						
							|  |  |  |   <div class="ma-0 pa-0 text-subtitle-1 dense-markdown ingredient-item"> | 
					
						
							| 
									
										
										
										
											2023-08-25 11:32:06 -05:00
										 |  |  |     <SafeMarkdown v-if="parsedIng.quantity" class="d-inline" :source="parsedIng.quantity" /> | 
					
						
							|  |  |  |     <template v-if="parsedIng.unit">{{ parsedIng.unit }} </template> | 
					
						
							|  |  |  |     <SafeMarkdown v-if="parsedIng.note && !parsedIng.name" class="text-bold d-inline" :source="parsedIng.note" /> | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  |     <template v-else> | 
					
						
							| 
									
										
										
										
											2023-08-25 11:32:06 -05:00
										 |  |  |       <SafeMarkdown v-if="parsedIng.name" class="text-bold d-inline" :source="parsedIng.name" /> | 
					
						
							|  |  |  |       <SafeMarkdown v-if="parsedIng.note" class="note" :source="parsedIng.note" /> | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  |     </template> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-10-07 14:23:47 -05:00
										 |  |  | import { computed, defineComponent } from "@nuxtjs/composition-api"; | 
					
						
							| 
									
										
										
										
											2024-08-22 10:14:32 -05:00
										 |  |  | import { RecipeIngredient } from "~/lib/api/types/household"; | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  | import { useParsedIngredientText } from "~/composables/recipes"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default defineComponent({ | 
					
						
							|  |  |  |   props: { | 
					
						
							|  |  |  |     ingredient: { | 
					
						
							|  |  |  |       type: Object as () => RecipeIngredient, | 
					
						
							|  |  |  |       required: true, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     disableAmount: { | 
					
						
							|  |  |  |       type: Boolean, | 
					
						
							|  |  |  |       default: false, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     scale: { | 
					
						
							|  |  |  |       type: Number, | 
					
						
							|  |  |  |       default: 1, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   setup(props) { | 
					
						
							| 
									
										
										
										
											2023-08-25 11:32:06 -05:00
										 |  |  |     const parsedIng = computed(() => { | 
					
						
							|  |  |  |       return useParsedIngredientText(props.ingredient, props.disableAmount, props.scale); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  |     return { | 
					
						
							| 
									
										
										
										
											2023-08-25 11:32:06 -05:00
										 |  |  |       parsedIng, | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | </script> | 
					
						
							| 
									
										
										
										
											2023-08-25 18:32:26 +02:00
										 |  |  | <style lang="scss"> | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  | .ingredient-item { | 
					
						
							|  |  |  |   .d-inline { | 
					
						
							|  |  |  |     & > p { | 
					
						
							|  |  |  |       display: inline; | 
					
						
							| 
									
										
										
										
											2024-06-13 15:04:45 +02:00
										 |  |  |       &:has(>sub)>sup { | 
					
						
							|  |  |  |         letter-spacing: -0.05rem; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     &:has(sub) { | 
					
						
							|  |  |  |       &:after { | 
					
						
							|  |  |  |         letter-spacing: -0.2rem; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     sup { | 
					
						
							|  |  |  |       &+span{ | 
					
						
							|  |  |  |         letter-spacing: -0.05rem; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       &:before { | 
					
						
							|  |  |  |         letter-spacing: 0rem; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .text-bold { | 
					
						
							|  |  |  |     font-weight: bold; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .note { | 
					
						
							| 
									
										
										
										
											2023-10-07 16:06:00 -05:00
										 |  |  |   line-height: 1.25em; | 
					
						
							| 
									
										
										
										
											2023-08-21 17:32:09 +02:00
										 |  |  |   font-size: 0.8em; | 
					
						
							|  |  |  |   opacity: 0.7; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </style> |