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 {Observable} from 'rxjs';
5 import {HttpClient} from '@angular/common/http';
9 selector: 'app-imports-tab',
10 templateUrl: './imports-tab.component.html',
11 styleUrls: ['./imports-tab.component.css']
13 export class ImportsTabComponent {
15 fileContent: string | ArrayBuffer = '';
17 constructor(private packageCreationStore: PackageCreationStore, private http: HttpClient) {
20 public files: NgxFileDropEntry[] = [];
22 public dropped(files: NgxFileDropEntry[]) {
24 for (const droppedFile of files) {
27 if (droppedFile.fileEntry.isFile) {
28 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
30 fileEntry.file((file: File) => {
31 console.log(droppedFile.relativePath, file);
33 const formData = new FormData();
34 formData.append('logo', file, droppedFile.relativePath);
35 console.log(formData);
37 this.packageCreationStore.addDefinition(droppedFile.relativePath, this.getContent(droppedFile.relativePath));
41 // It was a directory (empty directories are added, otherwise only files)
42 const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
43 console.log(droppedFile.relativePath, fileEntry);
46 /* const formData = new FormData();
47 formData.append('logo', droppedFile, droppedFile.relativePath);
48 console.log(formData);*/
50 this.packageCreationStore.addDefinition(droppedFile.relativePath, this.getContent(droppedFile.relativePath));
56 public fileOver(event) {
60 public fileLeave(event) {
65 getContent(filePath: string) {
67 this.getJSON(filePath).subscribe(data => {
73 public getJSON(filePath: string): Observable<any> {
74 return this.http.get(filePath);