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();
17 fileToDelete: any = {};
18 public files: NgxFileDropEntry[] = [];
20 constructor(private packageCreationStore: PackageCreationStore, private packageCreationUtils: PackageCreationUtils) {
23 this.packageCreationStore.state$.subscribe(cbaPackage => {
24 if (cbaPackage.definitions && cbaPackage.definitions.imports && cbaPackage.definitions.imports.size > 0) {
25 this.definitionFiles = cbaPackage.definitions.imports;
30 public dropped(files: NgxFileDropEntry[]) {
32 for (const droppedFile of files) {
33 // Is it a file? & Not added before
34 if (droppedFile.fileEntry.isFile) {
35 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
36 this.uploadedFiles.push(fileEntry);
37 console.log(fileEntry.name);
38 this.fileNames.add(fileEntry.name);
45 this.fileToDelete = file;
48 const filename = this.fileToDelete.key;
49 this.packageCreationStore.removeFileFromDefinition(filename);
51 for (let i = 0; i < this.uploadedFiles.length; i++) {
52 console.log(this.uploadedFiles[i]);
53 if (this.uploadedFiles[i].name === filename) {
54 this.uploadedFiles.splice(i, 1);
60 public fileOver(event) {
64 public fileLeave(event) {
69 for (const droppedFile of this.uploadedFiles) {
70 droppedFile.file((file: File) => {
71 const fileReader = new FileReader();
72 fileReader.onload = (e) => {
73 this.packageCreationStore.addDefinition('Definitions/' + droppedFile.name,
74 fileReader.result.toString());
76 fileReader.readAsText(file);
82 resetTheUploadedFiles() {
83 this.uploadedFiles = [];
86 textChanges(code: any, key: string) {
87 this.packageCreationStore.addDefinition(key, code);
90 changeDivShow(mapIndex: number) {
91 const divElement = document.getElementById('id-' + mapIndex) as HTMLElement;
92 if (divElement.getAttribute('class').includes('show')) {
93 divElement.setAttribute('class', 'collapse');
95 divElement.setAttribute('class', 'collapse show');
97 console.log(divElement.getAttribute('class'));