1<template> 2 <BasicInfo 3 :zipFile="zipFile" 4 :payload="payload" 5 class="mb-5" 6 /> 7 <v-divider /> 8 <div v-if="payload"> 9 <h3>Partition List</h3> 10 <v-row 11 v-if="payload.manifest" 12 class="mb-5" 13 > 14 <v-col 15 v-for="partition in payload.manifest.partitions" 16 :key="partition.partitionName" 17 cols="12" 18 md="4" 19 > 20 <v-card 21 elevation="5" 22 hover 23 shaped 24 class="partial-info" 25 > 26 <PartitionDetail :partition="partition" /> 27 </v-card> 28 </v-col> 29 </v-row> 30 <v-divider /> 31 <div 32 v-if="payload.metadata_signature && !payload.manifest.nonAB" 33 class="signature" 34 > 35 <h3>Metadata Signature</h3> 36 <span style="white-space: pre-wrap"> 37 {{ octToHex(payload.metadata_signature.signatures[0].data) }} 38 </span> 39 </div> 40 </div> 41</template> 42 43<script> 44import PartitionDetail from './PartitionDetail.vue' 45import BasicInfo from '@/components/BasicInfo.vue' 46import { Payload, octToHex } from '@/services/payload.js' 47 48export default { 49 components: { 50 PartitionDetail, 51 BasicInfo, 52 }, 53 props: { 54 zipFile: { 55 type: File, 56 default: null, 57 }, 58 payload: { 59 type: Payload, 60 default: null, 61 }, 62 }, 63 methods: { 64 octToHex: octToHex, 65 }, 66} 67</script> 68 69<style scoped> 70.signature { 71 overflow: scroll; 72 height: 200px; 73 width: 100%; 74 word-break: break-all; 75 text-align: center; 76} 77 78.partial-info { 79 padding: 5px; 80} 81</style>