| 
									
										
										
										
											2021-07-31 15:07:19 -08:00
										 |  |  | <template> | 
					
						
							|  |  |  |   <div v-if="value.length > 0 || edit"> | 
					
						
							|  |  |  |     <h2 class="my-4">{{ $t("recipe.note") }}</h2> | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |     <v-card v-for="(note, index) in value" :key="generateKey('note', index)" class="mt-1"> | 
					
						
							| 
									
										
										
										
											2021-07-31 15:07:19 -08:00
										 |  |  |       <div v-if="edit"> | 
					
						
							|  |  |  |         <v-card-text> | 
					
						
							|  |  |  |           <v-row align="center"> | 
					
						
							|  |  |  |             <v-btn fab x-small color="white" class="mr-2" elevation="0" @click="removeByIndex(value, index)"> | 
					
						
							|  |  |  |               <v-icon color="error">{{ $globals.icons.delete }}</v-icon> | 
					
						
							|  |  |  |             </v-btn> | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |             <v-text-field v-model="value[index]['title']" :label="$t('recipe.title')"></v-text-field> | 
					
						
							| 
									
										
										
										
											2021-07-31 15:07:19 -08:00
										 |  |  |           </v-row> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |           <v-textarea v-model="value[index]['text']" auto-grow :placeholder="$t('recipe.note')"> </v-textarea> | 
					
						
							| 
									
										
										
										
											2021-07-31 15:07:19 -08:00
										 |  |  |         </v-card-text> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |       <div v-else> | 
					
						
							|  |  |  |         <v-card-title class="py-2"> | 
					
						
							|  |  |  |           {{ note.title }} | 
					
						
							|  |  |  |         </v-card-title> | 
					
						
							|  |  |  |         <v-divider class="mx-2"></v-divider> | 
					
						
							|  |  |  |         <v-card-text> | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |           <VueMarkdown :source="note.text"> </VueMarkdown> | 
					
						
							| 
									
										
										
										
											2021-07-31 15:07:19 -08:00
										 |  |  |         </v-card-text> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </v-card> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |     <div v-if="edit" class="d-flex justify-end"> | 
					
						
							| 
									
										
										
										
											2021-07-31 15:07:19 -08:00
										 |  |  |       <v-btn class="mt-1" color="secondary" dark @click="addNote"> | 
					
						
							|  |  |  |         <v-icon>{{ $globals.icons.create }}</v-icon> | 
					
						
							|  |  |  |       </v-btn> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | import VueMarkdown from "@adapttive/vue-markdown"; | 
					
						
							|  |  |  | import { utils } from "@/utils"; | 
					
						
							|  |  |  | export default { | 
					
						
							|  |  |  |   components: { | 
					
						
							|  |  |  |     VueMarkdown, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   props: { | 
					
						
							|  |  |  |     value: { | 
					
						
							|  |  |  |       type: Array, | 
					
						
							| 
									
										
										
										
											2021-08-07 16:49:55 -08:00
										 |  |  |       required: true, | 
					
						
							| 
									
										
										
										
											2021-07-31 15:07:19 -08:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     edit: { | 
					
						
							|  |  |  |       type: Boolean, | 
					
						
							|  |  |  |       default: true, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   methods: { | 
					
						
							|  |  |  |     generateKey(item, index) { | 
					
						
							|  |  |  |       return utils.generateUniqueKey(item, index); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     addNote() { | 
					
						
							|  |  |  |       this.value.push({ title: "", text: "" }); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     removeByIndex(list, index) { | 
					
						
							|  |  |  |       list.splice(index, 1); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <style></style> |