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';
5 import {PackageCreationStore} from '../../package-creation/package-creation.store';
8 selector: 'app-import-package',
9 templateUrl: './import-package.component.html',
10 styleUrls: ['./import-package.component.css']
12 export class ImportPackageComponent implements OnInit {
14 public uploadedFiles: FileSystemFileEntry[] = [];
15 private fileNames: Set<string> = new Set();
16 fileToDelete: any = {};
17 public files: NgxFileDropEntry[] = [];
19 constructor(private packageCreationExtractionService: PackageCreationExtractionService,
20 private packageCreationStore: PackageCreationStore,
21 private router: Router) {
22 this.packageCreationStore.clear();
26 this.packageCreationStore.clear();
29 removeInitFile(index) {
30 this.uploadedFiles.splice(index, 1);
33 public dropped(files: NgxFileDropEntry[]) {
35 for (const droppedFile of files) {
36 // Is it a file? & Not added before
37 if (droppedFile.fileEntry.isFile) {
38 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
39 this.uploadedFiles.push(fileEntry);
40 console.log(fileEntry.name);
41 this.fileNames.add(fileEntry.name);
49 this.fileToDelete = file;
53 const filename = this.fileToDelete.key;
54 for (let i = 0; i < this.uploadedFiles.length; i++) {
55 console.log(this.uploadedFiles[i]);
56 if (this.uploadedFiles[i].name === filename) {
57 this.uploadedFiles.splice(i, 1);
63 resetTheUploadedFiles() {
64 this.uploadedFiles = [];
68 public fileOver(event) {
72 public fileLeave(event) {
77 console.log(this.uploadedFiles.length);
78 const file = this.getFile(this.uploadedFiles[this.uploadedFiles.length - 1]);
79 this.packageCreationStore.clear();
80 this.packageCreationExtractionService.extractBlobToStore(file);
83 openFilesInCreationPackage() {
84 this.router.navigate(['/packages/createPackage/']);
87 async getFile(fileEntry) {
89 return await new Promise((resolve, reject) => fileEntry.file(resolve, reject));