|  |  | @ -89,7 +89,7 @@ | 
			
		
	
		
			
				
					|  |  |  |             <!-- Fullfills Links --> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             <!-- fullfills links for a give --> | 
			
		
	
		
			
				
					|  |  |  |             <div v-if="detailsForGive?.fulfillsPlanHandleId"> | 
			
		
	
		
			
				
					|  |  |  |             <div v-if="detailsForGive?.fulfillsPlanHandleId" class="mt-4"> | 
			
		
	
		
			
				
					|  |  |  |               <router-link | 
			
		
	
		
			
				
					|  |  |  |                 :to=" | 
			
		
	
		
			
				
					|  |  |  |                   '/project/' + | 
			
		
	
	
		
			
				
					|  |  | @ -113,7 +113,7 @@ | 
			
		
	
		
			
				
					|  |  |  |                 @click=" | 
			
		
	
		
			
				
					|  |  |  |                   showDifferentClaimPage(detailsForGive?.fulfillsHandleId) | 
			
		
	
		
			
				
					|  |  |  |                 " | 
			
		
	
		
			
				
					|  |  |  |                 class="text-blue-500 mt-4" | 
			
		
	
		
			
				
					|  |  |  |                 class="text-blue-500 mt-4 cursor-pointer" | 
			
		
	
		
			
				
					|  |  |  |               > | 
			
		
	
		
			
				
					|  |  |  |                 Fulfills | 
			
		
	
		
			
				
					|  |  |  |                 {{ | 
			
		
	
	
		
			
				
					|  |  | @ -136,6 +136,41 @@ | 
			
		
	
		
			
				
					|  |  |  |                 Offered to a bigger plan... | 
			
		
	
		
			
				
					|  |  |  |               </router-link> | 
			
		
	
		
			
				
					|  |  |  |             </div> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             <!-- Providers --> | 
			
		
	
		
			
				
					|  |  |  |             <div v-if="providersForGive?.length > 0" class="mt-4"> | 
			
		
	
		
			
				
					|  |  |  |               <span>Other assistance provided by:</span> | 
			
		
	
		
			
				
					|  |  |  |               <ul class="ml-4"> | 
			
		
	
		
			
				
					|  |  |  |                 <li | 
			
		
	
		
			
				
					|  |  |  |                   v-for="provider of providersForGive" | 
			
		
	
		
			
				
					|  |  |  |                   :key="provider.identifier" | 
			
		
	
		
			
				
					|  |  |  |                   class="list-disc ml-4" | 
			
		
	
		
			
				
					|  |  |  |                 > | 
			
		
	
		
			
				
					|  |  |  |                   <div class="flex gap-4"> | 
			
		
	
		
			
				
					|  |  |  |                     <div class="grow overflow-hidden"> | 
			
		
	
		
			
				
					|  |  |  |                       <a | 
			
		
	
		
			
				
					|  |  |  |                         @click=" | 
			
		
	
		
			
				
					|  |  |  |                           provider.identifier.startsWith('did:') | 
			
		
	
		
			
				
					|  |  |  |                             ? this.$router.push( | 
			
		
	
		
			
				
					|  |  |  |                                 '/did/' + | 
			
		
	
		
			
				
					|  |  |  |                                   encodeURIComponent(provider.identifier), | 
			
		
	
		
			
				
					|  |  |  |                               ) | 
			
		
	
		
			
				
					|  |  |  |                             : showDifferentClaimPage(provider.identifier) | 
			
		
	
		
			
				
					|  |  |  |                         " | 
			
		
	
		
			
				
					|  |  |  |                         class="text-blue-500 mt-4 cursor-pointer" | 
			
		
	
		
			
				
					|  |  |  |                       > | 
			
		
	
		
			
				
					|  |  |  |                         {{ | 
			
		
	
		
			
				
					|  |  |  |                           provider.identifier.startsWith("did:") | 
			
		
	
		
			
				
					|  |  |  |                             ? "a person..." | 
			
		
	
		
			
				
					|  |  |  |                             : "an activity..." | 
			
		
	
		
			
				
					|  |  |  |                         }} | 
			
		
	
		
			
				
					|  |  |  |                       </a> | 
			
		
	
		
			
				
					|  |  |  |                     </div> | 
			
		
	
		
			
				
					|  |  |  |                   </div> | 
			
		
	
		
			
				
					|  |  |  |                 </li> | 
			
		
	
		
			
				
					|  |  |  |               </ul> | 
			
		
	
		
			
				
					|  |  |  |             </div> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           </div> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
	
		
			
				
					|  |  | @ -465,6 +500,11 @@ import { | 
			
		
	
		
			
				
					|  |  |  |   OfferVerifiableCredential, | 
			
		
	
		
			
				
					|  |  |  | } from "@/libs/endorserServer"; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | interface ProviderInfo { | 
			
		
	
		
			
				
					|  |  |  |   identifier: string; // could be a DID or a handleId | 
			
		
	
		
			
				
					|  |  |  |   linkConfirmed: boolean; | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | @Component({ | 
			
		
	
		
			
				
					|  |  |  |   components: { GiftedDialog, QuickNav }, | 
			
		
	
		
			
				
					|  |  |  | }) | 
			
		
	
	
		
			
				
					|  |  | @ -488,6 +528,7 @@ export default class ClaimView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |   isEditedGlobalId = false; | 
			
		
	
		
			
				
					|  |  |  |   isRegistered = false; | 
			
		
	
		
			
				
					|  |  |  |   numConfsNotVisible = 0; // number of hidden DIDs in the confirmerIdList, minus the issuer if they aren't visible | 
			
		
	
		
			
				
					|  |  |  |   providersForGive: ProviderInfo[] = []; | 
			
		
	
		
			
				
					|  |  |  |   showDidCopy = false; | 
			
		
	
		
			
				
					|  |  |  |   showIdCopy = false; | 
			
		
	
		
			
				
					|  |  |  |   showVeriClaimDump = false; | 
			
		
	
	
		
			
				
					|  |  | @ -620,11 +661,40 @@ export default class ClaimView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |         const giveResp = await this.axios.get(giveUrl, { | 
			
		
	
		
			
				
					|  |  |  |           headers: giveHeaders, | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         if (giveResp.status === 200) { | 
			
		
	
		
			
				
					|  |  |  |         if (giveResp.status === 200 && giveResp.data.data?.length > 0) { | 
			
		
	
		
			
				
					|  |  |  |           this.detailsForGive = giveResp.data.data[0]; | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |           console.error("Error getting detailed give info:", giveResp); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         // look for providers | 
			
		
	
		
			
				
					|  |  |  |         const providerUrl = | 
			
		
	
		
			
				
					|  |  |  |           this.apiServer + | 
			
		
	
		
			
				
					|  |  |  |           "/api/v2/report/providersToGive?handleId=" + | 
			
		
	
		
			
				
					|  |  |  |           encodeURIComponent(this.veriClaim.handleId as string); | 
			
		
	
		
			
				
					|  |  |  |         console.log("providerUrl:", providerUrl); | 
			
		
	
		
			
				
					|  |  |  |         const providerHeaders = await serverUtil.getHeaders(userDid); | 
			
		
	
		
			
				
					|  |  |  |         const providerResp = await this.axios.get(providerUrl, { | 
			
		
	
		
			
				
					|  |  |  |           headers: providerHeaders, | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         // should be at least an empty array | 
			
		
	
		
			
				
					|  |  |  |         if ( | 
			
		
	
		
			
				
					|  |  |  |           providerResp.status === 200 && | 
			
		
	
		
			
				
					|  |  |  |           Array.isArray(providerResp.data.data) | 
			
		
	
		
			
				
					|  |  |  |         ) { | 
			
		
	
		
			
				
					|  |  |  |           this.providersForGive = providerResp.data.data; | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |           console.error("Error getting give providers:", giveResp); | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "warning", | 
			
		
	
		
			
				
					|  |  |  |               title: "Error", | 
			
		
	
		
			
				
					|  |  |  |               text: "Got error retrieving linked provider data.", | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       } else if (this.veriClaim.claimType === "Offer") { | 
			
		
	
		
			
				
					|  |  |  |         const offerUrl = | 
			
		
	
		
			
				
					|  |  |  |           this.apiServer + | 
			
		
	
	
		
			
				
					|  |  | @ -638,6 +708,15 @@ export default class ClaimView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |           this.detailsForOffer = offerResp.data.data[0]; | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |           console.error("Error getting detailed offer info:", offerResp); | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "warning", | 
			
		
	
		
			
				
					|  |  |  |               title: "Error", | 
			
		
	
		
			
				
					|  |  |  |               text: "Got error retrieving linked offer data.", | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | 
 |