be5b30583e7be33597298bbd1ebc6d3422923b04
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / policy / policy-type / policy-type.component.ts
1 /*-
2  * ========================LICENSE_START=================================
3  * O-RAN-SC
4  * %%
5  * Copyright (C) 2021 Nordix Foundation
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
21 import { Component, Input, OnInit } from '@angular/core';
22 import { BehaviorSubject } from 'rxjs';
23 import { PolicyTypeSchema } from '@interfaces/policy.types';
24 import { PolicyService } from '@services/policy/policy.service';
25 import { PolicyTypeDataSource } from './policy-type.datasource';
26
27 class PolicyTypeInfo {
28   constructor(public type: PolicyTypeSchema) { }
29
30   isExpanded: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
31 }
32
33 @Component({
34   selector: 'nrcp-policy-type',
35   templateUrl: './policy-type.component.html',
36   styleUrls: ['./policy-type.component.scss']
37 })
38 export class PolicyTypeComponent implements OnInit {
39
40   @Input() policyTypeId: string;
41
42   isVisible: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
43
44   policyTypeInfo: PolicyTypeInfo;
45
46   constructor(private policyTypeDataSource: PolicyTypeDataSource) {
47   }
48
49   ngOnInit(): void {
50     const policyTypeSchema = this.policyTypeDataSource.getPolicyType(this.policyTypeId);
51     this.policyTypeInfo = new PolicyTypeInfo(policyTypeSchema);
52     console.log("this.policyType: ", this.policyTypeInfo);
53     this.isVisible.next(false);
54   }
55
56   public setIsVisible(status: boolean){
57     this.isVisible.next(status);
58   }
59
60   public toggleVisible() {
61     this.isVisible.next(!this.isVisible.value);
62   }
63 }