1 import {Component, OnInit} from '@angular/core';
2 import {NgxFileDropEntry, FileSystemFileEntry, FileSystemDirectoryEntry} 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 {
14 public definitionFiles: Map<string, string> = new Map<string, string>();
15 public uploadedFiles: FileSystemFileEntry[] = [];
17 public files: NgxFileDropEntry[] = [];
19 constructor(private packageCreationStore: PackageCreationStore, private packageCreationUtils: PackageCreationUtils) {
20 this.packageCreationStore.state$.subscribe(cbaPackage => {
21 if (cbaPackage.definitions && cbaPackage.definitions.files && cbaPackage.definitions.files.size > 0) {
22 this.definitionFiles = cbaPackage.definitions.files;
27 public dropped(files: NgxFileDropEntry[]) {
29 for (const droppedFile of files) {
32 if (droppedFile.fileEntry.isFile) {
33 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
34 this.uploadedFiles.push(fileEntry);
38 const directorEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
39 this.filesUnderDirectory = directorEntry.getFile('');
40 // const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
41 /* this.uploadedFile.push(droppedFile);
42 const formData = new FormData()
43 formData.append('logo', fileEntry, droppedFile.relativePath);
44 console.log(formData);*/
45 /* // It was a directory (empty directories are added, otherwise only files)
46 const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
47 console.log(droppedFile.relativePath, fileEntry);
50 const formData = new FormData();
51 formData.append('logo', droppedFile, droppedFile.relativePath);
52 console.log(formData);
54 //this.packageCreationStore.addDefinition(droppedFile.relativePath, this.getContent(droppedFile.relativePath));
60 public fileOver(event) {
64 public fileLeave(event) {
69 /* readFileContent(file: File): string | ArrayBuffer {
70 const fileReader = new FileReader();
71 // let content: string | ArrayBuffer = '';
72 fileReader.onload = (e) => {
73 content = fileReader.result;
75 fileReader.readAsText(file);
80 for (const droppedFile of this.uploadedFiles) {
81 droppedFile.file((file: File) => {
82 const fileReader = new FileReader();
83 fileReader.onload = (e) => {
84 this.packageCreationStore.addDefinition(droppedFile.name,
85 this.packageCreationUtils.transformToJson(fileReader.result));
87 fileReader.readAsText(file);
93 resetTheUploadedFiles() {
94 this.uploadedFiles = [];