1 import {Component, OnInit} from '@angular/core';
2 import {FileSystemFileEntry, NgxFileDropEntry} from 'ngx-file-drop';
3 import {PackageCreationExtractionService} from '../../package-creation/package-creation-extraction.service';
4 import {Router} from '@angular/router';
7 selector: 'app-import-package',
8 templateUrl: './import-package.component.html',
9 styleUrls: ['./import-package.component.css']
11 export class ImportPackageComponent implements OnInit {
13 public uploadedFiles: FileSystemFileEntry[] = [];
14 private fileNames: Set<string> = new Set();
15 fileToDelete: any = {};
16 public files: NgxFileDropEntry[] = [];
18 constructor(private packageCreationExtractionService: PackageCreationExtractionService,
19 private router: Router) {
25 removeInitFile(index) {
26 this.uploadedFiles.splice(index, 1);
29 public dropped(files: NgxFileDropEntry[]) {
31 for (const droppedFile of files) {
32 // Is it a file? & Not added before
33 if (droppedFile.fileEntry.isFile) {
34 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
35 this.uploadedFiles.push(fileEntry);
36 console.log(fileEntry.name);
37 this.fileNames.add(fileEntry.name);
45 this.fileToDelete = file;
49 const filename = this.fileToDelete.key;
50 for (let i = 0; i < this.uploadedFiles.length; i++) {
51 console.log(this.uploadedFiles[i]);
52 if (this.uploadedFiles[i].name === filename) {
53 this.uploadedFiles.splice(i, 1);
59 resetTheUploadedFiles() {
60 this.uploadedFiles = [];
64 public fileOver(event) {
68 public fileLeave(event) {
73 for (const droppedFile of this.uploadedFiles) {
74 const file = this.getFile(droppedFile);
75 this.packageCreationExtractionService.extractBlobToStore(file);
79 openFilesInCreationPackage() {
80 this.router.navigate(['/packages/createPackage/']);
83 async getFile(fileEntry) {
85 return await new Promise((resolve, reject) => fileEntry.file(resolve, reject));