import { FormControl, FormGroup } from '@angular/forms'; export class CommonUtilities { /** Display the blob */ static displayFileInNewTab(response:any, defaultFileName:string) { const contentType = response.headers.get('content-type'); const blob = new Blob([response.body], { type: contentType }); const fileName = this.getFileName(response,defaultFileName); const nav = (window.navigator as any); if (nav.msSaveOrOpenBlob) { nav.msSaveOrOpenBlob(blob, fileName); } else { const data = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = data; link.target = '_blank'; link.click(); } } /*** Download the blob ***/ static downloadFile(response:any, defaultFileName:string) { const contentType = response.headers.get('content-type'); const blob = new Blob([response.body], { type: contentType }); const fileName = this.getFileName(response,defaultFileName); const nav = (window.navigator as any); if (typeof nav.msSaveBlob === 'function') { console.log("download the report saveblob"); nav.msSaveBlob(blob, fileName); console.log("download the report saveblob done"); } else { const link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); console.log("no msSaveBlob download the report saveblob done"); //link.download? = fileName; link.download = fileName; link.click(); } } /** Get the attachment file name */ static getFileName(response:any, defaultFileName:string) { const contentDis = response.headers.get('content-disposition'); let fileName =defaultFileName; if (contentDis && contentDis.indexOf('attachment') !== -1) { const filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; const matches = filenameRegex.exec(contentDis); if (matches != null && matches[1]) { fileName = matches[1].replace(/['"]/g, ''); } } return fileName; } }