Sfoglia il codice sorgente

Export to XLSX in Table

master
prahalad 3 anni fa
parent
commit
7031732ac9
4 ha cambiato i file con 293 aggiunte e 18 eliminazioni
  1. +259
    -0
      package-lock.json
  2. +3
    -0
      package.json
  3. +2
    -2
      src/app/dashboard/table/table.component.html
  4. +29
    -16
      src/app/dashboard/table/table.component.ts

+ 259
- 0
package-lock.json Vedi File

@@ -18,10 +18,13 @@
"@angular/router": "~13.1.0",
"echarts": "^5.3.0",
"echarts-gl": "^2.0.8",
"file-saver": "^2.0.5",
"ngx-echarts": "^8.0.1",
"papaparse": "^5.3.1",
"rxjs": "~7.4.0",
"tslib": "^2.3.0",
"xlsexport": "^1.5.2",
"xlsx": "^0.18.2",
"zone.js": "~0.11.4"
},
"devDependencies": {
@@ -3022,6 +3025,17 @@
"node": ">=8.9.0"
}
},
"node_modules/adler-32": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz",
"integrity": "sha512-f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==",
"dependencies": {
"printj": "~1.2.2"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
@@ -3692,6 +3706,30 @@
"integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==",
"dev": true
},
"node_modules/cfb": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz",
"integrity": "sha512-wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==",
"dependencies": {
"adler-32": "~1.3.0",
"crc-32": "~1.2.0",
"printj": "~1.3.0"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/cfb/node_modules/printj": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz",
"integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==",
"bin": {
"printj": "bin/printj.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -3862,6 +3900,14 @@
"node": ">=6"
}
},
"node_modules/codepage": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -4216,6 +4262,32 @@
"node": ">=10"
}
},
"node_modules/crc-32": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz",
"integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==",
"dependencies": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.3.1"
},
"bin": {
"crc32": "bin/crc32.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/crc-32/node_modules/printj": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz",
"integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==",
"bin": {
"printj": "bin/printj.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/critters": {
"version": "0.0.16",
"resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz",
@@ -5361,6 +5433,14 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/express": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
@@ -5539,6 +5619,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
},
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -5649,6 +5734,14 @@
"node": ">= 0.6"
}
},
"node_modules/frac": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/fraction.js": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz",
@@ -9213,6 +9306,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/printj": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz",
"integrity": "sha512-sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==",
"bin": {
"printj": "bin/printj.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -10260,6 +10364,17 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
"node_modules/ssf": {
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"dependencies": {
"frac": "~1.1.2"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/ssri": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@@ -11232,6 +11347,22 @@
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
"dev": true
},
"node_modules/wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/word": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -11309,6 +11440,31 @@
}
}
},
"node_modules/xlsexport": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/xlsexport/-/xlsexport-1.5.2.tgz",
"integrity": "sha512-cyyDdZBjlxNl7IIz3/v8CeYwRxb5dXCclDJAv42mrjbUER1ILlWP33zXj7Q/lUc9RUOF5cU4L7iSzQVXSrq8oA=="
},
"node_modules/xlsx": {
"version": "0.18.2",
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.2.tgz",
"integrity": "sha512-BWLS+GO5yg5Hnro8mpbNkZq/a+dZ8689otFuHmb9wgCtiMpL+I9dpc+Sans6K9yYxTLEZ235Kr/JkmoTEMunzQ==",
"dependencies": {
"adler-32": "~1.3.0",
"cfb": "~1.2.1",
"codepage": "~1.15.0",
"crc-32": "~1.2.1",
"ssf": "~0.11.2",
"wmf": "~1.0.1",
"word": "~0.3.0"
},
"bin": {
"xlsx": "bin/xlsx.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -13618,6 +13774,14 @@
}
}
},
"adler-32": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz",
"integrity": "sha512-f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==",
"requires": {
"printj": "~1.2.2"
}
},
"agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
@@ -14116,6 +14280,23 @@
"integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==",
"dev": true
},
"cfb": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz",
"integrity": "sha512-wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==",
"requires": {
"adler-32": "~1.3.0",
"crc-32": "~1.2.0",
"printj": "~1.3.0"
},
"dependencies": {
"printj": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz",
"integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg=="
}
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -14239,6 +14420,11 @@
"shallow-clone": "^3.0.0"
}
},
"codepage": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -14521,6 +14707,22 @@
"yaml": "^1.10.0"
}
},
"crc-32": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz",
"integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==",
"requires": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.3.1"
},
"dependencies": {
"printj": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz",
"integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg=="
}
}
},
"critters": {
"version": "0.0.16",
"resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz",
@@ -15333,6 +15535,11 @@
"strip-final-newline": "^2.0.0"
}
},
"exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
},
"express": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
@@ -15480,6 +15687,11 @@
"escape-string-regexp": "^1.0.5"
}
},
"file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -15560,6 +15772,11 @@
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"dev": true
},
"frac": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
},
"fraction.js": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz",
@@ -18181,6 +18398,11 @@
"integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
"dev": true
},
"printj": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz",
"integrity": "sha512-sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA=="
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -19000,6 +19222,14 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
"ssf": {
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"requires": {
"frac": "~1.1.2"
}
},
"ssri": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@@ -19674,6 +19904,16 @@
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
"dev": true
},
"wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
},
"word": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
},
"wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -19724,6 +19964,25 @@
"dev": true,
"requires": {}
},
"xlsexport": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/xlsexport/-/xlsexport-1.5.2.tgz",
"integrity": "sha512-cyyDdZBjlxNl7IIz3/v8CeYwRxb5dXCclDJAv42mrjbUER1ILlWP33zXj7Q/lUc9RUOF5cU4L7iSzQVXSrq8oA=="
},
"xlsx": {
"version": "0.18.2",
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.2.tgz",
"integrity": "sha512-BWLS+GO5yg5Hnro8mpbNkZq/a+dZ8689otFuHmb9wgCtiMpL+I9dpc+Sans6K9yYxTLEZ235Kr/JkmoTEMunzQ==",
"requires": {
"adler-32": "~1.3.0",
"cfb": "~1.2.1",
"codepage": "~1.15.0",
"crc-32": "~1.2.1",
"ssf": "~0.11.2",
"wmf": "~1.0.1",
"word": "~0.3.0"
}
},
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",


+ 3
- 0
package.json Vedi File

@@ -20,10 +20,13 @@
"@angular/router": "~13.1.0",
"echarts": "^5.3.0",
"echarts-gl": "^2.0.8",
"file-saver": "^2.0.5",
"ngx-echarts": "^8.0.1",
"papaparse": "^5.3.1",
"rxjs": "~7.4.0",
"tslib": "^2.3.0",
"xlsexport": "^1.5.2",
"xlsx": "^0.18.2",
"zone.js": "~0.11.4"
},
"devDependencies": {


+ 2
- 2
src/app/dashboard/table/table.component.html Vedi File

@@ -29,8 +29,8 @@
<h5> Export as </h5>
</header>
<div class="options">
<button (click) ="exportCSV()" class="button"> CSV </button>
<button class="button"> Excel </button>
<button (click) ="exportProfileData(0)" class="button"> CSV </button>
<button (click) ="exportProfileData(1)" class="button"> Excel </button>
</div>
</div>
</ng-container>


+ 29
- 16
src/app/dashboard/table/table.component.ts Vedi File

@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
import { PartnerProfileService } from '../../services/partner-profile.service';
import { Router } from '@angular/router';
import * as Papa from 'papaparse';
import * as XLSX from 'xlsx'

@Component({
selector: 'app-table',
@@ -70,13 +71,10 @@ export class TableComponent implements OnInit {
this.selectedPartnerList = this.selectedPartnerList.filter(x => JSON.stringify(x) !== JSON.stringify(partner))
} else this.selectedPartnerList.push(partner)
}

console.log(this.selectedPartnerList)
}

exportCSV() {
loadExportData() {
let tempArray = [];

for (const partner of this.selectedPartnerList) {
let csvArray = [{
"PortalID": partner.portalId ? partner.portalId : '-',
@@ -137,28 +135,43 @@ export class TableComponent implements OnInit {

tempArray.push(csvArray[0])
}

let csvData = Papa.unparse(tempArray)
let element = document.createElement('a');
let blob = new Blob([csvData], { type: 'text/csv;charset=utf-8;' });
let url = URL.createObjectURL(blob);
element.href = url;
element.setAttribute('download', 'PartnerProfile.csv');
element.click();
return tempArray;
}

checkedInput(partner : any){
checkedInput(partner: any) {
return this.selectedPartnerList.some(x => JSON.stringify(x) === JSON.stringify(partner))
}

checkedAllInput(){
checkedAllInput() {
return JSON.stringify(this.selectedPartnerList) === JSON.stringify(this.tempUserData)
}

selectAllPartner(){
if(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
}

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');
let blob;

if (index === 0) {
let csvData = Papa.unparse(this.loadExportData());
blob = new Blob([csvData], { type: fileTypeCSV });
} 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 });
}
let url = URL.createObjectURL(blob);
element.href = url;
element.setAttribute('download', 'PartnerProfile' + fileExtension);
element.click();

}
}

Caricamento…
Annulla
Salva