Fix Bug 2121: NG-UI uses unmaintained Chokidar version

	- Upgraded Angular from 11 to 14 version to remove chokidar
	  unmaintained version.
	- Changed linting tool tslint to eslint for angular 14 as tslint
	  is depreacted after angular 12
	- Resolved linting issues from code

Change-Id: I00e908ab651db0f080e0d18a9d1c9711f4e36b91
Signed-off-by: SANDHYA.JS <sandhya.j@tataelxsi.co.in>
diff --git a/src/app/packages/PackagesComponent.ts b/src/app/packages/PackagesComponent.ts
index eb9991d..6dcf10e 100644
--- a/src/app/packages/PackagesComponent.ts
+++ b/src/app/packages/PackagesComponent.ts
@@ -49,7 +49,9 @@
     /** Return to list NS Package List */
     public redirectToList(getURL: string): void {
         if (getURL === '/packages') {
-            this.router.navigate(['/packages/ns']).catch();
+            this.router.navigate(['/packages/ns']).catch((): void => {
+                // Catch Navigation Error
+            });
         }
     }
 }
diff --git a/src/app/packages/PackagesModule.ts b/src/app/packages/PackagesModule.ts
index e6c6628..5a8ea2e 100644
--- a/src/app/packages/PackagesModule.ts
+++ b/src/app/packages/PackagesModule.ts
@@ -117,8 +117,7 @@
     declarations: [PackagesComponent, NSPackagesComponent, VNFPackagesComponent, NetsliceTemplateComponent,
         DragDirective, ShowContentComponent, NSComposerComponent, VNFComposerComponent, EditPackagesComponent, ClonePackageComponent],
     providers: [DataService],
-    schemas: [CUSTOM_ELEMENTS_SCHEMA],
-    entryComponents: [ShowContentComponent, ClonePackageComponent]
+    schemas: [CUSTOM_ELEMENTS_SCHEMA]
 })
 /** Exporting a class @exports PackagesModule */
 export class PackagesModule {
diff --git a/src/app/packages/instantiate-net-slice-template/InstantiateNetSliceTemplateComponent.ts b/src/app/packages/instantiate-net-slice-template/InstantiateNetSliceTemplateComponent.ts
index 330edf8..fb0abda 100644
--- a/src/app/packages/instantiate-net-slice-template/InstantiateNetSliceTemplateComponent.ts
+++ b/src/app/packages/instantiate-net-slice-template/InstantiateNetSliceTemplateComponent.ts
@@ -18,6 +18,7 @@
 /**
  * @file Instantiate NS Modal Component.
  */
+import { isNullOrUndefined } from 'util';
 import { HttpHeaders } from '@angular/common/http';
 import { Component, ElementRef, Injector, OnInit, ViewChild } from '@angular/core';
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@@ -33,7 +34,6 @@
 import { NSICREATEPARAMS } from 'NSDModel';
 import { RestService } from 'RestService';
 import { SharedService } from 'SharedService';
-import { isNullOrUndefined } from 'util';
 import { VimAccountDetails } from 'VimAccountModel';
 /**
  * Creating component
@@ -193,7 +193,6 @@
       delete this.netSliceInstantiateForm.value.ssh_keys;
     } else {
       this.copySSHKey = JSON.parse(JSON.stringify(this.netSliceInstantiateForm.value.ssh_keys));
-      // tslint:disable-next-line: no-backbone-get-set-outside-model
       this.netSliceInstantiateForm.get('ssh_keys').setValue(this.copySSHKey);
     }
     if (isNullOrUndefined(this.netSliceInstantiateForm.value.config) || this.netSliceInstantiateForm.value.config === '') {
@@ -203,12 +202,14 @@
       if (validJSON) {
         this.netSliceInstantiateForm.value.config = JSON.parse(this.netSliceInstantiateForm.value.config);
         Object.keys(this.netSliceInstantiateForm.value.config).forEach((item: string) => {
+          // eslint-disable-next-line security/detect-object-injection
           this.netSliceInstantiateForm.value[item] = this.netSliceInstantiateForm.value.config[item];
         });
         delete this.netSliceInstantiateForm.value.config;
       } else {
         const getConfigJson: string = jsyaml.load(this.netSliceInstantiateForm.value.config, { json: true });
         Object.keys(getConfigJson).forEach((item: string) => {
+          // eslint-disable-next-line security/detect-object-injection
           this.netSliceInstantiateForm.value[item] = getConfigJson[item];
         });
         delete this.netSliceInstantiateForm.value.config;
@@ -225,11 +226,12 @@
         this.isLoadingResults = false;
         this.notifierService.notify('success', this.netSliceInstantiateForm.value.nsiName +
           this.translateService.instant('PAGE.NETSLICE.CREATEDSUCCESSFULLY'));
-        this.router.navigate(['/instances/netslice']).catch();
+        this.router.navigate(['/instances/netslice']).catch((): void => {
+          // Catch Navigation Error
+      });
       }, (error: ERRORDATA) => {
         this.restService.handleError(error, 'post');
         if (!isNullOrUndefined(this.copySSHKey)) {
-          // tslint:disable-next-line: no-backbone-get-set-outside-model
           this.netSliceInstantiateForm.get('ssh_keys').setValue(this.copySSHKey);
         }
         this.isLoadingResults = false;
@@ -241,7 +243,6 @@
     if (files && files.length === 1) {
       this.sharedService.getFileString(files, 'pub').then((fileContent: string): void => {
         const getSSHJson: string = jsyaml.load(fileContent, { json: true });
-        // tslint:disable-next-line: no-backbone-get-set-outside-model
         this.netSliceInstantiateForm.get('ssh_keys').setValue(getSSHJson);
       }).catch((err: string): void => {
         if (err === 'typeError') {
@@ -266,7 +267,6 @@
       if (fileFormat === 'yaml' || fileFormat === 'yml') {
         this.sharedService.getFileString(files, 'yaml').then((fileContent: string): void => {
           const getConfigJson: string = jsyaml.load(fileContent, { json: true });
-          // tslint:disable-next-line: no-backbone-get-set-outside-model
           this.netSliceInstantiateForm.get('config').setValue(JSON.stringify(getConfigJson));
         }).catch((err: string): void => {
           if (err === 'typeError') {
@@ -280,7 +280,6 @@
       } else if (fileFormat === 'json') {
         this.sharedService.getFileString(files, 'json').then((fileContent: string): void => {
           const getConfigJson: string = jsyaml.load(fileContent, { json: true });
-          // tslint:disable-next-line: no-backbone-get-set-outside-model
           this.netSliceInstantiateForm.get('config').setValue(JSON.stringify(getConfigJson));
         }).catch((err: string): void => {
           if (err === 'typeError') {
diff --git a/src/app/packages/instantiate-ns/InstantiateNsComponent.ts b/src/app/packages/instantiate-ns/InstantiateNsComponent.ts
index 1043f9a..e0798d1 100644
--- a/src/app/packages/instantiate-ns/InstantiateNsComponent.ts
+++ b/src/app/packages/instantiate-ns/InstantiateNsComponent.ts
@@ -18,6 +18,7 @@
 /**
  * @file Instantiate NS Modal Component.
  */
+import { isNullOrUndefined } from 'util';
 import { Component, ElementRef, Injector, OnInit, ViewChild } from '@angular/core';
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
 import { Router } from '@angular/router';
@@ -31,7 +32,6 @@
 import { NSCREATEPARAMS, NSData, NSDDetails } from 'NSDModel';
 import { RestService } from 'RestService';
 import { SharedService } from 'SharedService';
-import { isNullOrUndefined } from 'util';
 import { VimAccountDetails } from 'VimAccountModel';
 
 /**
@@ -186,7 +186,6 @@
       delete this.instantiateForm.value.ssh_keys;
     } else {
       this.copySSHKey = JSON.parse(JSON.stringify(this.instantiateForm.value.ssh_keys));
-      // tslint:disable-next-line: no-backbone-get-set-outside-model
       this.instantiateForm.get('ssh_keys').setValue([this.copySSHKey]);
     }
     if (isNullOrUndefined(this.instantiateForm.value.config) || this.instantiateForm.value.config === '') {
@@ -196,12 +195,14 @@
       if (validJSON) {
         this.instantiateForm.value.config = JSON.parse(this.instantiateForm.value.config);
         Object.keys(this.instantiateForm.value.config).forEach((item: string) => {
+          // eslint-disable-next-line security/detect-object-injection
           this.instantiateForm.value[item] = this.instantiateForm.value.config[item];
         });
         delete this.instantiateForm.value.config;
       } else {
         const getConfigJson: string = jsyaml.load(this.instantiateForm.value.config, { json: true });
         Object.keys(getConfigJson).forEach((item: string) => {
+          // eslint-disable-next-line security/detect-object-injection
           this.instantiateForm.value[item] = getConfigJson[item];
         });
         delete this.instantiateForm.value.config;
@@ -215,12 +216,13 @@
       this.activeModal.close(modalData);
       this.notifierService.notify('success', this.instantiateForm.value.nsName +
         this.translateService.instant('PAGE.NSINSTANCE.CREATEDSUCCESSFULLY'));
-      this.router.navigate(['/instances/ns']).catch();
+      this.router.navigate(['/instances/ns']).catch((): void => {
+        // Catch Navigation Error
+    });
     }, (error: ERRORDATA) => {
       this.isLoadingResults = false;
       this.restService.handleError(error, 'post');
       if (!isNullOrUndefined(this.copySSHKey)) {
-        // tslint:disable-next-line: no-backbone-get-set-outside-model
         this.instantiateForm.get('ssh_keys').setValue(this.copySSHKey);
       }
     });
@@ -231,7 +233,6 @@
     if (files && files.length === 1) {
       this.sharedService.getFileString(files, 'pub').then((fileContent: string): void => {
         const getSSHJson: string = jsyaml.load(fileContent, { json: true });
-        // tslint:disable-next-line: no-backbone-get-set-outside-model
         this.instantiateForm.get('ssh_keys').setValue(getSSHJson);
       }).catch((err: string): void => {
         if (err === 'typeError') {
@@ -255,7 +256,6 @@
       const fileFormat: string = this.sharedService.fetchFileExtension(files).toLocaleLowerCase();
       if (fileFormat === 'yaml' || fileFormat === 'yml') {
         this.sharedService.getFileString(files, 'yaml').then((fileContent: string): void => {
-          // tslint:disable-next-line: no-backbone-get-set-outside-model
           this.instantiateForm.get('config').setValue(fileContent);
         }).catch((err: string): void => {
           if (err === 'typeError') {
@@ -269,7 +269,6 @@
       } else if (fileFormat === 'json') {
         this.sharedService.getFileString(files, 'json').then((fileContent: string): void => {
           const getConfigJson: string = jsyaml.load(fileContent, { json: true });
-          // tslint:disable-next-line: no-backbone-get-set-outside-model
           this.instantiateForm.get('config').setValue(JSON.stringify(getConfigJson));
         }).catch((err: string): void => {
           if (err === 'typeError') {
diff --git a/src/app/packages/ns-packages/NSPackagesComponent.ts b/src/app/packages/ns-packages/NSPackagesComponent.ts
index 7302ea4..8960497 100644
--- a/src/app/packages/ns-packages/NSPackagesComponent.ts
+++ b/src/app/packages/ns-packages/NSPackagesComponent.ts
@@ -246,6 +246,7 @@
     }
     /** Handle compose new ns package method  @public */
     public composeNSPackage(): void {
+        // eslint-disable-next-line security/detect-non-literal-fs-filename
         this.modalService.open(ComposePackages, { backdrop: 'static' }).componentInstance.params = { page: 'ns-package' };
     }
 
diff --git a/src/app/packages/ns-packages/ns-composer/NSComposerComponent.ts b/src/app/packages/ns-packages/ns-composer/NSComposerComponent.ts
index d771123..8d28f3a 100644
--- a/src/app/packages/ns-packages/ns-composer/NSComposerComponent.ts
+++ b/src/app/packages/ns-packages/ns-composer/NSComposerComponent.ts
@@ -18,6 +18,7 @@
 /**
  * @file NS Compose Component
  */
+import { isNullOrUndefined } from 'util';
 import { HttpHeaders } from '@angular/common/http';
 import { Component, ElementRef, Injector, ViewChild, ViewEncapsulation } from '@angular/core';
 import { ActivatedRoute, Router } from '@angular/router';
@@ -43,7 +44,6 @@
 } from 'NSDModel';
 import { RestService } from 'RestService';
 import { SharedService } from 'SharedService';
-import { isNullOrUndefined } from 'util';
 import { VNFD, VNFData } from 'VNFDModel';
 
 /**
@@ -124,31 +124,31 @@
   /** Contains sidebar open status @public */
   public sideBarOpened: boolean = false;
   /** Contains SVG attributes @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private svg: any;
   /** Contains the Drag line */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private dragLine: any;
   /** Contains VL node @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private vlNode: any;
   /** Contains VNFD node @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private vnfdnode: any;
   /** Contains CP node @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private cpnode: any;
   /** Rendered nodes represent VL @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private gvlNode: any;
   /** Rendered nodes represent VL @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private gvnfdNode: any;
   /** Rendered nodes represent VL @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private gcpNode: any;
   /** Contains forced node animations @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private force: any;
   /** Contains all the selected node @private */
   private selectedNode: COMPOSERNODES[] = [];
@@ -161,7 +161,7 @@
   /** Contains the VNFD copy @private */
   private vnfdCopy: string;
   /** Contains path information of the node */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private path: any;
   /** Contains the node information @private */
   private nodes: COMPOSERNODES[] = [];
@@ -209,7 +209,6 @@
   }
   /** Lifecyle Hooks the trigger before component is instantiated @public */
   public ngOnInit(): void {
-    // tslint:disable-next-line:no-backbone-get-set-outside-model
     this.identifier = this.activatedRoute.snapshot.paramMap.get('id');
     this.generateData();
     this.headers = new HttpHeaders({
@@ -219,7 +218,7 @@
     });
   }
   /** Events handles at drag on D3 region @public */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
   public drag(ev: any): void {
     if (ev.target.id === 'vl') {
       ev.dataTransfer.setData('text', ev.target.id);
@@ -385,6 +384,7 @@
   }
   /** Show Info @public */
   public showInfo(): void {
+    // eslint-disable-next-line security/detect-non-literal-fs-filename
     const modalRef: NgbModalRef = this.modalService.open(ConfirmationTopologyComponent, { backdrop: 'static' });
     modalRef.componentInstance.topologyType = 'Info';
     modalRef.componentInstance.topologytitle = this.translateService.instant('PAGE.TOPOLOGY.INFO');
@@ -392,7 +392,9 @@
       if (result) {
         // empty
       }
-    }).catch();
+    }).catch((): void => {
+      // Catch Navigation Error
+  });
   }
   /** Event to freeze the animation @public */
   public onFreeze(): void {
@@ -459,7 +461,9 @@
       this.separateAndCreatenode();
     }, (error: ERRORDATA): void => {
       if (error.error.status === HttpStatus.NOT_FOUND || error.error.status === HttpStatus.UNAUTHORIZED) {
-        this.router.navigateByUrl('404', { skipLocationChange: true }).catch();
+        this.router.navigateByUrl('404', { skipLocationChange: true }).catch((): void => {
+          // Catch Navigation Error
+      });
       } else {
         this.restService.handleError(error, 'get');
       }
@@ -535,16 +539,20 @@
       resultVLC['constituent-cpd-id'].forEach((resultCCI: CCI): void => {
         this.vnfdCopy = resultVLC['virtual-link-profile-id'];
         this.connectionPoint = resVNF.id + ':' + resultCCI['constituent-base-element-id'] + index + ':' + resultCCI['constituent-cpd-id'];
-        const connectionPointPos: number = this.nodes.map((e: COMPOSERNODES): string => { return e.id; }).indexOf(this.connectionPoint);
-        const nsdPos: number = this.nodes.map((e: COMPOSERNODES): string => { return e.id; }).indexOf(this.nsdCopy);
-        const vnfdPos: number = this.nodes.map((e: COMPOSERNODES): string => { return e.id; }).indexOf(this.vnfdCopy);
+        const connectionPointPos: number = this.nodes.map((e: COMPOSERNODES): string => e.id).indexOf(this.connectionPoint);
+        const nsdPos: number = this.nodes.map((e: COMPOSERNODES): string => e.id).indexOf(this.nsdCopy);
+        const vnfdPos: number = this.nodes.map((e: COMPOSERNODES): string => e.id).indexOf(this.vnfdCopy);
         this.links.push(
           {
+            // eslint-disable-next-line security/detect-object-injection
             source: this.nodes[connectionPointPos],
+            // eslint-disable-next-line security/detect-object-injection
             target: this.nodes[nsdPos]
           },
           {
+            // eslint-disable-next-line security/detect-object-injection
             source: this.nodes[connectionPointPos],
+            // eslint-disable-next-line security/detect-object-injection
             target: this.nodes[vnfdPos]
           });
       });
@@ -681,7 +689,7 @@
       .attr('x', graphContainerAttr.imageX)
       .attr('y', graphContainerAttr.imageY)
       .call(this.onDragDrop())
-      .attr('id', (d: COMPOSERNODES): string => { return d.selectorId; })
+      .attr('id', (d: COMPOSERNODES): string => d.selectorId)
       .attr('class', 'node').attr('width', graphContainerAttr.nodeWidth).attr('height', graphContainerAttr.nodeHeight)
       .attr('xlink:href', 'assets/images/VL.svg')
       .on('mousedown', (d: COMPOSERNODES): void => { this.mouseDown(d); })
@@ -703,7 +711,7 @@
       .attr('x', graphContainerAttr.imageX)
       .attr('y', graphContainerAttr.imageY)
       .call(this.onDragDrop())
-      .attr('id', (d: COMPOSERNODES): string => { return d.selectorId; })
+      .attr('id', (d: COMPOSERNODES): string => d.selectorId)
       .attr('class', 'node').attr('width', graphContainerAttr.nodeWidth).attr('height', graphContainerAttr.nodeHeight)
       .attr('xlink:href', 'assets/images/VNFD.svg')
       .on('mousedown', (d: COMPOSERNODES): void => { this.mouseDown(d); })
@@ -725,7 +733,7 @@
       .attr('x', graphContainerAttr.imageX)
       .attr('y', graphContainerAttr.imageY)
       .call(this.onDragDrop())
-      .attr('id', (d: COMPOSERNODES): string => { return d.selectorId; })
+      .attr('id', (d: COMPOSERNODES): string => d.selectorId)
       .attr('class', 'node').attr('width', graphContainerAttr.nodeWidth).attr('height', graphContainerAttr.nodeHeight)
       .attr('xlink:href', 'assets/images/CP.svg')
       .on('mousedown', (d: COMPOSERNODES): void => { this.mouseDown(d); })
@@ -767,6 +775,7 @@
       });
     }
     if (this.vlName !== undefined && this.setVnfdName !== undefined && this.setVnfdConnectionPointRef !== undefined) {
+      // eslint-disable-next-line security/detect-non-literal-fs-filename
       const modalRef: NgbModalRef = this.modalService.open(ConfirmationTopologyComponent, { backdrop: 'static' });
       modalRef.componentInstance.topologyType = 'Add';
       modalRef.componentInstance.cpDetails = this.getVNFSelectedData['ext-cpd'];
@@ -785,7 +794,9 @@
         } else {
           this.deselectPath();
         }
-      }).catch();
+      }).catch((): void => {
+        // Catch Navigation Error
+    });
     } else {
       this.deselectPath();
       this.notifierService.notify('error', this.translateService.instant('ERROR'));
@@ -819,6 +830,7 @@
   }
   /** Events handles when mousedown click it will capture the selected node data @private */
   private mouseDown(d: COMPOSERNODES): void {
+    // eslint-disable-next-line deprecation/deprecation
     event.preventDefault();
     if (d3.event.ctrlKey) { return; }
     if (d3.event.shiftKey) {
@@ -895,12 +907,12 @@
     this.isShowCPDetails = cpDetails;
   }
   /** Events handles when Shift Click to perform create cp @private */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private singleClick(nodeSelected: any, d: COMPOSERNODES): void {
     this.selectNodeExclusive(nodeSelected, d);
   }
   /** Selected nodes @private */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private selectNodeExclusive(nodeSeleced: any, d: COMPOSERNODES): void {
     const alreadyIsActive: boolean = nodeSeleced.select('#' + d.selectorId).classed(this.activeClass);
     this.deselectAllNodes();
@@ -949,6 +961,7 @@
   }
   /** Get confirmation Before Deleting the Link in Topology @private */
   private getDeleteLinkConfirmation(d: Tick): void {
+    // eslint-disable-next-line security/detect-non-literal-fs-filename
     const modalRef: NgbModalRef = this.modalService.open(ConfirmationTopologyComponent, { backdrop: 'static' });
     modalRef.componentInstance.topologyType = 'Delete';
     modalRef.componentInstance.topologyname = this.translateService.instant('PAGE.TOPOLOGY.LINK') + ' - ' + d.source.id;
@@ -957,7 +970,9 @@
       if (result) {
         this.doubleClickLink(d);
       }
-    }).catch();
+    }).catch((): void => {
+      // Catch Navigation Error
+  });
   }
   /** Events handles when Double Click to Delete the link @private */
   private doubleClickLink(d: Tick): void {
@@ -995,6 +1010,7 @@
   }
   /** Get confirmation Before Deleting the Node in Topology @private */
   private getDeleteConfirmation(d: COMPOSERNODES): void {
+    // eslint-disable-next-line security/detect-non-literal-fs-filename
     const modalRef: NgbModalRef = this.modalService.open(ConfirmationTopologyComponent, { backdrop: 'static' });
     modalRef.componentInstance.topologyType = 'Delete';
     modalRef.componentInstance.topologyname = d.name;
@@ -1009,7 +1025,9 @@
       if (result) {
         this.doubleClick(d);
       }
-    }).catch();
+    }).catch((): void => {
+      // Catch Navigation Error
+  });
   }
   /** Events handles when Double Click to Delete @private */
   private doubleClick(d: COMPOSERNODES): void {
@@ -1018,7 +1036,7 @@
       if (res.id === d.id) {
         if (deletedNode.type === 'vld') {
           /** Remove the virtual-link-desc related to VL */
-          const pos: number = this.nsData['virtual-link-desc'].map((e: VLD): string => { return e.id; }).indexOf(d.id);
+          const pos: number = this.nsData['virtual-link-desc'].map((e: VLD): string => e.id).indexOf(d.id);
           this.nsData['virtual-link-desc'].splice(pos, 1);
           /** Remove the virtual-link-connectivity between VL and VNFD */
           this.nsData.df.forEach((resultDF: DF): void => {
@@ -1032,6 +1050,7 @@
                 if (getVLArray.length > 0) {
                   getVLArray.forEach((removeIndex: number): void => {
                     const index: string = removeIndex.toString();
+                    // eslint-disable-next-line security/detect-object-injection
                     resVNF['virtual-link-connectivity'].splice(resVNF['virtual-link-connectivity'][index], 1);
                   });
                 }
@@ -1043,19 +1062,13 @@
           this.nsData.df.forEach((resultDF: DF): void => {
             if (resultDF['vnf-profile'] !== undefined) {
               /** Remove the vnf-profile related to VNFD */
-              const posVNF: number = resultDF['vnf-profile'].findIndex((e: VNFPROFILE): boolean => {
-                return e['vnfd-id'] === d.name && e.id === d.nodeIndex;
-              });
+              const posVNF: number = resultDF['vnf-profile'].findIndex((e: VNFPROFILE): boolean => e['vnfd-id'] === d.name && e.id === d.nodeIndex);
               resultDF['vnf-profile'].splice(posVNF, 1);
               /** Check the VNFD exists in any vnf-profile */
-              const isVNFDExists: boolean = resultDF['vnf-profile'].some((e: VNFPROFILE): boolean => {
-                return e['vnfd-id'] === d.name;
-              });
+              const isVNFDExists: boolean = resultDF['vnf-profile'].some((e: VNFPROFILE): boolean => e['vnfd-id'] === d.name);
               /** If VNFD not exists in the vnf-profile remove from vnfd-id */
               if (!isVNFDExists) {
-                const posVNFD: number = this.nsData['vnfd-id'].findIndex((e: string): boolean => {
-                  return e === d.name;
-                });
+                const posVNFD: number = this.nsData['vnfd-id'].findIndex((e: string): boolean => e === d.name);
                 this.nsData['vnfd-id'].splice(posVNFD, 1);
               }
             }
@@ -1090,7 +1103,7 @@
     });
   }
   /** drag event @private */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private onDragDrop(): any {
     return d3.drag().filter(this.dragFilter)
       .on('start', this.dragstarted)
diff --git a/src/app/packages/ns-packages/vnf-composer/VNFComposerComponent.ts b/src/app/packages/ns-packages/vnf-composer/VNFComposerComponent.ts
index 55c5070..eabd2b7 100644
--- a/src/app/packages/ns-packages/vnf-composer/VNFComposerComponent.ts
+++ b/src/app/packages/ns-packages/vnf-composer/VNFComposerComponent.ts
@@ -18,6 +18,7 @@
 /**
  * @file VNFComposerComponent
  */
+ import { isNullOrUndefined } from 'util';
 import { HttpHeaders } from '@angular/common/http';
 import { Component, ElementRef, Injector, ViewChild, ViewEncapsulation } from '@angular/core';
 import { ActivatedRoute, Router } from '@angular/router';
@@ -73,30 +74,30 @@
   /** Contains sidebar open status @public */
   public sideBarOpened: boolean = false;
   /** Contains SVG attributes @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private svg: any;
   /** Contains forced node animations @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private force: any;
   /** Contains the Drag line */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private dragLine: any;
   /** Contains id of the node @private */
   private identifier: string;
   /** Contains path information of the node */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private path: any;
   /** Contains node network @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private network: any;
   /** Contains node network @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private virutualDeploymentUnit: any;
   /** Contains node connectionPoint @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private connectionPoint: any;
   /** Contains node intConnectionPoint @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private intConnectionPoint: any;
   /** Contains the node information @private */
   private nodes: COMPOSERNODES[] = [];
@@ -117,16 +118,16 @@
   /** Contains tranlsate instance @private */
   private translateService: TranslateService;
   /** Rendered nodes represent network @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private gNetwork: any;
   /** Rendered nodes represent VDU @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private gVirutualDeploymentUnit: any;
   /** Rendered nodes represent connection point @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private gConnectionPoint: any;
   /** Rendered nodes represent internal connection point @private */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private gIntConnectionPoint: any;
   /** Contains all the information about VNF Details @private */
   private vnfdPackageDetails: VNFD;
@@ -172,7 +173,6 @@
    * Lifecyle Hooks the trigger before component is instantiate
    */
   public ngOnInit(): void {
-    // tslint:disable-next-line:no-backbone-get-set-outside-model
     this.identifier = this.activatedRoute.snapshot.paramMap.get('id');
     this.generateData();
     this.headers = new HttpHeaders({
@@ -208,7 +208,9 @@
       }, (error: ERRORDATA): void => {
         error.error = typeof error.error === 'string' ? jsyaml.load(error.error) : error.error;
         if (error.error.status === HttpStatus.NOT_FOUND || error.error.status === HttpStatus.UNAUTHORIZED) {
-          this.router.navigateByUrl('404', { skipLocationChange: true }).catch();
+          this.router.navigateByUrl('404', { skipLocationChange: true }).catch((): void => {
+            // Catch Navigation Error
+        });
         } else {
           this.restService.handleError(error, 'get');
         }
@@ -225,7 +227,7 @@
     this.vnfdInfo.provider = vnfdPackageDetails.provider;
   }
   /** Events handles at drag on D3 region @public */
-  // tslint:disable-next-line:no-any
+  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
   public drag(ev: any): void {
     ev.dataTransfer.setData('text', ev.target.id);
   }
@@ -409,10 +411,13 @@
   }
   /** Edit topology @public */
   public onEdit(): void {
-    this.router.navigate(['/packages/vnf/edit/', this.identifier]).catch();
+    this.router.navigate(['/packages/vnf/edit/', this.identifier]).catch((): void => {
+      // Catch Navigation Error
+  });
   }
   /** Show Info @public */
   public showInfo(): void {
+    // eslint-disable-next-line security/detect-non-literal-fs-filename
     const modalRef: NgbModalRef = this.modalService.open(ConfirmationTopologyComponent, { backdrop: 'static' });
     modalRef.componentInstance.topologyType = 'Info';
     modalRef.componentInstance.topologytitle = this.translateService.instant('PAGE.TOPOLOGY.INFO');
@@ -420,7 +425,9 @@
       if (result) {
         // empty
       }
-    }).catch();
+    }).catch((): void => {
+      // Catch Navigation Error
+  });
   }
   /** Event to freeze the animation @public */
   public onFreeze(): void {
@@ -562,7 +569,7 @@
       .attr('x', graphContainerAttr.imageX)
       .attr('y', graphContainerAttr.imageY)
       .call(this.onDragDrop())
-      .attr('id', (d: COMPOSERNODES): string => { return d.id; })
+      .attr('id', (d: COMPOSERNODES): string => d.id)
       .attr('class', 'node').attr('width', graphContainerAttr.nodeWidth).attr('height', graphContainerAttr.nodeHeight)
       .attr('xlink:href', 'assets/images/INTVL.svg')
       .on('mousedown', (d: COMPOSERNODES): void => { this.mouseDown(d); })
@@ -584,7 +591,7 @@
       .attr('x', graphContainerAttr.imageX)
       .attr('y', graphContainerAttr.imageY)
       .call(this.onDragDrop())
-      .attr('id', (d: COMPOSERNODES): string => { return d.id; })
+      .attr('id', (d: COMPOSERNODES): string => d.id)
       .attr('class', 'node').attr('width', graphContainerAttr.nodeWidth).attr('height', graphContainerAttr.nodeHeight)
       .attr('xlink:href', 'assets/images/VDU.svg')
       .on('mousedown', (d: COMPOSERNODES): void => { this.mouseDown(d); })
@@ -606,7 +613,7 @@
       .attr('x', graphContainerAttr.imageX)
       .attr('y', graphContainerAttr.imageY)
       .call(this.onDragDrop())
-      .attr('id', (d: COMPOSERNODES): string => { return d.id; })
+      .attr('id', (d: COMPOSERNODES): string => d.id)
       .attr('class', 'node').attr('width', graphContainerAttr.nodeWidth).attr('height', graphContainerAttr.nodeHeight)
       .attr('xlink:href', 'assets/images/CP-VNF.svg')
       .on('mousedown', (d: COMPOSERNODES): void => { this.mouseDown(d); })
@@ -628,7 +635,7 @@
       .attr('x', graphContainerAttr.imageX)
       .attr('y', graphContainerAttr.imageY)
       .call(this.onDragDrop())
-      .attr('id', (d: COMPOSERNODES): string => { return d.id; })
+      .attr('id', (d: COMPOSERNODES): string => d.id)
       .attr('class', 'node').attr('width', graphContainerAttr.nodeWidth).attr('height', graphContainerAttr.nodeHeight)
       .attr('xlink:href', 'assets/images/INTCP.svg')
       .on('mousedown', (d: COMPOSERNODES): void => { this.mouseDown(d); })
@@ -716,6 +723,7 @@
   }
   /** Events handles when mousedown click it will capture the selected node data @private */
   private mouseDown(d: COMPOSERNODES): void {
+    // eslint-disable-next-line deprecation/deprecation
     event.preventDefault();
     if (d3.event.ctrlKey) { return; }
     if (d3.event.shiftKey) {
@@ -828,6 +836,7 @@
                     }
                   ]
                 });
+                // eslint-disable-next-line security/detect-object-injection
                 this.vnfdPackageDetails['ext-cpd'][index] = {
                   id: extcpd.id,
                   'int-cpd': {
@@ -882,7 +891,7 @@
     this.mouseupNode = null;
   }
   /** drag event @private */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private onDragDrop(): any {
     return d3.drag().filter(this.dragFilter)
       .on('start', this.dragstarted)
@@ -915,12 +924,13 @@
     this.dragLine.classed('hidden', true).attr('d', 'M0,0L0,0');
   }
   /** Events handles when Shift Click to perform create cp @private */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private singleClick(nodeSelected: any, d: COMPOSERNODES): void {
     this.selectedNode(nodeSelected, d);
   }
   /** Get confirmation Before Deleting the Node in Topology @private */
   private getDeleteNodeConfirmation(d: COMPOSERNODES): void {
+    // eslint-disable-next-line security/detect-non-literal-fs-filename
     const modalRef: NgbModalRef = this.modalService.open(ConfirmationTopologyComponent, { backdrop: 'static' });
     modalRef.componentInstance.topologyType = 'Delete';
     modalRef.componentInstance.topologyname = d.name;
@@ -937,11 +947,12 @@
       if (result) {
         this.deleteNode(d);
       }
-    }).catch();
+    }).catch((): void => {
+      // Catch Navigation Error
+  });
   }
   /** Delete nodes @private */
   private deleteNode(d: COMPOSERNODES): void {
-    // tslint:disable-next-line: max-func-body-length
     this.nodes.forEach((node: VNFD): void => {
       if (node.id === d.id) {
         if (d.type === 'cp') {
@@ -963,9 +974,7 @@
             if (getRelatedVDUCPD !== undefined && getRelatedVDUID !== undefined) {
               this.vnfdPackageDetails.vdu.forEach((vdu: VDU): void => {
                 if (vdu.id === getRelatedVDUID) {
-                  const posINTCPD: number = vdu['int-cpd'].findIndex((intCPD: VDUINTCPD): boolean => {
-                    return intCPD.id === getRelatedVDUCPD;
-                  });
+                  const posINTCPD: number = vdu['int-cpd'].findIndex((intCPD: VDUINTCPD): boolean => intCPD.id === getRelatedVDUCPD);
                   if (posINTCPD !== -1) {
                     vdu['int-cpd'].splice(posINTCPD, 1);
                   }
@@ -975,26 +984,20 @@
           }
         } else if (d.type === 'intcp') {
           this.vnfdPackageDetails.vdu.forEach((vdu: VDU): void => {
-            const posINTCPD: number = vdu['int-cpd'].findIndex((intCPD: VDUINTCPD): boolean => {
-              return intCPD.id === d.id;
-            });
+            const posINTCPD: number = vdu['int-cpd'].findIndex((intCPD: VDUINTCPD): boolean => intCPD.id === d.id);
             if (posINTCPD !== -1) {
               vdu['int-cpd'].splice(posINTCPD, 1);
             }
           });
         } else if (d.type === 'intvl') {
-          const posINTVLD: number = this.vnfdPackageDetails['int-virtual-link-desc'].findIndex((intVLD: IVLD): boolean => {
-            return intVLD.id === d.id;
-          });
+          const posINTVLD: number = this.vnfdPackageDetails['int-virtual-link-desc'].findIndex((intVLD: IVLD): boolean => intVLD.id === d.id);
           if (posINTVLD !== -1) {
             this.vnfdPackageDetails['int-virtual-link-desc'].splice(posINTVLD, 1);
           }
           if (this.vnfdPackageDetails.vdu !== undefined) {
             this.vnfdPackageDetails.vdu.forEach((vduDetails: VDU): void => {
               if (vduDetails['int-cpd'] !== undefined) {
-                const newVDUintCPDArray: VDUINTCPD[] = vduDetails['int-cpd'].filter((item: VDUINTCPD): boolean => {
-                  return item['int-virtual-link-desc'] !== undefined ? item['int-virtual-link-desc'] !== d.id ? true : false : true;
-                });
+                const newVDUintCPDArray: VDUINTCPD[] = vduDetails['int-cpd'].filter((item: VDUINTCPD): boolean => item['int-virtual-link-desc'] !== undefined ? item['int-virtual-link-desc'] !== d.id ? true : false : true);
                 vduDetails['int-cpd'] = newVDUintCPDArray;
               }
             });
@@ -1039,7 +1042,7 @@
     this.notifierService.notify('warning', this.translateService.instant('PAGE.VNFPACKAGE.VNFCOMPOSE.YOUCANNOTDELETELINK'));
   }
   /** Selected nodes @private */
-  // tslint:disable-next-line: no-any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private selectedNode(nodeSeleced: any, d: COMPOSERNODES): void {
     const alreadyIsActive: boolean = nodeSeleced.select('#' + d.id).classed(this.activeNode);
     this.deselectAllNodes();
diff --git a/src/app/packages/vnf-packages/VNFPackagesComponent.ts b/src/app/packages/vnf-packages/VNFPackagesComponent.ts
index 8169782..fc85d71 100644
--- a/src/app/packages/vnf-packages/VNFPackagesComponent.ts
+++ b/src/app/packages/vnf-packages/VNFPackagesComponent.ts
@@ -238,6 +238,7 @@
     }
     /** Handle compose new ns package method  @public */
     public composeVNFPackage(): void {
+        // eslint-disable-next-line security/detect-non-literal-fs-filename
         this.modalService.open(ComposePackages, { backdrop: 'static' }).componentInstance.params = { page: 'vnf-package' };
     }