| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -21,12 +21,22 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    <h1 class="text-4xl text-center font-light px-4 mb-4">What Was Given</h1> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    <h1 class="text-xl font-bold text-center mb-4"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <span>From {{ giverName || "someone not named" }}</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        From | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        {{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          providedByProject | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ? providerProjectName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            : providedByGiver | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              ? giverName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              : "someone not named" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      </span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <br /> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        to | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        {{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          givenToProject | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ? projectName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ? fulfillsProjectName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            : givenToRecipient | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              ? recipientName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              : "someone unidentified" | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -87,7 +97,29 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    <div class="h-7 mt-4 flex"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <input | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        v-if="projectId && !givenToRecipient" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        v-if="providerProjectId && !providedByGiver" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        type="checkbox" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        class="h-6 w-6 mr-2" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        v-model="providedByProject" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      /> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <fa | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        v-else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        icon="square" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        class="bg-slate-500 text-slate-500 h-5 w-5 px-0.5 py-0.5 mr-2 rounded" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        @click="notifyUserOfProvidingProject()" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      /> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <label class="text-sm mt-1"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        {{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          providerProjectId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ? "This was provided by " + providerProjectName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            : "This was not provided by a project" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      </label> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    </div> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    <div class="h-7 mt-4 flex"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <input | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        v-if="fulfillsProjectId && !givenToRecipient" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        type="checkbox" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        class="h-6 w-6 mr-2" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        v-model="givenToProject" | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -96,13 +128,13 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        v-else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        icon="square" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        class="bg-slate-500 text-slate-500 h-5 w-5 px-0.5 py-0.5 mr-2 rounded" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        @click="notifyUserOfProject()" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        @click="notifyUserFulfillsProject()" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      /> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      <label class="text-sm mt-1"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        {{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          projectId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ? "This was given to " + projectName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            : "No project was chosen" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          fulfillsProjectId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ? "This was given to " + fulfillsProjectName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            : "No recipient project was chosen" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      </label> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    </div> | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -211,8 +243,10 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  amountInput = "0"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  description = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  destinationPathAfter = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  givenToProject = false; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  givenToRecipient = false; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  fulfillsProjectId = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  fulfillsProjectName = "a project"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  givenToProject = false; // basically static, based on input; if we allow changing then let's fix things (see below) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  givenToRecipient = false; // basically static, based on input; if we allow changing then let's fix things (see below) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  giverDid: string | undefined; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  giverName = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  hideBackButton = false; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -221,8 +255,10 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  message = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  offerId = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  prevCredToEdit?: GenericCredWrapper<GiveVerifiableCredential>; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  projectId = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  projectName = "a project"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  providerProjectId = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  providerProjectName = "a project"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  providedByProject = false; // basically static, based on input; if we allow changing then let's fix things (see below) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  providedByGiver = false; // basically static, based on input; if we allow changing then let's fix things (see below) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  recipientDid = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  recipientName = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  showGeneralAdvanced = false; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -282,11 +318,31 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      offer?.identifier || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.offerId) as string; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // find any project ID | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const project = fulfillsArray.find((rec) => rec["@type"] === "PlanAction"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.projectId = ((this.$route as Router).query["projectId"] || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      project?.identifier || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.projectId) as string; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // find any fulfills project ID | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const fulfillsProject = fulfillsArray.find( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      (rec) => rec["@type"] === "PlanAction", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // eslint-disable-next-line prettier/prettier | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.fulfillsProjectId = | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ((this.$route as Router).query["fulfillsProjectId"] || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      fulfillsProject?.identifier || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.fulfillsProjectId) as string; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // find any provider project ID | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const provider = this.prevCredToEdit?.claim?.provider; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const providerArray = Array.isArray(provider) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ? provider | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      : provider | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ? [provider] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        : []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const providerProject = providerArray.find( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      (rec) => rec["@type"] === "PlanAction", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.providerProjectId = ((this.$route as Router).query[ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      "providerProjectId" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ] || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      providerProject?.identifier || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.providerProjectId) as string; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.recipientDid = ((this.$route as Router).query["recipientDid"] || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.prevCredToEdit?.claim?.recipient?.identifier) as string; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -318,69 +374,70 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.imageUrl = (this.$route as Router).query["shareUrl"] as string; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const settings = await retrieveSettingsForActiveAccount(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.apiServer = settings.apiServer || ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.activeDid = settings.activeDid || ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      let allContacts: Contact[] = []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      let allMyDids: string[] = []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      if ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        (this.giverDid && !this.giverName) || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        (this.recipientDid && !this.recipientName) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        allContacts = await db.contacts.toArray(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        await accountsDB.open(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const allAccounts = await accountsDB.accounts.toArray(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        allMyDids = allAccounts.map((acc) => acc.did); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (this.giverDid && !this.giverName) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.giverName = didInfo( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            this.giverDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            this.activeDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allMyDids, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allContacts, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (this.recipientDid && !this.recipientName) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.recipientName = didInfo( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            this.recipientDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            this.activeDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allMyDids, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allContacts, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const settings = await retrieveSettingsForActiveAccount(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.apiServer = settings.apiServer || ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.activeDid = settings.activeDid || ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let allContacts: Contact[] = []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let allMyDids: string[] = []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      (this.giverDid && !this.giverName) || | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      (this.recipientDid && !this.recipientName) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      allContacts = await db.contacts.toArray(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      await accountsDB.open(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const allAccounts = await accountsDB.accounts.toArray(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      allMyDids = allAccounts.map((acc) => acc.did); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      if (this.giverDid && !this.giverName) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.giverName = didInfo( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.giverDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.activeDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          allMyDids, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          allContacts, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // these should be functions but something's wrong with the syntax in the <> conditional | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.givenToProject = !!this.projectId; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.givenToRecipient = !this.givenToProject && !!this.recipientDid; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      if (this.recipientDid && !this.recipientName) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.recipientName = didInfo( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.recipientDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.activeDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          allMyDids, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          allContacts, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // these should be functions but something's wrong with the syntax in the <> conditional | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.givenToProject = !!this.fulfillsProjectId; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.givenToRecipient = !this.givenToProject && !!this.recipientDid; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.showGeneralAdvanced = !!settings.showGeneralAdvanced; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // these should be functions but something's wrong with the syntax in the <> conditional | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.providedByProject = !!this.providerProjectId; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.providedByGiver = !this.providedByProject && !!this.giverDid; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // eslint-disable-next-line @typescript-eslint/no-explicit-any | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } catch (err: any) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      console.error("Error retrieving settings from database:", err); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.$notify( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          group: "alert", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          type: "danger", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          title: "Error", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          text: err.message || "There was an error retrieving your settings.", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        -1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.showGeneralAdvanced = !!settings.showGeneralAdvanced; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (this.fulfillsProjectId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // console.log("Getting project name from cache", this.fulfillsProjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const fulfillsProject = await getPlanFromCache( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.fulfillsProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.axios, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.apiServer, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.activeDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.fulfillsProjectName = fulfillsProject?.name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ? `the project "${fulfillsProject.name}"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        : "a project"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (this.projectId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // console.log("Getting project name from cache", this.projectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const project = await getPlanFromCache( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.projectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (this.providerProjectId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // console.log("Getting project name from cache", this.providerProjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const providerProject = await getPlanFromCache( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.providerProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.axios, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.apiServer, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.activeDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.projectName = project?.name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ? "the project: " + project.name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.providerProjectName = providerProject?.name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ? `the project "${providerProject.name}"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        : "a project"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -545,8 +602,35 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    await this.recordGive(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  notifyUserOfProject() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (!this.projectId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  notifyUserOfProvidingProject() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // we're here because they clicked and either there is no provider project or there is a giver chosen | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (!this.providerProjectId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.$notify( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          group: "alert", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          type: "warning", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          title: "Error", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          text: "To select a project as a provider, you must open this page through a project.", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        3000, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // no providing project was chosen | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.$notify( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          group: "alert", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          type: "warning", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          title: "Error", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          text: "You cannot select both a giving project and person.", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        3000, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  notifyUserFulfillsProject() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // we're here because they clicked and either there is no fulfills project or there is a recipient chosen | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (!this.fulfillsProjectId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.$notify( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          group: "alert", | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -557,7 +641,7 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        3000, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // must be because givenToRecipient is true | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // no fulfills project was chosen | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.$notify( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          group: "alert", | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -607,7 +691,9 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const recipientDid = this.givenToRecipient | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ? this.recipientDid | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        : undefined; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const projectId = this.givenToProject ? this.projectId : undefined; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const fulfillsProjectId = this.givenToProject | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ? this.fulfillsProjectId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        : undefined; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      let result; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      if (this.prevCredToEdit) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // don't create from a blank one in case some properties were set from a different interface | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -621,10 +707,11 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.description, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          parseFloat(this.amountInput), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.unitCode, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          projectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          fulfillsProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.offerId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.isTrade, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.imageUrl, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.providerProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        result = await createAndSubmitGive( | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -636,11 +723,11 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.description, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          parseFloat(this.amountInput), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.unitCode, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          projectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          fulfillsProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.offerId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.isTrade, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.imageUrl, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          [], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.providerProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -697,7 +784,9 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  constructGiveParam() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const recipientDid = this.givenToRecipient ? this.recipientDid : undefined; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const projectId = this.givenToProject ? this.projectId : undefined; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const fulfillsProjectId = this.givenToProject | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ? this.fulfillsProjectId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      : undefined; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const giveClaim = hydrateGive( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.prevCredToEdit?.claim as GiveVerifiableCredential, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.giverDid, | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -705,11 +794,11 @@ export default class GiftedDetails extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.description, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      parseFloat(this.amountInput), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.unitCode, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      projectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      fulfillsProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.offerId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.isTrade, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.imageUrl, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      [], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.providerProjectId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.prevCredToEdit?.id as string, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const claimStr = JSON.stringify(giveClaim); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |