enable 2-way binding between metadata and editor tabs
[ccsdk/cds.git] / cds-ui / designer-client / src / app / modules / feature-modules / resource-dictionary / resource-dictionary-creation / dictionary-editor / dictionary-editor.component.ts
1 /*
2 * ============LICENSE_START=======================================================
3 * ONAP : CDS
4 * ================================================================================
5 * Copyright (C) 2020 TechMahindra
6 *=================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 *     http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
19 */
20 import { JsonPipe } from '@angular/common';
21 import { Component, OnInit } from '@angular/core';
22 import { DictionaryCreationService } from '../dictionary-creation.service';
23 import { DictionaryCreationStore } from '../dictionary-creation.store';
24
25 @Component({
26   selector: 'app-dictionary-editor',
27   templateUrl: './dictionary-editor.component.html',
28   styleUrls: ['./dictionary-editor.component.css']
29 })
30 export class DictionaryEditorComponent implements OnInit {
31   text = '';
32   constructor(
33     private dictionaryStore: DictionaryCreationStore,
34     private dictionaryService: DictionaryCreationService,
35     private pipe: JsonPipe
36   ) {
37   }
38
39   ngOnInit() {
40     this.dictionaryStore.state$.subscribe(element => {
41       if (element && element.metaData) {
42         this.text = this.pipe.transform(element.metaData);
43       }
44     });
45   }
46
47   textChanged(event) {
48     console.log(JSON.parse(event));
49     this.dictionaryStore.changeMetaData(JSON.parse(event));
50   }
51 }
52