feat(tools): added base64 string converter
This commit is contained in:
		
							parent
							
								
									34800f461d
								
							
						
					
					
						commit
						67bc09ccfd
					
				
							
								
								
									
										60
									
								
								pages/tools/converter/base64-string-converter.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								pages/tools/converter/base64-string-converter.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| <template> | ||||
|   <ToolWrapper :config="config()"> | ||||
|     <v-textarea | ||||
|       v-model="clearText" | ||||
|       outlined | ||||
|       label="Clear text" | ||||
|     /> | ||||
| 
 | ||||
|     <v-textarea | ||||
|       v-model="base64Text" | ||||
|       outlined | ||||
|       readonly | ||||
|       label="Base64 text" | ||||
|     /> | ||||
|     <div class="text-center"> | ||||
|       <v-btn depressed @click="copy(clearText)"> | ||||
|         Copy clear | ||||
|       </v-btn> | ||||
|       <v-btn depressed @click="copy(base64Text)"> | ||||
|         Copy hash | ||||
|       </v-btn> | ||||
|     </div> | ||||
|   </ToolWrapper> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import {Component} from 'nuxt-property-decorator' | ||||
| import {CopyableMixin} from '~/mixins/copyable.mixin' | ||||
| import Tool from '~/components/Tool.vue' | ||||
| import type {ToolConfig} from '~/types/ToolConfig' | ||||
| import {base64ToString, stringToBase64} from '~/utils/convert' | ||||
| 
 | ||||
| @Component({ | ||||
|   mixins: [CopyableMixin] | ||||
| }) | ||||
| export default class Base64StringConverter extends Tool { | ||||
|   config(): ToolConfig { | ||||
|     return { | ||||
|       title: 'Base64 string converter', | ||||
|       description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Delectus distinctio dolor dolorum eaque eligendi, facilis impedit laboriosam odit placeat.', | ||||
|       icon: 'mdi-text-box-outline', | ||||
|       keywords: ['base64', 'base', '64', 'converter'] | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   clearText = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.' | ||||
| 
 | ||||
|   get base64Text() { | ||||
|     return stringToBase64(this.clearText) | ||||
|   } | ||||
| 
 | ||||
|   set base64Text(value: string) { | ||||
|     this.clearText = base64ToString(value) | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| </style> | ||||
							
								
								
									
										7
									
								
								utils/convert.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								utils/convert.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| const base64ToString = (str: string) => Buffer.from(str, 'base64').toString('utf-8') | ||||
| const stringToBase64 = (str: string) => Buffer.from(str, 'utf-8').toString('base64') | ||||
| 
 | ||||
| export { | ||||
|   stringToBase64, | ||||
|   base64ToString | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user