Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/browserslist
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/browserslist	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/browserslist	(nonexistent)
@@ -1,11 +0,0 @@
-# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
-# For additional information regarding the format and rule options, please see:
-# https://github.com/browserslist/browserslist#queries
-#
-# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed
-
-> 0.5%
-last 2 versions
-Firefox ESR
-not dead
-not IE 9-11
\ No newline at end of file
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/angular.json
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/angular.json	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/angular.json	(revision 61145)
@@ -35,7 +35,8 @@
         "build": {
           "builder": "@angular-devkit/build-angular:browser",
           "options": {
-            "outputPath": "dist/monitor-dashboard",
+            "aot": true,
+            "outputPath": "dist/monitor-dashboard/browser",
             "index": "src/index.html",
             "main": "src/main.ts",
             "polyfills": "src/polyfills.ts",
@@ -78,6 +79,10 @@
                   "type": "initial",
                   "maximumWarning": "2mb",
                   "maximumError": "5mb"
+                },
+                {
+                  "type": "anyComponentStyle",
+                  "maximumWarning": "6kb"
                 }
               ]
             }
@@ -128,6 +133,53 @@
               "**/node_modules/**"
             ]
           }
+        },
+        "server": {
+          "builder": "@angular-devkit/build-angular:server",
+          "options": {
+            "outputPath": "dist/monitor-dashboard/server",
+            "main": "server.ts",
+            "tsConfig": "src/tsconfig.server.json"
+          },
+          "configurations": {
+            "production": {
+              "outputHashing": "media",
+              "fileReplacements": [
+                {
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.prod.ts"
+                }
+              ],
+              "sourceMap": false,
+              "optimization": true
+            }
+          }
+        },
+        "serve-ssr": {
+          "builder": "@nguniversal/builders:ssr-dev-server",
+          "options": {
+            "browserTarget": "monitor-dashboard:build",
+            "serverTarget": "monitor-dashboard:server"
+          },
+          "configurations": {
+            "production": {
+              "browserTarget": "monitor-dashboard:build:production",
+              "serverTarget": "monitor-dashboard:server:production"
+            }
+          }
+        },
+        "prerender": {
+          "builder": "@nguniversal/builders:prerender",
+          "options": {
+            "browserTarget": "monitor-dashboard:build:production",
+            "serverTarget": "monitor-dashboard:server:production",
+            "routes": [
+              "/"
+            ]
+          },
+          "configurations": {
+            "production": {}
+          }
         }
       }
     },
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/browserslist
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/browserslist	(nonexistent)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/browserslist	(revision 61145)
@@ -0,0 +1,11 @@
+# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+#
+# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed
+
+> 0.5%
+last 2 versions
+Firefox ESR
+not dead
+not IE 9-11
\ No newline at end of file
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/package.json
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/package.json	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/package.json	(revision 61145)
@@ -6,41 +6,50 @@
     "start": "ng serve --port 4600 --disable-host-check --host 0.0.0.0 --base-href /dashboard/",
     "build": "ng build",
     "test": "ng test",
-    "e2e": "ng e2e"
+    "e2e": "ng e2e",
+    "dev:ssr": "ng run monitor-dashboard:serve-ssr",
+    "serve:ssr": "node dist/monitor-dashboard/server/main.js",
+    "build:ssr": "ng build --prod && ng run monitor-dashboard:server:production",
+    "prerender": "ng run monitor-dashboard:prerender"
   },
   "private": true,
   "dependencies": {
-    "@angular/animations": "~7.2.0",
-    "@angular/cdk": "^7.2.0",
-    "@angular/common": "~7.2.0",
-    "@angular/compiler": "~7.2.0",
-    "@angular/core": "~7.2.0",
-    "@angular/forms": "~7.2.0",
-    "@angular/material": "^7.2.0",
-    "@angular/platform-browser": "~7.2.0",
-    "@angular/platform-browser-dynamic": "~7.2.0",
-    "@angular/router": "~7.2.0",
+    "@angular/animations": "~9.1.13",
+    "@angular/cdk": "^9.2.4",
+    "@angular/common": "~9.1.13",
+    "@angular/compiler": "~9.1.13",
+    "@angular/core": "~9.1.13",
+    "@angular/forms": "~9.1.13",
+    "@angular/localize": "^9.1.13",
+    "@angular/material": "^9.2.4",
+    "@angular/platform-browser": "~9.1.13",
+    "@angular/platform-browser-dynamic": "~9.1.13",
+    "@angular/platform-server": "~9.1.13",
+    "@angular/router": "~9.1.13",
+    "@nguniversal/express-engine": "^9.1.1",
     "clipboard": "^1.5.16",
     "core-js": "^2.5.4",
     "express": "^4.15.2",
     "jquery": "^3.4.1",
+    "ng-recaptcha": "^5.0.0",
+    "ng2-ckeditor": "1.2.9",
+    "rxjs": "^6.5.1",
     "ts-md5": "^1.2.0",
-    "rxjs": "^6.5.1",
-    "ng-recaptcha": "^5.0.0",
-    "zone.js": "^0.8.26",
-    "ng2-ckeditor": "1.1.9"
+    "tslib": "^1.10.0",
+    "zone.js": "~0.10.2"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "~0.13.0",
-    "@angular/cli": "~7.3.10",
-    "@angular/compiler-cli": "~7.2.0",
-    "@angular/language-service": "~7.2.0",
+    "@angular-devkit/build-angular": "~0.901.15",
+    "@angular/cli": "~9.1.15",
+    "@angular/compiler-cli": "~9.1.13",
+    "@angular/language-service": "~9.1.13",
+    "@nguniversal/builders": "^9.1.1",
     "@types/express": "^4.17.0",
     "@types/compression": "^1.7.0",
-    "@types/node": "~8.9.4",
+    "@types/node": "^12.11.1",
     "@types/jasmine": "~2.8.8",
     "@types/jasminewd2": "~2.0.3",
-    "codelyzer": "~4.5.0",
+    "codelyzer": "^5.1.2",
     "jasmine-core": "~2.99.1",
     "jasmine-spec-reporter": "~4.2.1",
     "karma": "~4.0.0",
@@ -50,6 +59,6 @@
     "karma-jasmine-html-reporter": "^0.2.2",
     "protractor": "~5.4.0",
     "ts-node": "~7.0.0",
-    "typescript": "~3.2.2"
+    "typescript": "~3.8.3"
   }
 }
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/tsconfig.json
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/tsconfig.json	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/tsconfig.json	(revision 61145)
@@ -2,15 +2,16 @@
   "compileOnSave": false,
   "compilerOptions": {
     "baseUrl": "./",
+    "downlevelIteration": true,
     "outDir": "./dist/out-tsc",
     "sourceMap": true,
     "declaration": false,
-    "module": "es2015",
+    "module": "esnext",
     "moduleResolution": "node",
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "importHelpers": true,
-    "target": "es5",
+    "target": "es2015",
     "typeRoots": [
       "node_modules/@types"
     ],
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-tools/portal-admin-tools-routing.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-tools/portal-admin-tools-routing.module.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-tools/portal-admin-tools-routing.module.ts	(revision 61145)
@@ -3,9 +3,9 @@
 
 @NgModule({
   imports: [RouterModule.forChild([
-    {path: '', loadChildren: './admin-tools-routing.module#AdminToolsRoutingModule'},
-    {path: 'portals', loadChildren: '../openaireLibrary/dashboard/portal/portals.module#PortalsModule'},
-    {path: 'classes', loadChildren: '../openaireLibrary/dashboard/divId/divIds.module#DivIdsModule'}
+    {path: '', loadChildren: () => import('./admin-tools-routing.module').then(m => m.AdminToolsRoutingModule)},
+    {path: 'portals', loadChildren: () => import('../openaireLibrary/dashboard/portal/portals.module').then(m => m.PortalsModule)},
+    {path: 'classes', loadChildren: () => import('../openaireLibrary/dashboard/divId/divIds.module').then(m => m.DivIdsModule)}
   ])]
 })
 export class PortalAdminToolsRoutingModule {
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-tools/admin-tools-routing.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-tools/admin-tools-routing.module.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-tools/admin-tools-routing.module.ts	(revision 61145)
@@ -6,7 +6,7 @@
     RouterModule.forChild([
       {
         path: 'entities',
-        loadChildren: '../openaireLibrary/dashboard/entity/entities.module#EntitiesModule',
+        loadChildren: () => import('../openaireLibrary/dashboard/entity/entities.module').then(m => m.EntitiesModule),
         pathMatch: 'full'
       },
       /*      {
@@ -25,17 +25,17 @@
             },*/
       {
         path: 'helptexts',
-        loadChildren: '../openaireLibrary/dashboard/helpTexts/page-help-contents.module#PageHelpContentsModule',
+        loadChildren: () => import('../openaireLibrary/dashboard/helpTexts/page-help-contents.module').then(m => m.PageHelpContentsModule),
         pathMatch: 'full'
       },
       {
         path: 'helptexts/edit',
-        loadChildren: '../openaireLibrary/dashboard/helpTexts/page-help-content-form.module#PageHelpContentFormModule',
+        loadChildren: () => import('../openaireLibrary/dashboard/helpTexts/page-help-content-form.module').then(m => m.PageHelpContentFormModule),
         pathMatch: 'full'
       },
       {
         path: 'pages',
-        loadChildren: '../openaireLibrary/dashboard/page/pages.module#PagesModule',
+        loadChildren: () => import('../openaireLibrary/dashboard/page/pages.module').then(m => m.PagesModule),
         pathMatch: 'full'
       }
     ])
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/monitor/monitor-routing.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/monitor/monitor-routing.module.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/monitor/monitor-routing.module.ts	(revision 61145)
@@ -14,7 +14,7 @@
       },
       {
         path: ':stakeholder/develop',
-        loadChildren: '../develop/develop.module#DevelopModule',
+        loadChildren: () => import('../develop/develop.module').then(m => m.DevelopModule),
         canDeactivate: [PreviousRouteRecorder],
         data: {
           hasSidebar: false,
@@ -23,7 +23,7 @@
       },
       {
         path: ':stakeholder/methodology',
-        loadChildren: '../methodology/methodology.module#MethodologyModule',
+        loadChildren: () => import('../methodology/methodology.module').then(m => m.MethodologyModule),
         canDeactivate: [PreviousRouteRecorder],
         data: {
           hasSidebar: false,
@@ -32,7 +32,7 @@
       },
       {
         path: ':stakeholder/search',
-        loadChildren: '../search/search.module#SearchModule',
+        loadChildren: () => import('../search/search.module').then(m => m.SearchModule),
         canDeactivate: [PreviousRouteRecorder]
       },
       {
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app.module.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app.module.ts	(revision 61145)
@@ -37,7 +37,7 @@
     NavigationBarModule,
     BottomModule,
     CookieLawModule,
-    BrowserModule,
+    BrowserModule.withServerTransition({ appId: 'serverApp' }),
     AppRoutingModule,
     BrowserTransferStateModule,
     SideBarModule, Schema2jsonldModule, RoleVerificationModule, LoadingModule, NotificationsSidebarModule
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-stakeholder/admin-stakeholder-routing.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-stakeholder/admin-stakeholder-routing.module.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/admin-stakeholder/admin-stakeholder-routing.module.ts	(revision 61145)
@@ -5,29 +5,29 @@
   imports: [RouterModule.forChild([
     {
       path: '',
-      loadChildren: '../general/general.module#GeneralModule',
+      loadChildren: () => import('../general/general.module').then(m => m.GeneralModule),
       data: {hasAdminMenu: true},
       pathMatch: 'full'
     },
     {
       path: 'users',
-      loadChildren: '../users/users.module#UsersModule',
+      loadChildren: () => import('../users/users.module').then(m => m.UsersModule),
       data: {hasAdminMenu: true},
       pathMatch: 'full'
     },
     {
       path: 'indicators',
-      loadChildren: '../topic/topic.module#TopicModule',
+      loadChildren: () => import('../topic/topic.module').then(m => m.TopicModule),
       pathMatch: 'full'
     },
     {
       path: 'indicators/:topic',
-      loadChildren: '../topic/topic.module#TopicModule',
+      loadChildren: () => import('../topic/topic.module').then(m => m.TopicModule),
       pathMatch: 'full'
     },
     {
       path: 'admin-tools',
-      loadChildren: '../admin-tools/admin-tools-routing.module#AdminToolsRoutingModule',
+      loadChildren: () => import('../admin-tools/admin-tools-routing.module').then(m => m.AdminToolsRoutingModule),
       data: {
         hasAdminMenu: true,
         param: 'stakeholder'
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app.server.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app.server.module.ts	(nonexistent)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app.server.module.ts	(revision 61145)
@@ -0,0 +1,14 @@
+import { NgModule } from '@angular/core';
+import { ServerModule } from '@angular/platform-server';
+
+import { AppModule } from './app.module';
+import { AppComponent } from './app.component';
+
+@NgModule({
+  imports: [
+    AppModule,
+    ServerModule,
+  ],
+  bootstrap: [AppComponent],
+})
+export class AppServerModule {}
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/manageStakeholders/manageStakeholders.component.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/manageStakeholders/manageStakeholders.component.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/manageStakeholders/manageStakeholders.component.ts	(revision 61145)
@@ -54,9 +54,9 @@
    * Grid or List View
    */
   private subscriptions: any[] = [];
-  @ViewChild('editStakeholderModal') editStakeholderModal: AlertModal;
-  @ViewChild('deleteStakeholderModal') deleteStakeholderModal: AlertModal;
-  @ViewChild('editStakeholderComponent') editStakeholderComponent: EditStakeholderComponent;
+  @ViewChild('editStakeholderModal', { static: true }) editStakeholderModal: AlertModal;
+  @ViewChild('deleteStakeholderModal', { static: true }) deleteStakeholderModal: AlertModal;
+  @ViewChild('editStakeholderComponent', { static: true }) editStakeholderComponent: EditStakeholderComponent;
   
   tab: Tab = 'all';
   
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/search/search.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/search/search.module.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/search/search.module.ts	(revision 61145)
@@ -5,24 +5,24 @@
   imports: [CommonModule, RouterModule.forChild([
     // Search Pages
     { path: '', redirectTo: 'find/research-outcomes'},
-    { path: 'find/research-outcomes', loadChildren:  './searchPages/simple/searchResearchResults.module#MonitorSearchResearchResultsModule'},
-    { path: 'find/projects', loadChildren: './searchPages/simple/searchProjects.module#MonitorSearchProjectsModule'},
-    { path: 'find/dataproviders', loadChildren: './searchPages/simple/searchDataProviders.module#MonitorSearchDataProvidersModule'},
-    { path: 'find/organizations', loadChildren: './searchPages/simple/searchOrganizations.module#MonitorSearchOrganizationsModule'},
+    { path: 'find/research-outcomes', loadChildren:  () => import('./searchPages/simple/searchResearchResults.module').then(m => m.MonitorSearchResearchResultsModule)},
+    { path: 'find/projects', loadChildren: () => import('./searchPages/simple/searchProjects.module').then(m => m.MonitorSearchProjectsModule)},
+    { path: 'find/dataproviders', loadChildren: () => import('./searchPages/simple/searchDataProviders.module').then(m => m.MonitorSearchDataProvidersModule)},
+    { path: 'find/organizations', loadChildren: () => import('./searchPages/simple/searchOrganizations.module').then(m => m.MonitorSearchOrganizationsModule)},
     // Advanced Search Pages
-    { path: 'advanced/research-outcomes', loadChildren:  './searchPages/advanced/searchResearchResults.module#MonitorAdvancedSearchResearchResultsModule'},
-    { path: 'advanced/projects', loadChildren: './searchPages/advanced/searchProjects.module#MonitorAdvancedSearchProjectsModule'},
-    { path: 'advanced/dataproviders', loadChildren: './searchPages/advanced/searchDataProviders.module#MonitorAdvancedSearchDataProvidersModule'},
-    { path: 'advanced/organizations', loadChildren: './searchPages/advanced/searchOrganizations.module#MonitorAdvancedSearchOrganizationsModule'},
+    { path: 'advanced/research-outcomes', loadChildren:  () => import('./searchPages/advanced/searchResearchResults.module').then(m => m.MonitorAdvancedSearchResearchResultsModule)},
+    { path: 'advanced/projects', loadChildren: () => import('./searchPages/advanced/searchProjects.module').then(m => m.MonitorAdvancedSearchProjectsModule)},
+    { path: 'advanced/dataproviders', loadChildren: () => import('./searchPages/advanced/searchDataProviders.module').then(m => m.MonitorAdvancedSearchDataProvidersModule)},
+    { path: 'advanced/organizations', loadChildren: () => import('./searchPages/advanced/searchOrganizations.module').then(m => m.MonitorAdvancedSearchOrganizationsModule)},
     // Landing Pages
-    { path: 'result', loadChildren: './landingPages/result/libResult.module#LibResultModule'},
-    { path: 'publication', loadChildren: './landingPages/publication/libPublication.module#LibPublicationModule'},
-    { path: 'dataset', loadChildren: './landingPages/dataset/libDataset.module#LibDatasetModule'},
-    { path: 'software', loadChildren: './landingPages/software/libSoftware.module#LibSoftwareModule'},
-    { path: 'other', loadChildren: './landingPages/orp/libOrp.module#LibOrpModule'},
-    { path: 'project', loadChildren: './landingPages/project/libProject.module#LibProjectModule'},
-    { path: 'dataprovider', loadChildren: './landingPages/dataProvider/libDataProvider.module#LibDataProviderModule'},
-    { path: 'organization', loadChildren: './landingPages/organization/libOrganization.module#LibOrganizationModule'},
+    { path: 'result', loadChildren: () => import('./landingPages/result/libResult.module').then(m => m.LibResultModule)},
+    { path: 'publication', loadChildren: () => import('./landingPages/publication/libPublication.module').then(m => m.LibPublicationModule)},
+    { path: 'dataset', loadChildren: () => import('./landingPages/dataset/libDataset.module').then(m => m.LibDatasetModule)},
+    { path: 'software', loadChildren: () => import('./landingPages/software/libSoftware.module').then(m => m.LibSoftwareModule)},
+    { path: 'other', loadChildren: () => import('./landingPages/orp/libOrp.module').then(m => m.LibOrpModule)},
+    { path: 'project', loadChildren: () => import('./landingPages/project/libProject.module').then(m => m.LibProjectModule)},
+    { path: 'dataprovider', loadChildren: () => import('./landingPages/dataProvider/libDataProvider.module').then(m => m.LibDataProviderModule)},
+    { path: 'organization', loadChildren: () => import('./landingPages/organization/libOrganization.module').then(m => m.LibOrganizationModule)},
   ])]
 })
 export class SearchModule {}
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/general/edit-stakeholder/edit-stakeholder.component.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/general/edit-stakeholder/edit-stakeholder.component.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/general/edit-stakeholder/edit-stakeholder.component.ts	(revision 61145)
@@ -131,7 +131,7 @@
   public deleteCurrentPhoto: boolean = false;
   private maxsize: number = 200 * 1024;
   user: User;
-  @ViewChild('notify') notify: NotifyFormComponent;
+  @ViewChild('notify', { static: true }) notify: NotifyFormComponent;
   private notification: Notification;
   
   constructor(private fb: FormBuilder,
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/topic/topic.component.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/topic/topic.component.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/topic/topic.component.ts	(revision 61145)
@@ -59,8 +59,8 @@
    */
   public toggle: boolean = false;
   
-  @ViewChild('deleteModal') deleteModal: AlertModal;
-  @ViewChild('editModal') editModal: AlertModal;
+  @ViewChild('deleteModal', { static: true }) deleteModal: AlertModal;
+  @ViewChild('editModal', { static: true }) editModal: AlertModal;
   public elementChildrenActionOnDelete: string;
   public filters: FormGroup;
   public all: Option = {
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/topic/indicators.component.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/topic/indicators.component.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/topic/indicators.component.ts	(revision 61145)
@@ -83,14 +83,14 @@
   public numberResults: Map<string, number> = new Map<string, number>();
   private subscriptions: any[] = [];
   private urlSubscriptions: any[] = [];
-  @ViewChild('editChartModal') editChartModal: AlertModal;
-  @ViewChild('editNumberModal') editNumberModal: AlertModal;
-  @ViewChild('deleteModal') deleteModal: AlertModal;
+  @ViewChild('editChartModal', { static: true }) editChartModal: AlertModal;
+  @ViewChild('editNumberModal', { static: true }) editNumberModal: AlertModal;
+  @ViewChild('deleteModal', { static: true }) deleteModal: AlertModal;
   //@ViewChild('deleteAllModal') deleteAllModal: AlertModal;
   //@ViewChild('deleteAndDisconnectModal') deleteAndDisconnectModal: AlertModal;
   //@ViewChild('deleteChartSectionModal') deleteChartSectionModal: AlertModal;
   //@ViewChild('deleteNumberSectionModal') deleteNumberSectionModal: AlertModal;
-  @ViewChild('deleteSectionModal') deleteSectionModal: AlertModal;
+  @ViewChild('deleteSectionModal', { static: true }) deleteSectionModal: AlertModal;
   public sectionTypeToDelete: string;
   public sectionChildrenActionOnDelete: string;
   public indicatorChildrenActionOnDelete: string;
@@ -99,9 +99,9 @@
   urlParameterizedMessage = null;
   showCheckForSchemaEnhancements:boolean = false;
   private notification: Notification;
-  @ViewChild('editNumberNotify') editNumberNotify: NotifyFormComponent;
-  @ViewChild('editChartNotify') editChartNotify: NotifyFormComponent;
-  @ViewChild('deleteNotify') deleteNotify: NotifyFormComponent;
+  @ViewChild('editNumberNotify', { static: true }) editNumberNotify: NotifyFormComponent;
+  @ViewChild('editChartNotify', { static: true }) editChartNotify: NotifyFormComponent;
+  @ViewChild('deleteNotify', { static: true }) deleteNotify: NotifyFormComponent;
   constructor(private layoutService: LayoutService,
               private stakeholderService: StakeholderService,
               private statisticsService: StatisticsService,
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app-routing.module.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app-routing.module.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/app/app-routing.module.ts	(revision 61145)
@@ -8,12 +8,12 @@
 const routes: Routes = [
   {
     path: 'reload',
-    loadChildren: './reload/libReload.module#LibReloadModule',
+    loadChildren: () => import('./reload/libReload.module').then(m => m.LibReloadModule),
     data: {hasSidebar: false, hasHeader: false}
   },
   {
     path: 'user-info',
-    loadChildren: './login/libUser.module#LibUserModule',
+    loadChildren: () => import('./login/libUser.module').then(m => m.LibUserModule),
     data: {hasSidebar: false, isFrontPage: true}
   },
   {
@@ -23,31 +23,31 @@
   },
   {
     path: 'admin',
-    loadChildren: './manageStakeholders/manageStakeholders.module#ManageStakeholdersModule',
+    loadChildren: () => import('./manageStakeholders/manageStakeholders.module').then(m => m.ManageStakeholdersModule),
     data: {hasAdminMenu: true},
     canActivateChild: [LoginGuard]
   },
   {
     path: 'admin/admin-tools',
-    loadChildren: './admin-tools/portal-admin-tools-routing.module#PortalAdminToolsRoutingModule',
+    loadChildren: () => import('./admin-tools/portal-admin-tools-routing.module').then(m => m.PortalAdminToolsRoutingModule),
     canActivateChild: [AdminLoginGuard],
     data: {hasAdminMenu: true}
   },
   {
     path: 'admin/monitor/admin-tools',
-    loadChildren: './admin-tools/admin-tools-routing.module#AdminToolsRoutingModule',
+    loadChildren: () => import('./admin-tools/admin-tools-routing.module').then(m => m.AdminToolsRoutingModule),
     canActivateChild: [AdminLoginGuard],
     data: {hasAdminMenu: true, portal: 'monitor'}
   },
   {
     path: 'admin/:stakeholder',
-    loadChildren: './admin-stakeholder/admin-stakeholder-routing.module#AdminStakeholderRoutingModule',
+    loadChildren: () => import('./admin-stakeholder/admin-stakeholder-routing.module').then(m => m.AdminStakeholderRoutingModule),
     canActivateChild: [AdminDashboardGuard]
   },
-  {path: 'theme', loadChildren: './openaireLibrary/utils/theme/theme.module#ThemeModule'},
+  {path: 'theme', loadChildren: () => import('./openaireLibrary/utils/theme/theme.module').then(m => m.ThemeModule)},
   {
     path: '',
-    loadChildren: './monitor/monitor.module#MonitorModule',
+    loadChildren: () => import('./monitor/monitor.module').then(m => m.MonitorModule),
     data: {isFrontPage: true}
   },
   {
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/tsconfig.server.json
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/tsconfig.server.json	(nonexistent)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/tsconfig.server.json	(revision 61145)
@@ -0,0 +1,17 @@
+{
+  "extends": "./tsconfig.app.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/app-server",
+    "module": "commonjs",
+    "types": [
+      "node"
+    ]
+  },
+  "files": [
+    "main.server.ts",
+    "../server.ts"
+  ],
+  "angularCompilerOptions": {
+    "entryModule": "./app/app.server.module#AppServerModule"
+  }
+}
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/polyfills.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/polyfills.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/polyfills.ts	(revision 61145)
@@ -1,3 +1,7 @@
+/***************************************************************************************************
+ * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.
+ */
+import '@angular/localize/init';
 /**
  * This file includes polyfills needed by Angular and is loaded before the app.
  * You can add your own extra polyfills to this file.
@@ -43,7 +47,7 @@
  *
  * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
  * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
- * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
+ * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
  *
  *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
  *  with the following flag, it will bypass `zone.js` patch for IE/Edge
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/assets/new.css
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/assets/new.css	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/assets/new.css	(revision 61145)
@@ -16,7 +16,7 @@
 }
 
 .stakeholderPage #page_content {
-  background-image: url("/assets/monitor-shapes-bg.svg");
+  background-image: url("~src/assets/monitor-shapes-bg.svg");
   background-size: contain;
   background-repeat: no-repeat;
   background-position: bottom;
@@ -70,12 +70,12 @@
 /*}*/
 /*Sidebar Header logo */
 #sidebar_main .sidebar_main_header .portal-logo {
-  background: url("/assets/common-assets/logo-large-monitor.png") no-repeat;
+  background: url("~src/assets/common-assets/logo-large-monitor.png") no-repeat;
   background-size: contain;
 }
 
 .sidebar_mini #sidebar_main .sidebar_main_header .portal-logo {
-  background: url("/assets/common-assets/logo-small-monitor.png") no-repeat;
+  background: url("~src/assets/common-assets/logo-small-monitor.png") no-repeat;
   background-size: contain;
 }
 
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/assets/theme-assets/dashboard-custom.css
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/assets/theme-assets/dashboard-custom.css	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/assets/theme-assets/dashboard-custom.css	(revision 61145)
@@ -64,7 +64,7 @@
 
 
 .dashboard #sidebar_main .sidebar_main_header .portalLogo{
-  background: url("/assets/logo-large-monitor.png") no-repeat;
+  background: url("~src/assets/logo-large-monitor.png") no-repeat;
   background-size: contain ;
   margin-left: 35px;
   margin-top: 5px;
@@ -71,7 +71,7 @@
 }
 
 .dashboard .sidebar_mini #sidebar_main .sidebar_main_header .portalLogo{
-  background: url("/assets/logo-small-monitor.png") no-repeat !important;
+  background: url("~src/assets/logo-small-monitor.png") no-repeat !important;
   background-size: 50px 50px !important;
 /*  background-size: contain !important;
   margin-left: 5px;*/
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/tsconfig.app.json
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/tsconfig.app.json	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/tsconfig.app.json	(revision 61145)
@@ -4,8 +4,11 @@
     "outDir": "../out-tsc/app",
     "types": []
   },
-  "exclude": [
-    "test.ts",
-    "**/*.spec.ts"
+  "files": [
+    "main.ts",
+    "polyfills.ts"
+  ],
+  "include": [
+    "src/**/*.d.ts"
   ]
 }
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/main.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/main.ts	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/main.ts	(revision 61145)
@@ -8,5 +8,7 @@
   enableProdMode();
 }
 
-platformBrowserDynamic().bootstrapModule(AppModule)
+document.addEventListener('DOMContentLoaded', () => {
+  platformBrowserDynamic().bootstrapModule(AppModule)
   .catch(err => console.error(err));
+});
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/main.server.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/main.server.ts	(nonexistent)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/src/main.server.ts	(revision 61145)
@@ -0,0 +1,15 @@
+/***************************************************************************************************
+ * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.
+*/
+import '@angular/localize/init';
+
+import {enableProdMode} from '@angular/core';
+
+import {properties} from './environments/environment';
+
+if (properties.environment !== "development") {
+  enableProdMode();
+}
+
+export { AppServerModule } from './app/app.server.module';
+export { renderModule, renderModuleFactory } from '@angular/platform-server';
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/server.ts
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/server.ts	(nonexistent)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard/server.ts	(revision 61145)
@@ -0,0 +1,77 @@
+import 'zone.js/dist/zone-node';
+
+import { ngExpressEngine } from '@nguniversal/express-engine';
+import * as express from 'express';
+import * as compression from 'compression';
+import { join } from 'path';
+
+import { AppServerModule } from './src/main.server';
+import { APP_BASE_HREF } from '@angular/common';
+import { existsSync } from 'fs';
+import {REQUEST, RESPONSE} from "./src/app/openaireLibrary/utils/tokens";
+
+// The Express app is exported so that it can be used by serverless Functions.
+export function app() {
+  const server = express();
+  server.use(compression());
+  const distFolder = join(process.cwd(), 'dist/monitor-dashboard/browser');
+  const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';
+
+  // Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
+  server.engine('html', ngExpressEngine({
+    bootstrap: AppServerModule,
+  }));
+
+  server.set('view engine', 'html');
+  server.set('views', distFolder);
+
+  // Example Express Rest API endpoints
+  // server.get('/api/**', (req, res) => { });
+  // Serve static files from /browser
+  server.get('*.*', express.static(distFolder, {
+    maxAge: '1y'
+  }));
+
+  // All regular routes use the Universal engine
+  server.get('*', (req, res) => {
+    res.render(indexHtml, {
+        req, providers: [
+          {
+            provide: APP_BASE_HREF,
+            useValue: req.baseUrl
+          },
+          {
+            provide: REQUEST, useValue: (req)
+          },
+          {
+            provide: RESPONSE, useValue: (res)
+          }
+        ]
+      }
+    );
+  });
+
+  return server;
+}
+
+function run() {
+  const port = process.env.PORT || 4000;
+
+  // Start up the Node server
+  const server = app();
+  server.listen(port, () => {
+    console.log(`Node Express server listening on http://localhost:${port}`);
+  });
+}
+
+// Webpack will replace 'require' with '__webpack_require__'
+// '__non_webpack_require__' is a proxy to Node 'require'
+// The below code is to ensure that the server is run only when not requiring the bundle.
+declare const __non_webpack_require__: NodeRequire;
+const mainModule = __non_webpack_require__.main;
+const moduleFilename = mainModule && mainModule.filename || '';
+if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
+  run();
+}
+
+export * from './src/main.server';
Index: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard
===================================================================
--- modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard	(revision 61144)
+++ modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard	(revision 61145)

Property changes on: modules/uoa-monitor-portal/branches/angular-11/monitor_dashboard
___________________________________________________________________
Modified: svn:externals
## -1,4 +1,4 ##
 
-src/app/openaireLibrary https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/branches/angular-7/ng-openaire-library/src/app/
+src/app/openaireLibrary https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/branches/angular-9/ng-openaire-library/src/app/
 src/assets/common-assets https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/assets
 
