1 import {Component, OnInit} from '@angular/core';
2 import {FileSystemFileEntry, NgxFileDropEntry} from 'ngx-file-drop';
3 import {PackageCreationStore} from '../package-creation.store';
4 import {PackageCreationUtils} from '../package-creation.utils';
8 selector: 'app-imports-tab',
9 templateUrl: './imports-tab.component.html',
10 styleUrls: ['./imports-tab.component.css']
12 export class ImportsTabComponent implements OnInit {
14 public definitionFiles: Map<string, string> = new Map<string, string>();
15 public uploadedFiles: FileSystemFileEntry[] = [];
16 private fileNames: Set<string> = new Set();
18 public files: NgxFileDropEntry[] = [];
20 constructor(private packageCreationStore: PackageCreationStore, private packageCreationUtils: PackageCreationUtils) {
21 this.packageCreationStore.state$.subscribe(cbaPackage => {
22 if (cbaPackage.definitions && cbaPackage.definitions.imports && cbaPackage.definitions.imports.size > 0) {
23 this.definitionFiles = cbaPackage.definitions.imports;
32 public dropped(files: NgxFileDropEntry[]) {
34 for (const droppedFile of files) {
35 // Is it a file? & Not added before
36 if (droppedFile.fileEntry.isFile && !this.fileNames.has(droppedFile.fileEntry.name)) {
37 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
38 this.uploadedFiles.push(fileEntry);
39 console.log(fileEntry.name);
40 this.fileNames.add(fileEntry.name);
43 const directorEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
44 this.filesUnderDirectory = directorEntry.getFile('');
45 // const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
46 /* this.uploadedFile.push(droppedFile);
47 const formData = new FormData()
48 formData.append('logo', fileEntry, droppedFile.relativePath);
49 console.log(formData);*/
50 /* // It was a directory (empty directories are added, otherwise only files)
51 const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
52 console.log(droppedFile.relativePath, fileEntry);
55 const formData = new FormData();
56 formData.append('logo', droppedFile, droppedFile.relativePath);
57 console.log(formData);
59 //this.packageCreationStore.addDefinition(droppedFile.relativePath, this.getContent(droppedFile.relativePath));
65 removeFile(fileIndex: number) {
66 console.log(this.uploadedFiles[fileIndex]);
67 console.log(this.uploadedFiles);
68 this.packageCreationStore.removeFileFromDefinition(this.uploadedFiles[fileIndex].name);
69 this.uploadedFiles.splice(fileIndex, 1);
72 public fileOver(event) {
76 public fileLeave(event) {
80 /* readFileContent(file: File): string | ArrayBuffer {
81 const fileReader = new FileReader();
82 // let content: string | ArrayBuffer = '';
83 fileReader.onload = (e) => {
84 content = fileReader.result;
86 fileReader.readAsText(file);
91 for (const droppedFile of this.uploadedFiles) {
92 droppedFile.file((file: File) => {
93 const fileReader = new FileReader();
94 fileReader.onload = (e) => {
95 this.packageCreationStore.addDefinition('Definitions/' + droppedFile.name,
96 fileReader.result.toString());
98 fileReader.readAsText(file);
104 resetTheUploadedFiles() {
105 this.uploadedFiles = [];