summaryrefslogtreecommitdiffstats
path: root/portal-FE-common/src/app/shared/plugin/plugin.component.ts
diff options
context:
space:
mode:
authorSudarshan Kumar <sudarshan.kumar@att.com>2020-01-23 17:06:22 +0530
committerSudarshan Kumar <sudarshan.kumar@att.com>2020-01-28 07:29:04 +0000
commit91e3434fc7c515416ff2da10d55acf1d2dbcde71 (patch)
treeac29f6ea8a20d06255c47ebdb8e4e2692621c0ab /portal-FE-common/src/app/shared/plugin/plugin.component.ts
parent16c3ddbf7f9f644adc23b8f834e6453c5260ada6 (diff)
Adding new components with portal-FE-common
added layout, admins, functional-menu, portal-admins, plugins components along with helpers class, models, pipes and dependent angular services. Issue-ID: PORTAL-795 Change-Id: I8e9771fcee5d0e58c4a48711c943761f29ae48b8 Signed-off-by: Sudarshan Kumar <sudarshan.kumar@att.com>
Diffstat (limited to 'portal-FE-common/src/app/shared/plugin/plugin.component.ts')
-rw-r--r--portal-FE-common/src/app/shared/plugin/plugin.component.ts75
1 files changed, 75 insertions, 0 deletions
diff --git a/portal-FE-common/src/app/shared/plugin/plugin.component.ts b/portal-FE-common/src/app/shared/plugin/plugin.component.ts
new file mode 100644
index 00000000..b64ea7c9
--- /dev/null
+++ b/portal-FE-common/src/app/shared/plugin/plugin.component.ts
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+
+import {
+ Component,
+ Injector,
+ OnInit,
+ ViewChild,
+ ViewContainerRef
+} from '@angular/core';
+import { PluginLoaderService } from './plugin-loader/plugin-loader.service';
+
+@Component({
+ selector: 'app-plugin',
+ templateUrl: './plugin.component.html',
+ styleUrls: ['./plugin.component.scss']
+})
+export class PluginComponent implements OnInit {
+ @ViewChild('targetRef', { read: ViewContainerRef }) vcRef: ViewContainerRef;
+
+ constructor(
+ private injector: Injector,
+ private pluginLoader: PluginLoaderService
+ ) {}
+
+ ngOnInit() {
+ //this.loadPlugin('plugin1');
+ }
+
+ loadPlugin(pluginName: string) {
+ this.pluginLoader.load(pluginName).then(moduleFactory => {
+ const moduleRef = moduleFactory.create(this.injector);
+ const entryComponent = (moduleFactory.moduleType as any).entry;
+ const compFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(
+ entryComponent
+ );
+ this.vcRef.createComponent(compFactory);
+ });
+ }
+}