UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

1 lines 6.98 kB
{"version":3,"file":"c8y-ngx-components-binary-file-download.mjs","sources":["../../binary-file-download/binary-file-download.service.ts","../../binary-file-download/binary-file-download.module.ts","../../binary-file-download/c8y-ngx-components-binary-file-download.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { IManagedObject, InventoryBinaryService, InventoryService } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AlertService, ModalService, Status } from '@c8y/ngx-components';\nimport { saveAs } from 'file-saver';\nimport { isUndefined } from 'lodash-es';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class BinaryFileDownloadService {\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private inventoryService: InventoryService,\n private alertService: AlertService,\n private modalService: ModalService,\n private translate: TranslateService,\n private inventoryBinary: InventoryBinaryService\n ) {}\n\n run() {\n this.router.events\n .pipe(\n filter(event => {\n return event instanceof NavigationEnd && this.route.snapshot.queryParams.download;\n }),\n map(() => this.route.snapshot.queryParams.download)\n )\n .subscribe(async downloadId => {\n try {\n const { data } = await this.inventoryService.detail(downloadId);\n if (!isUndefined(data.c8y_IsBinary)) {\n this.showDownloadModal(data);\n } else {\n const alertMessage = this.translate.instant(\n gettext(\n 'Could not download the file: object with ID \"{{ id }}\" is not a valid binary.'\n ),\n { id: data.id }\n );\n this.alertService.danger(alertMessage);\n }\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n });\n }\n\n async showDownloadModal(binaryMo: IManagedObject) {\n try {\n const modalBody = this.translate.instant(\n gettext('You are about to download file \"{{ fileName }}\". Do you want to proceed?'),\n { fileName: binaryMo.name }\n );\n await this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {\n ok: gettext('Download')\n });\n const arrayBuffer = await this.getArrayBuffer(binaryMo.id);\n const fileBinary = new File([arrayBuffer], binaryMo.name, { type: binaryMo.contentType });\n saveAs(fileBinary);\n } catch (e) {\n // empty body :(\n console.log({ e });\n }\n }\n\n private async getArrayBuffer(binaryId): Promise<ArrayBuffer> {\n let arrayBuffer: ArrayBuffer;\n try {\n const res = await this.inventoryBinary.download(binaryId);\n arrayBuffer = await res.arrayBuffer();\n } catch (ex) {\n const msg = gettext('Could not get the binary.');\n this.alertService.danger(msg);\n }\n\n return arrayBuffer;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@c8y/ngx-components';\nimport { BinaryFileDownloadService } from './binary-file-download.service';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n providers: [BinaryFileDownloadService]\n})\nexport class BinaryFileDownloadModule {\n constructor(binaryFileDownloadService: BinaryFileDownloadService) {\n binaryFileDownloadService.run();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BinaryFileDownloadService"],"mappings":"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"}