1 import {Component, OnInit} from '@angular/core';
2 import {PackageCreationService} from '../package-creation.service';
3 import {MetaDataTabModel} from '../mapping-models/metadata/MetaDataTab.model';
4 import {PackageCreationStore} from '../package-creation.store';
5 import {PackageStore} from '../../configuration-dashboard/package.store';
6 import {ActivatedRoute} from '@angular/router';
10 selector: 'app-metadata-tab',
11 templateUrl: './metadata-tab.component.html',
12 styleUrls: ['./metadata-tab.component.css']
14 export class MetadataTabComponent implements OnInit {
15 packageNameAndVersionEnables = true;
17 tags = new Set<string>();
18 customKeysMap = new Map();
20 {name: 'Designer Mode', style: 'mode-icon icon-designer-mode'}];
21 /* {name: 'Scripting Mode', style: 'mode-icon icon-scripting-mode'},
22 {name: 'Generic Script Mode', style: 'mode-icon icon-generic-script-mode'}];*/
23 private metaDataTab: MetaDataTabModel = new MetaDataTabModel();
24 private errorMessage: string;
26 constructor(private route: ActivatedRoute,
27 private packageCreationService: PackageCreationService,
28 private packageCreationStore: PackageCreationStore,
29 private packageStore: PackageStore) {
34 this.metaDataTab.templateTags = this.tags;
35 this.metaDataTab.mapOfCustomKey = this.customKeysMap;
37 const id = this.route.snapshot.paramMap.get('id');
38 id ? this.packageNameAndVersionEnables = false :
39 this.packageNameAndVersionEnables = true;
40 this.packageCreationStore.state$.subscribe(element => {
42 if (element && element.metaData) {
44 this.metaDataTab.name = element.metaData.name;
45 this.metaDataTab.version = element.metaData.version;
46 this.metaDataTab.description = element.metaData.description;
47 this.tags = element.metaData.templateTags;
48 this.metaDataTab.templateTags = this.tags;
50 if (element.metaData.mode && element.metaData.mode.includes(' DEFAULT')) {
51 this.metaDataTab.mode = 'Designer Mode';
54 this.customKeysMap = element.metaData.mapOfCustomKey;
55 // this.tags = element.metaData.templateTags;
62 // console.log(event);
63 this.tags.delete(value);
67 const value = event.target.value;
69 if (value && value.trim().length > 0) {
70 event.target.value = '';
75 removeKey(event, key) {
77 this.customKeysMap.delete(key);
81 // tslint:disable-next-line: no-string-literal
82 const key = document.getElementsByClassName('mapKey')[0];
83 // tslint:disable-next-line: no-string-literal
84 const value = document.getElementsByClassName('mapValue')[0];
86 // tslint:disable-next-line: no-string-literal
87 if (key['value'] && value['value']) {
88 // tslint:disable-next-line: no-string-literal
89 this.customKeysMap.set(key['value'], value['value']);
90 // tslint:disable-next-line: no-string-literal
92 // tslint:disable-next-line: no-string-literal
97 validatePackageNameAndVersion() {
98 if (this.metaDataTab.name && this.metaDataTab.version) {
99 this.packageCreationService.checkBluePrintNameAndVersion(this.metaDataTab.name, this.metaDataTab.version).then(element => {
101 this.errorMessage = 'the package with name and version is exists';
103 this.errorMessage = ' ';
110 saveMetaDataToStore() {
111 this.packageCreationStore.changeMetaData(this.metaDataTab);