@@ -8,8 +8,9 @@ | |||
<div class="segments"> | |||
<button class="button" [ngClass]="{'active' : selectedSegment === 1}" (click)="selectedSegment = 1"> Profile </button> | |||
<button class="button" [ngClass]="{'active' : selectedSegment === 2}" (click)="selectedSegment = 2"> Implementation Data </button> | |||
<button class="button" [ngClass]="{'active' : selectedSegment === 3}" (click)="selectedSegment = 3"> Training Data </button> | |||
<button class="button" [ngClass]="{'active' : selectedSegment === 2}" (click)="selectedSegment = 2" | |||
*ngIf="partnerDetails.surveyCtoData.hiiData.length > 0 || partnerDetails.surveyCtoData.spData.length > 0 || partnerDetails.surveyCtoData.spSchemeData.length > 0" | |||
> Implementation Data </button> | |||
</div> | |||
<ng-container *ngIf="selectedSegment === 1"> | |||
@@ -301,7 +302,7 @@ | |||
</div> | |||
<div class="row"> | |||
<div class="col"> | |||
No. of Males | |||
No. of Transgenders | |||
</div> | |||
<div class="col"> | |||
{{ package.noOfTransgender }} | |||
@@ -336,7 +337,7 @@ | |||
Relevant Documents | |||
</div> | |||
<div class="col"> | |||
{{ package.relevantDocuments }} | |||
<a href="{{ package.relevantDocuments }}" target="_blank"> Link </a> | |||
</div> | |||
</div> | |||
</section> | |||
@@ -384,7 +385,7 @@ | |||
Relevant Documents | |||
</div> | |||
<div class="col"> | |||
{{ package.relevantDocuments }} | |||
<a href="{{ package.relevantDocuments }}" target="_blank"> Link </a> | |||
</div> | |||
</div> | |||
</section> | |||
@@ -431,12 +432,31 @@ | |||
<ng-container *ngIf="showExportOptions"> | |||
<div class="export-options"> | |||
<div class="sub-options"> | |||
<header> | |||
<h5>Select Data Type</h5> | |||
</header> | |||
<div> | |||
<span>Profile Data</span> | |||
<div class="radioButton" [ngClass]="{'active' : isProfileData}" (click) = "isProfileData = true; isImplementationData=false; isBothData=false" ></div> | |||
</div> | |||
<div> | |||
<span>Implementation Data</span> | |||
<div class="radioButton" [ngClass]="{'active' : isImplementationData}" (click) = "isImplementationData= true; isProfileData=false; isBothData=false" ></div> | |||
</div> | |||
<div> | |||
<span>Both</span> | |||
<div class="radioButton" [ngClass]="{'active' : isBothData}" (click)="isBothData = true; isProfileData = false; isImplementationData=false"></div> | |||
</div> | |||
</div> | |||
<header> | |||
<h5> Export as </h5> | |||
</header> | |||
<div class="options"> | |||
<button class="button" (click)="exportProfileData(0)"> CSV </button> | |||
<button class="button" (click)="exportProfileData(1)"> Excel </button> | |||
<button class="button" (click)="exportProfileData('CSV')"> CSV </button> | |||
<button class="button" (click)="exportProfileData('XLSX')"> Excel </button> | |||
</div> | |||
</div> | |||
</ng-container> | |||
@@ -162,6 +162,51 @@ | |||
color: var(--secondary-text); | |||
font-weight: 500; | |||
} | |||
.sub-options { | |||
div{ | |||
margin: 3px 0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
text-align: left; | |||
font-size: 14px; | |||
color: var(--input-border); | |||
span{ | |||
width: 85%; | |||
} | |||
} | |||
.radioButton{ | |||
border: 2px solid var(--input-border); | |||
width: 15px; | |||
height: 15px; | |||
border-radius: 50%; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
&::before { | |||
content: ''; | |||
display: block; | |||
width: 7px; | |||
height: 7px; | |||
border-radius: inherit; | |||
background-color: white; | |||
} | |||
&.active { | |||
border-color: var(--input-border); | |||
&::before { | |||
background-color: var(--input-border); | |||
} | |||
} | |||
} | |||
} | |||
} | |||
.shadow { | |||
@@ -3,6 +3,7 @@ import { ActivatedRoute } from '@angular/router'; | |||
import * as Papa from 'papaparse'; | |||
import * as XLSX from 'xlsx' | |||
type exportType = "CSV" | "XLSX"; | |||
@Component({ | |||
selector: 'app-partner-details', | |||
@@ -15,6 +16,12 @@ export class PartnerDetailsComponent implements OnInit { | |||
selectedSegment: 1 | 2 | 3 = 1; | |||
showExportOptions: boolean = false; | |||
exportData: Array<any> = []; | |||
exportSurveyCtoData: Array<any> = []; | |||
isProfileData: boolean = true; | |||
isImplementationData: boolean = false; | |||
isBothData: boolean = false; | |||
constructor( | |||
private activateRouter: ActivatedRoute | |||
@@ -29,27 +36,34 @@ export class PartnerDetailsComponent implements OnInit { | |||
loadExportData(partnerData: any) { | |||
let exportData: Array<any> = []; | |||
let exportHiiData: Array<any> = []; | |||
let exportSpData: Array<any> = []; | |||
let exportSPSchemaData: Array<any> = []; | |||
let surveyCtoData: Array<any> = []; | |||
let csvArray = [{ | |||
exportData = [{ | |||
"PortalID": partnerData.portalId ? partnerData.portalId : '-', | |||
// Primary Contact | |||
"Primary Name": partnerData.primaryContact.contactNumber, | |||
"Primary Name": partnerData.primaryContact.name, | |||
"Primary Contact Number": partnerData.primaryContact.contactNumber, | |||
"Primary Email": partnerData.primaryContact.contactNumber, | |||
"Primary Designation": partnerData.primaryContact.contactNumber, | |||
"Primary Email": partnerData.primaryContact.email, | |||
"Primary Designation": partnerData.primaryContact.designation, | |||
// Basic Info | |||
"areasOfWork": partnerData.organizationBasicInfo.areasOfWork ? partnerData.organizationBasicInfo.areasOfWork.toString() : '', | |||
"name": partnerData.organizationBasicInfo.name, | |||
"reasonForBecomingMember": partnerData.organizationBasicInfo.reasonForBecomingMember, | |||
"referralName": partnerData.organizationBasicInfo.referralName, | |||
"source": partnerData.organizationBasicInfo.source, | |||
"type": partnerData.organizationBasicInfo.type, | |||
"website": partnerData.organizationBasicInfo.website, | |||
"wouldLikeUpdates": partnerData.organizationBasicInfo.wouldLikeUpdates, | |||
"Areas Of Work": partnerData.organizationBasicInfo.areasOfWork ? partnerData.organizationBasicInfo.areasOfWork.toString() : '', | |||
"Name": partnerData.organizationBasicInfo.name, | |||
"Reason For Becoming Member": partnerData.organizationBasicInfo.reasonForBecomingMember, | |||
"Referral Name": partnerData.organizationBasicInfo.referralName, | |||
"Source": partnerData.organizationBasicInfo.source, | |||
"Type": partnerData.organizationBasicInfo.type, | |||
"Website": partnerData.organizationBasicInfo.website, | |||
"Would Like Updates": partnerData.organizationBasicInfo.wouldLikeUpdates, | |||
// Alternative Contact | |||
@@ -86,28 +100,107 @@ export class PartnerDetailsComponent implements OnInit { | |||
"Primary Areas Of Support Required Description": partnerData.strengthAndCapability.primaryAreasOfSupportRequired, | |||
"Primary Areas Of Support Required Other": partnerData.strengthAndCapability.primaryAreasOfSupportRequiredOther, | |||
}] | |||
return csvArray; | |||
let surveyCtoHIIData = []; | |||
for (const hiidata of partnerData.surveyCtoData.hiiData) { | |||
let partnerHiiDetails = { | |||
"HII Id": hiidata.id, | |||
"HII Name": hiidata.name, | |||
"HII Packages Health": hiidata.packagesHealth, | |||
"HII Implementation Status": hiidata.implementationStatus, | |||
"HII Disaggregation Note": hiidata.disaggregationNote, | |||
"HII No Of Males": hiidata.id, | |||
"HII No Of Females": hiidata.noOfMales, | |||
"HII No Of Transgender": hiidata.noOfTransgender, | |||
"HII Health Remarks": hiidata.healthRemarks, | |||
"HII Relevant Documents": hiidata.relevantDocuments, | |||
} | |||
surveyCtoHIIData.push(partnerHiiDetails) | |||
} | |||
surveyCtoHIIData.forEach(data => { | |||
exportHiiData.push(data) | |||
}) | |||
let surveyCtoSpData = [] | |||
for (const spData of partnerData.surveyCtoData.spData) { | |||
let partnerSpDetails = { | |||
"SP Id": spData.id, | |||
"SP Name": spData.name, | |||
"SP Status": spData.status, | |||
"SP TotalAggregation": spData.totalAggregation, | |||
"SP OtherRemarks": spData.otherRemarks, | |||
"SP RelevantDocuments": spData.relevantDocuments, | |||
} | |||
surveyCtoSpData.push(partnerSpDetails) | |||
} | |||
surveyCtoSpData.forEach(data => { | |||
exportSpData.push(data) | |||
}) | |||
let surveyCtoSpSchemaData = [] | |||
for (const spSchema of partnerData.surveyCtoData.spSchemeData) { | |||
let partnerSpSchemaDetails = { | |||
"SPSchema SchemeId": spSchema.schemeId, | |||
"SPSchema Count": spSchema.count, | |||
} | |||
surveyCtoSpSchemaData.push(partnerSpSchemaDetails) | |||
} | |||
surveyCtoSpSchemaData.forEach(data => { | |||
exportSPSchemaData.push(data) | |||
}) | |||
surveyCtoData.push(exportHiiData) | |||
surveyCtoData.push(exportSpData) | |||
surveyCtoData.push(exportSPSchemaData) | |||
this.exportData = exportData; | |||
this.exportSurveyCtoData = surveyCtoData | |||
} | |||
exportProfileData(index: number) { | |||
let fileTypeXLS = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'; | |||
let fileTypeCSV = 'text/csv;charset=utf-8;'; | |||
let fileExtension = index === 0 ? '.csv' : '.xlsx'; | |||
let element = document.createElement('a'); | |||
exportProfileData(exportType: exportType) { | |||
const fileTypeXLS = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8', | |||
fileTypeCSV = 'text/csv;charset=utf-8;', | |||
fileExtension = exportType === 'CSV' ? '.csv' : '.xlsx', | |||
element = document.createElement('a'); | |||
let blob; | |||
if (index === 0) { | |||
let csvData = Papa.unparse(this.loadExportData(this.partnerDetails)); | |||
this.loadExportData(this.partnerDetails) | |||
const partnerData = XLSX.utils.json_to_sheet(this.exportData); | |||
const hiiData = XLSX.utils.json_to_sheet(this.exportSurveyCtoData[0]); | |||
const spData = XLSX.utils.json_to_sheet(this.exportSurveyCtoData[1]); | |||
const spSchema = XLSX.utils.json_to_sheet(this.exportSurveyCtoData[2]); | |||
const wb = XLSX.utils.book_new(); | |||
if (exportType === 'CSV') { | |||
let csvData = Papa.unparse(this.exportData); | |||
blob = new Blob([csvData], { type: fileTypeCSV }); | |||
let url = URL.createObjectURL(blob); | |||
element.href = url; | |||
element.setAttribute('download', 'PartnerProfile' + fileExtension); | |||
element.click(); | |||
} else if (this.isImplementationData) { | |||
XLSX.utils.book_append_sheet(wb, hiiData, "Hii Data"); | |||
XLSX.utils.book_append_sheet(wb, spData, "Sp DATA"); | |||
XLSX.utils.book_append_sheet(wb, spSchema, "SP Schema Data"); | |||
XLSX.writeFile(wb, 'PartnerProfile' + fileExtension); | |||
} else if (this.isBothData) { | |||
XLSX.utils.book_append_sheet(wb, partnerData, "Partner Profile"); | |||
XLSX.utils.book_append_sheet(wb, hiiData, "Hii Data"); | |||
XLSX.utils.book_append_sheet(wb, spData, "Sp DATA"); | |||
XLSX.utils.book_append_sheet(wb, spSchema, "SP Schema Data"); | |||
XLSX.writeFile(wb, 'PartnerProfile' + fileExtension); | |||
} else { | |||
let ws = XLSX.utils.json_to_sheet(this.loadExportData(this.partnerDetails)); | |||
let wb = { Sheets: { 'data': ws }, SheetNames: ['data'] }; | |||
let excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' }); | |||
blob = new Blob([excelBuffer], { type: fileTypeXLS }); | |||
XLSX.utils.book_append_sheet(wb, partnerData, "Partner Profile"); | |||
XLSX.writeFile(wb, 'PartnerProfile' + fileExtension); | |||
} | |||
let url = URL.createObjectURL(blob); | |||
element.href = url; | |||
element.setAttribute('download', 'PartnerProfile' + fileExtension); | |||
element.click(); | |||
} | |||
} |
@@ -25,19 +25,40 @@ | |||
<ng-container *ngIf="showExportOptions"> | |||
<div class="export-options"> | |||
<div class="sub-options" *ngIf="shouldHaveImplementationData"> | |||
<header> | |||
<h5>Select Data Type</h5> | |||
</header> | |||
<div> | |||
<span>Profile Data</span> | |||
<div class="radioButton" [ngClass]="{'active' : isProfileData}" (click) = "isProfileData = true; isImplementationData=false; isBothData=false" ></div> | |||
</div> | |||
<div> | |||
<span>Implementation Data</span> | |||
<div class="radioButton" [ngClass]="{'active' : isImplementationData}" (click) = "isImplementationData= true; isProfileData=false; isBothData=false" ></div> | |||
</div> | |||
<div> | |||
<span>Both</span> | |||
<div class="radioButton" [ngClass]="{'active' : isBothData}" (click)="isBothData = true; isProfileData = false; isImplementationData=false"></div> | |||
</div> | |||
</div> | |||
<header> | |||
<h5> Export as </h5> | |||
</header> | |||
<div class="options"> | |||
<button (click) ="exportProfileData(0)" class="button"> CSV </button> | |||
<button (click) ="exportProfileData(1)" class="button"> Excel </button> | |||
<button (click) ="exportProfileData('CSV')" class="button"> CSV </button> | |||
<button (click) ="exportProfileData('XLSX')" class="button"> Excel </button> | |||
</div> | |||
</div> | |||
</ng-container> | |||
<section class="table"> | |||
<header> | |||
<div class="col"> <input type="checkbox" [checked]="checkedAllInput()" (change)="selectAllPartner()"> Select </div> | |||
<div class="col"> <input type="checkbox" [checked]="isAllInputChecked()" (change)="selectAllPartner()"> Select </div> | |||
<div class="col"> Name </div> | |||
<div class="col"> Primary Disctrict & State </div> | |||
<div class="col"> Type </div> | |||
@@ -47,7 +68,7 @@ | |||
</header> | |||
<section class="data"> | |||
<div class="row" *ngFor="let partner of tempUserData"> | |||
<div class="col"> <input type="checkbox" [checked]="checkedInput(partner)" (change)="selectPartner(partner)"> </div> | |||
<div class="col"> <input type="checkbox" [checked]="isInputChecked(partner)" (change)="selectPartner(partner)"> </div> | |||
<div class="col" (click)="showPartnerDetails(partner)"> | |||
{{ partner.organizationBasicInfo.name }} | |||
</div> | |||
@@ -44,7 +44,7 @@ | |||
} | |||
.export-options { | |||
width: 190px; | |||
width: 210px; | |||
position: absolute; | |||
top: 70px; | |||
right: 120px; | |||
@@ -69,6 +69,53 @@ | |||
justify-content: space-between; | |||
} | |||
.sub-options { | |||
div{ | |||
margin: 3px 0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
text-align: left; | |||
font-size: 14px; | |||
color: var(--input-border); | |||
span{ | |||
width: 85%; | |||
} | |||
} | |||
.radioButton{ | |||
border: 2px solid var(--input-border); | |||
width: 15px; | |||
height: 15px; | |||
border-radius: 50%; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
&::before { | |||
content: ''; | |||
display: block; | |||
width: 7px; | |||
height: 7px; | |||
border-radius: inherit; | |||
background-color: white; | |||
} | |||
&.active { | |||
border-color: var(--input-border); | |||
&::before { | |||
background-color: var(--input-border); | |||
} | |||
} | |||
} | |||
} | |||
button { | |||
border: 2px solid var(--input-border); | |||
padding: 7px 20px; | |||
@@ -78,6 +125,8 @@ | |||
color: var(--secondary-text); | |||
font-weight: 500; | |||
} | |||
} | |||
.table { | |||
@@ -4,6 +4,8 @@ import { Router } from '@angular/router'; | |||
import * as Papa from 'papaparse'; | |||
import * as XLSX from 'xlsx' | |||
type exportType = "CSV" | "XLSX"; | |||
@Component({ | |||
selector: 'app-table', | |||
templateUrl: './table.component.html', | |||
@@ -17,6 +19,12 @@ export class TableComponent implements OnInit { | |||
shouldHaveImplementationData: boolean = false; | |||
searchText: string = ''; | |||
selectedPartnerList: Array<any> = []; | |||
isProfileData: boolean = true; | |||
isImplementationData: boolean = false; | |||
isBothData: boolean = false; | |||
exportData: Array<any> = []; | |||
exportSurveyCtoData: Array<any> = []; | |||
constructor( | |||
private partnerProfileService: PartnerProfileService, | |||
@@ -45,7 +53,7 @@ export class TableComponent implements OnInit { | |||
}) | |||
} | |||
this.partialLoad(this.userData.slice(0, 10)) | |||
this.partialLoad(this.userData.slice(0, 100)) | |||
console.log(this.userData); | |||
}, (e) => console.log(e)); | |||
@@ -66,7 +74,6 @@ export class TableComponent implements OnInit { | |||
selectPartner(partner: any) { | |||
if (this.selectedPartnerList) { | |||
console.log(!this.checkedInput(partner)) | |||
if (this.selectedPartnerList.some(x => JSON.stringify(x) === JSON.stringify(partner))) { | |||
this.selectedPartnerList = this.selectedPartnerList.filter(x => JSON.stringify(x) !== JSON.stringify(partner)) | |||
} else this.selectedPartnerList.push(partner) | |||
@@ -74,28 +81,34 @@ export class TableComponent implements OnInit { | |||
} | |||
loadExportData() { | |||
let tempArray = []; | |||
let exportData: Array<any> = []; | |||
let exportHiiData: Array<any> = []; | |||
let exportSpData: Array<any> = []; | |||
let exportSPSchemaData: Array<any> = []; | |||
let surveyCtoData: Array<any> = []; | |||
for (const partner of this.selectedPartnerList) { | |||
let csvArray = [{ | |||
let partnerDetails = { | |||
"PortalID": partner.portalId ? partner.portalId : '-', | |||
// Primary Contact | |||
"Primary Name": partner.primaryContact.contactNumber, | |||
"Primary Name": partner.primaryContact.name, | |||
"Primary Contact Number": partner.primaryContact.contactNumber, | |||
"Primary Email": partner.primaryContact.contactNumber, | |||
"Primary Designation": partner.primaryContact.contactNumber, | |||
"Primary Email": partner.primaryContact.email, | |||
"Primary Designation": partner.primaryContact.designation, | |||
// Basic Info | |||
"areasOfWork": partner.organizationBasicInfo.areasOfWork ? partner.organizationBasicInfo.areasOfWork.toString() : '', | |||
"name": partner.organizationBasicInfo.name, | |||
"reasonForBecomingMember": partner.organizationBasicInfo.reasonForBecomingMember, | |||
"referralName": partner.organizationBasicInfo.referralName, | |||
"source": partner.organizationBasicInfo.source, | |||
"type": partner.organizationBasicInfo.type, | |||
"website": partner.organizationBasicInfo.website, | |||
"wouldLikeUpdates": partner.organizationBasicInfo.wouldLikeUpdates, | |||
"Areas Of Work": partner.organizationBasicInfo.areasOfWork ? partner.organizationBasicInfo.areasOfWork.toString() : '', | |||
"Name": partner.organizationBasicInfo.name, | |||
"Reason For Becoming Member": partner.organizationBasicInfo.reasonForBecomingMember, | |||
"Referral Name": partner.organizationBasicInfo.referralName, | |||
"Source": partner.organizationBasicInfo.source, | |||
"Type": partner.organizationBasicInfo.type, | |||
"Website": partner.organizationBasicInfo.website, | |||
"Would Like Updates": partner.organizationBasicInfo.wouldLikeUpdates, | |||
// Alternative Contact | |||
@@ -114,7 +127,7 @@ export class TableComponent implements OnInit { | |||
"Files": partner.detailedProfile.files, | |||
"Have Branches In Other Districts": partner.detailedProfile.haveBranchesInOtherDistricts, | |||
"Logo": partner.detailedProfile.logo, | |||
"Partner Location": partner.detailedProfile.partnerLocation, | |||
"partner Location": partner.detailedProfile.partnerLocation, | |||
"Preferred Languages": partner.detailedProfile.preferredLanguages ? partner.detailedProfile.preferredLanguages.toString() : '', | |||
"Preferred Mode Of Communications": partner.detailedProfile.preferredModeOfCommunications ? partner.detailedProfile.preferredModeOfCommunications.toString() : '', | |||
"State": partner.detailedProfile.state, | |||
@@ -131,48 +144,121 @@ export class TableComponent implements OnInit { | |||
"Primary Areas Of Support Required": partner.strengthAndCapability.primaryAreasOfSupportOfferedOther ? partner.strengthAndCapability.primaryAreasOfSupportOfferedOther.toString() : '', | |||
"Primary Areas Of Support Required Description": partner.strengthAndCapability.primaryAreasOfSupportRequired, | |||
"Primary Areas Of Support Required Other": partner.strengthAndCapability.primaryAreasOfSupportRequiredOther, | |||
}] | |||
} | |||
exportData.push(partnerDetails); | |||
let surveyCtoHIIData = []; | |||
for (const hiidata of partner.surveyCtoData.hiiData) { | |||
let partnerHiiDetails = { | |||
"HII Id": hiidata.id, | |||
"HII Name": hiidata.name, | |||
"HII Packages Health": hiidata.packagesHealth, | |||
"HII Implementation Status": hiidata.implementationStatus, | |||
"HII Disaggregation Note": hiidata.disaggregationNote, | |||
"HII No Of Males": hiidata.id, | |||
"HII No Of Females": hiidata.noOfMales, | |||
"HII No Of Transgender": hiidata.noOfTransgender, | |||
"HII Health Remarks": hiidata.healthRemarks, | |||
"HII Relevant Documents": hiidata.relevantDocuments, | |||
} | |||
surveyCtoHIIData.push(partnerHiiDetails) | |||
} | |||
surveyCtoHIIData.forEach(data => { | |||
exportHiiData.push(data) | |||
}) | |||
let surveyCtoSpData = [] | |||
for (const spData of partner.surveyCtoData.spData) { | |||
let partnerSpDetails = { | |||
"SP Id": spData.id, | |||
"SP Name": spData.name, | |||
"SP Status": spData.status, | |||
"SP TotalAggregation": spData.totalAggregation, | |||
"SP OtherRemarks": spData.otherRemarks, | |||
"SP RelevantDocuments": spData.relevantDocuments, | |||
} | |||
surveyCtoSpData.push(partnerSpDetails) | |||
} | |||
surveyCtoSpData.forEach(data => { | |||
exportSpData.push(data) | |||
}) | |||
let surveyCtoSpSchemaData = [] | |||
for (const spSchema of partner.surveyCtoData.spSchemeData) { | |||
let partnerSpSchemaDetails = { | |||
"SPSchema SchemeId": spSchema.schemeId, | |||
"SPSchema Count": spSchema.count, | |||
} | |||
tempArray.push(csvArray[0]) | |||
surveyCtoSpSchemaData.push(partnerSpSchemaDetails) | |||
} | |||
surveyCtoSpSchemaData.forEach(data => { | |||
exportSPSchemaData.push(data) | |||
}) | |||
} | |||
return tempArray; | |||
surveyCtoData.push(exportHiiData) | |||
surveyCtoData.push(exportSpData) | |||
surveyCtoData.push(exportSPSchemaData) | |||
this.exportData = exportData; | |||
this.exportSurveyCtoData = surveyCtoData | |||
} | |||
checkedInput(partner: any) { | |||
return this.selectedPartnerList.some(x => JSON.stringify(x) === JSON.stringify(partner)) | |||
isInputChecked(partner: any) { | |||
return this.selectedPartnerList.some(x => JSON.stringify(x) === JSON.stringify(partner)); | |||
} | |||
checkedAllInput() { | |||
return JSON.stringify(this.selectedPartnerList) === JSON.stringify(this.tempUserData) | |||
isAllInputChecked() { | |||
return JSON.stringify(this.selectedPartnerList) === JSON.stringify(this.tempUserData); | |||
} | |||
selectAllPartner() { | |||
if (JSON.stringify(this.selectedPartnerList) === JSON.stringify(this.tempUserData)) { | |||
this.selectedPartnerList = [] | |||
} else this.selectedPartnerList = this.tempUserData | |||
JSON.stringify(this.selectedPartnerList) === JSON.stringify(this.tempUserData) ? this.selectedPartnerList = [] : this.selectedPartnerList = this.tempUserData; | |||
} | |||
exportProfileData(index: number) { | |||
let fileTypeXLS = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'; | |||
let fileTypeCSV = 'text/csv;charset=utf-8;'; | |||
let fileExtension = index === 0 ? '.csv' : '.xlsx'; | |||
let element = document.createElement('a'); | |||
exportProfileData(exportType: exportType) { | |||
const fileTypeXLS = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8', | |||
fileTypeCSV = 'text/csv;charset=utf-8;', | |||
fileExtension = exportType === 'CSV' ? '.csv' : '.xlsx', | |||
element = document.createElement('a'); | |||
let blob; | |||
if (index === 0) { | |||
let csvData = Papa.unparse(this.loadExportData()); | |||
this.loadExportData(); | |||
const partnerData = XLSX.utils.json_to_sheet(this.exportData); | |||
const hiiData = XLSX.utils.json_to_sheet(this.exportSurveyCtoData[0]); | |||
const spData = XLSX.utils.json_to_sheet(this.exportSurveyCtoData[1]); | |||
const spSchema = XLSX.utils.json_to_sheet(this.exportSurveyCtoData[2]); | |||
const wb = XLSX.utils.book_new(); | |||
if (exportType === 'CSV') { | |||
let csvData = Papa.unparse(this.exportData); | |||
blob = new Blob([csvData], { type: fileTypeCSV }); | |||
let url = URL.createObjectURL(blob); | |||
element.href = url; | |||
element.setAttribute('download', 'PartnerProfile' + fileExtension); | |||
element.click(); | |||
} else if (this.isImplementationData && this.shouldHaveImplementationData) { | |||
XLSX.utils.book_append_sheet(wb, hiiData, "Hii Data"); | |||
XLSX.utils.book_append_sheet(wb, spData, "Sp DATA"); | |||
XLSX.utils.book_append_sheet(wb, spSchema, "SP Schema Data"); | |||
XLSX.writeFile(wb, 'PartnerProfile' + fileExtension); | |||
} else if (this.isBothData && this.shouldHaveImplementationData) { | |||
XLSX.utils.book_append_sheet(wb, partnerData, "Partner Profile"); | |||
XLSX.utils.book_append_sheet(wb, hiiData, "Hii Data"); | |||
XLSX.utils.book_append_sheet(wb, spData, "Sp DATA"); | |||
XLSX.utils.book_append_sheet(wb, spSchema, "SP Schema Data"); | |||
XLSX.writeFile(wb, 'PartnerProfile' + fileExtension); | |||
} else { | |||
let ws = XLSX.utils.json_to_sheet(this.loadExportData()); | |||
let wb = { Sheets: { 'data': ws }, SheetNames: ['data'] }; | |||
let excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' }); | |||
blob = new Blob([excelBuffer], { type: fileTypeXLS }); | |||
XLSX.utils.book_append_sheet(wb, partnerData, "Partner Profile"); | |||
XLSX.writeFile(wb, 'PartnerProfile' + fileExtension); | |||
} | |||
let url = URL.createObjectURL(blob); | |||
element.href = url; | |||
element.setAttribute('download', 'PartnerProfile' + fileExtension); | |||
element.click(); | |||
} | |||
} |