[Usage Counts | Trunk]: Update to angular 11

This commit is contained in:
k.triantafyllou 2021-07-14 15:23:45 +00:00
parent 1c0fbd90fd
commit 23870a1187
38 changed files with 495 additions and 596 deletions

11
.browserslistrc Normal file
View File

@ -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

View File

@ -1,18 +1,24 @@
# Usage Statistics # Usage Counts
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.3.0. This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.3.10 and has been updated to 11.2.14.
## Install packages
Run npm install (maybe needs sudo), a script that will delete unused files from library will be run.
## Development server ## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. Run `npm start` for a dev server. Navigate to `http://localhost:4800/`. The app will automatically reload if you change any of the source files.
## Code scaffolding ## Build - CSR
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. Use the `npm run build-dev` for a development build.<br>
Use the `npm run build-beta` for a beta build.<br>
Use the `npm run build-prod` for a production build.
## Build ## Webpack Analyzer
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. In order to analyze bundle size you can run `npm run webpack-bundle-analyzer`
## Running unit tests ## Running unit tests
@ -21,8 +27,3 @@ Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.
## Running end-to-end tests ## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
Before running the tests make sure you are serving the app via `ng serve`.
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).

View File

@ -1,15 +0,0 @@
*******Useful project infrmation***********
Project has 2 external folders. Check them using
svn propget svn:externals ./
Above command should show the following:
./src/app/openaireLibrary https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/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
After initial checkout, you may have to exlude ./src/app/openaireLibrary/app.* files in order the project to run properly.
Exclude the files from your local copy, but keep them in the repository.
Use the following command, to exclude the files:
cd ./src/app/openaireLibrary
svn update --set-depth exclude ./app.*
svn update --set-depth exclude ./dashboard

View File

@ -1,21 +1,46 @@
{ {
"$schema": "./node_modules/@angular-devkit/core/src/workspace/workspace-schema.json", "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1, "version": 1,
"newProjectRoot": "projects", "newProjectRoot": "projects",
"projects": { "projects": {
"usage-statistics": { "usage-counts": {
"root": "", "root": "",
"sourceRoot": "src", "sourceRoot": "src",
"projectType": "application", "projectType": "application",
"prefix": "app",
"schematics": {
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:component": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:module": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-angular:browser", "builder": "@angular-devkit/build-angular:browser",
"options": { "options": {
"outputPath": "dist", "aot": true,
"outputPath": "dist/usage-counts",
"index": "src/index.html", "index": "src/index.html",
"main": "src/main.ts", "main": "src/main.ts",
"tsConfig": "src/tsconfig.app.json",
"polyfills": "src/polyfills.ts", "polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json",
"assets": [ "assets": [
"src/assets", "src/assets",
"src/robots.txt", "src/robots.txt",
@ -33,45 +58,91 @@
] ]
}, },
"configurations": { "configurations": {
"production": { "development": {
"optimization": true, "optimization": true,
"outputHashing": "all", "outputHashing": "all",
"sourceMap": false, "sourceMap": false,
"extractCss": true,
"namedChunks": false, "namedChunks": false,
"aot": true, "aot": true,
"extractLicenses": true, "extractLicenses": true,
"vendorChunk": false, "vendorChunk": false,
"buildOptimizer": true, "buildOptimizer": true,
"fileReplacements": [ "budgets": [
{ {
"replace": "src/environments/environment.ts", "type": "initial",
"with": "src/environments/environment.prod.ts" "maximumWarning": "2mb",
"maximumError": "5mb"
}, },
{ {
"replace": "src/index.html", "type": "anyComponentStyle",
"with": "src/index.prod.html" "maximumWarning": "6kb"
},
{
"replace": "src/robots.txt",
"with": "src/robots.prod.txt"
} }
] ]
}, },
"beta": { "beta": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.beta.ts"
}
],
"optimization": true, "optimization": true,
"outputHashing": "all", "outputHashing": "all",
"sourceMap": false, "sourceMap": false,
"extractCss": true,
"namedChunks": false, "namedChunks": false,
"aot": true, "aot": true,
"extractLicenses": true, "extractLicenses": true,
"vendorChunk": false, "vendorChunk": false,
"buildOptimizer": true, "buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
}
]
},
"production": {
"assets": [
"src/assets",
"src/sitemap.xml",
{
"input": "src/prod/",
"output": "/",
"glob": "*.txt"
}
],
"index": {
"input": "src/prod/index.html",
"output": "index.html"
},
"fileReplacements": [ "fileReplacements": [
{ {
"replace": "src/environments/environment.ts", "replace": "src/environments/environment.ts",
"with": "src/environments/environment.beta.ts" "with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
} }
] ]
} }
@ -80,46 +151,33 @@
"serve": { "serve": {
"builder": "@angular-devkit/build-angular:dev-server", "builder": "@angular-devkit/build-angular:dev-server",
"options": { "options": {
"browserTarget": "usage-statistics:build" "browserTarget": "usage-counts:build"
}, },
"configurations": { "configurations": {
"production": { "production": {
"browserTarget": "usage-statistics:build:production" "browserTarget": "usage-counts:build:production"
},
"beta": {
"browserTarget": "usage-statistics:build:beta"
} }
} }
}, },
"extract-i18n": { "extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n", "builder": "@angular-devkit/build-angular:extract-i18n",
"options": { "options": {
"browserTarget": "usage-statistics:build" "browserTarget": "usage-counts:build"
} }
}, },
"test": { "test": {
"builder": "@angular-devkit/build-angular:karma", "builder": "@angular-devkit/build-angular:karma",
"options": { "options": {
"main": "src/test.ts", "main": "src/test.ts",
"karmaConfig": "./karma.conf.js",
"polyfills": "src/polyfills.ts", "polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json", "tsConfig": "src/tsconfig.spec.json",
"scripts": [ "karmaConfig": "src/karma.conf.js",
"node_modules/jquery/dist/jquery.js",
"node_modules/datatables.net/js/jquery.dataTables.js",
"node_modules/interactiveminingv3/assets/js/ResizeSensor.js",
"node_modules/interactiveminingv3/assets/js/jquery.sticky-sidebar.js"
],
"styles": [ "styles": [
"src/styles.css", "src/styles.css"
"node_modules/datatables.net-dt/css/jquery.dataTables.css",
"node_modules/interactiveminingv3/assets/css/interactive-mining.css",
"node_modules/interactiveminingv3/assets/css/animations.css"
], ],
"scripts": [],
"assets": [ "assets": [
"src/assets", "src/assets"
"src/robots.txt",
"src/sitemap.xml"
] ]
} }
}, },
@ -137,24 +195,27 @@
} }
} }
}, },
"usage-statistics-e2e": { "usage-counts-e2e": {
"root": "e2e", "root": "e2e/",
"sourceRoot": "e2e",
"projectType": "application", "projectType": "application",
"prefix": "",
"architect": { "architect": {
"e2e": { "e2e": {
"builder": "@angular-devkit/build-angular:protractor", "builder": "@angular-devkit/build-angular:protractor",
"options": { "options": {
"protractorConfig": "./protractor.conf.js", "protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "usage-statistics:serve" "devServerTarget": "usage-counts:serve"
},
"configurations": {
"production": {
"devServerTarget": "usage-counts:serve:production"
}
} }
}, },
"lint": { "lint": {
"builder": "@angular-devkit/build-angular:tslint", "builder": "@angular-devkit/build-angular:tslint",
"options": { "options": {
"tsConfig": [ "tsConfig": "e2e/tsconfig.e2e.json",
"e2e/tsconfig.e2e.json"
],
"exclude": [ "exclude": [
"**/node_modules/**" "**/node_modules/**"
] ]
@ -163,14 +224,5 @@
} }
} }
}, },
"defaultProject": "usage-statistics", "defaultProject": "usage-counts"
"schematics": {
"@schematics/angular:component": {
"prefix": "app",
"styleext": "css"
},
"@schematics/angular:directive": {
"prefix": "app"
}
}
} }

9
clean-library.sh Normal file
View File

@ -0,0 +1,9 @@
cd src/app/openaireLibrary
# Exclude Dashboard files
echo "Exclude Dashboard files"
svn update --set-depth exclude ./dashboard
# Exclude ck-editor usages
echo "Exclude ck-editor usages"
svn update --set-depth exclude ./sharedComponents/subscriber-invite
cd ../../../
echo "Done"

View File

@ -1,14 +0,0 @@
import { AppPage } from './app.po';
describe('admin-portal App', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
it('should display welcome message', () => {
page.navigateTo();
expect(page.getParagraphText()).toEqual('Welcome to app!');
});
});

View File

@ -1,11 +0,0 @@
import { browser, by, element } from 'protractor';
export class AppPage {
navigateTo() {
return browser.get('/');
}
getParagraphText() {
return element(by.css('app-root h1')).getText();
}
}

View File

@ -6,7 +6,7 @@ const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = { exports.config = {
allScriptsTimeout: 11000, allScriptsTimeout: 11000,
specs: [ specs: [
'./e2e/**/*.e2e-spec.ts' './src/**/*.e2e-spec.ts'
], ],
capabilities: { capabilities: {
'browserName': 'chrome' 'browserName': 'chrome'
@ -21,8 +21,8 @@ exports.config = {
}, },
onPrepare() { onPrepare() {
require('ts-node').register({ require('ts-node').register({
project: 'e2e/tsconfig.e2e.json' project: require('path').join(__dirname, './tsconfig.e2e.json')
}); });
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
} }
}; };

23
e2e/src/app.e2e-spec.ts Normal file
View File

@ -0,0 +1,23 @@
import { AppPage } from './app.po';
import { browser, logging } from 'protractor';
describe('workspace-project App', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
it('should display welcome message', () => {
page.navigateTo();
expect(page.getTitleText()).toEqual('Welcome to usage-counts!');
});
afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
expect(logs).not.toContain(jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry));
});
});

11
e2e/src/app.po.ts Normal file
View File

@ -0,0 +1,11 @@
import { browser, by, element } from 'protractor';
export class AppPage {
navigateTo() {
return browser.get(browser.baseUrl) as Promise<any>;
}
getTitleText() {
return element(by.css('app-root h1')).getText() as Promise<string>;
}
}

View File

@ -1,8 +1,7 @@
{ {
"extends": "../tsconfig.json", "extends": "../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../out-tsc/e2e", "outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "commonjs", "module": "commonjs",
"target": "es5", "target": "es5",
"types": [ "types": [
@ -11,4 +10,4 @@
"node" "node"
] ]
} }
} }

View File

@ -1,66 +1,62 @@
{ {
"name": "usage-statistics", "name": "usage-counts",
"version": "0.0.1", "version": "0.0.0",
"license": "MIT",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve --host 0.0.0.0 --disable-host-check --port=4800", "start": "ng serve --host 0.0.0.0 --disable-host-check --port=4800",
"build": "ng build --prod", "build": "ng build",
"build-dev": "ng build --configuration=development",
"build-beta": "ng build --configuration=beta", "build-beta": "ng build --configuration=beta",
"build-prod": "ng build --prod",
"webpack-bundle-analyzer": "ng build --stats-json && webpack-bundle-analyzer dist/graph/browser/stats.json --host 0.0.0.0",
"test": "ng test", "test": "ng test",
"lint": "ng lint", "lint": "ng lint",
"e2e": "ng e2e", "e2e": "ng e2e",
"after-build-clean": "rm -rf dist/assets/common-assets/.svn/" "postinstall": "chmod +x clean-library.sh && ./clean-library.sh",
"after-build-clean": "rm -rf dist/usage-counts/assets/common-assets/.svn/"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "7.2.14", "@angular/animations": "~11.2.14",
"@angular/cdk": "^7.3.7", "@angular/cdk": "^11.2.13",
"@angular/common": "7.2.14", "@angular/common": "~11.2.14",
"@angular/compiler": "7.2.14", "@angular/compiler": "~11.2.14",
"@angular/core": "7.2.14", "@angular/core": "~11.2.14",
"@angular/forms": "7.2.14", "@angular/forms": "~11.2.14",
"@angular/http": "7.2.14", "@angular/localize": "^11.2.14",
"@angular/material": "^7.3.7", "@angular/material": "^11.2.13",
"@angular/platform-browser": "7.2.14", "@angular/platform-browser": "~11.2.14",
"@angular/platform-browser-dynamic": "7.2.14", "@angular/platform-browser-dynamic": "~11.2.14",
"@angular/router": "7.2.14", "@angular/router": "~11.2.14",
"@nguniversal/express-engine": "^6.0.0",
"@types/express": "^4.16.1",
"clipboard": "^1.5.16", "clipboard": "^1.5.16",
"core-js": "2.6.8", "core-js": "^2.5.4",
"express": "^4.15.2",
"jquery": "^3.4.1", "jquery": "^3.4.1",
"ngx-bootstrap": "^1.6.6", "ng-recaptcha": "^7.0.1",
"ng-recaptcha": "^3.0.5", "rxjs": "^6.5.1",
"ts-md5": "^1.2.0", "ts-md5": "^1.2.0",
"tslib": "^1.9.0", "tslib": "^2.0.0",
"zone.js": "0.8.29" "zone.js": "~0.10.2"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "~0.13.0", "@angular-devkit/build-angular": "~0.1102.14",
"@angular/cli": "7.3.9", "@angular/cli": "~11.2.14",
"@angular/compiler-cli": "7.2.14", "@angular/compiler-cli": "~11.2.14",
"@angular/language-service": "7.2.14", "@angular/language-service": "~11.2.14",
"@types/datatables.net": "^1.10.17", "@types/express": "^4.17.0",
"@types/jasmine": "~2.8.8", "@types/node": "^12.11.1",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3", "@types/jasminewd2": "~2.0.3",
"@types/jquery": "^3.3.29", "codelyzer": "^6.0.0",
"@types/node": "^14.0.13", "jasmine-core": "~3.8.0",
"codelyzer": "~4.5.0", "jasmine-spec-reporter": "~5.0.0",
"jasmine-core": "~2.99.1", "karma": "~6.3.3",
"jasmine-spec-reporter": "~4.2.1", "karma-chrome-launcher": "~3.1.0",
"karma": "~3.0.0", "karma-coverage-istanbul-reporter": "~3.0.2",
"karma-chrome-launcher": "~2.1.1", "karma-jasmine": "~4.0.0",
"karma-cli": "~1.0.1", "karma-jasmine-html-reporter": "^1.6.0",
"karma-coverage-istanbul-reporter": "~2.0.1", "protractor": "~7.0.0",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.4.0",
"rxjs": "6.5.1",
"rxjs-compat": "^6.5.1",
"rxjs-tslint": "^0.1.7",
"ts-node": "~7.0.0", "ts-node": "~7.0.0",
"tslint": "^5.7.0", "typescript": "~4.0.7"
"typescript": "3.2.4"
} }
} }

View File

@ -15,7 +15,7 @@
@media only screen and (min-width: 1200px) { @media only screen and (min-width: 1200px) {
.about-background { .about-background {
background-image: url("/assets/usage-statistics-assets/about/1.svg"); background-image: url("~src/assets/usage-statistics-assets/about/1.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 0 -30px; background-position: 0 -30px;
background-size: contain; background-size: contain;
@ -47,7 +47,7 @@
} }
.architecture { .architecture {
background-image: url("/assets/usage-statistics-assets/about/2.1.png"); background-image: url("~src/assets/usage-statistics-assets/about/2.1.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 0 0; background-position: 0 0;
background-size: contain; background-size: contain;
@ -63,7 +63,7 @@
} }
.architecture > div { .architecture > div {
background-image: url("/assets/usage-statistics-assets/about/2.2.svg"); background-image: url("~src/assets/usage-statistics-assets/about/2.2.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 0 0; background-position: 0 0;
background-size: auto; background-size: auto;
@ -78,7 +78,7 @@
@media only screen and (min-width: 1200px) { @media only screen and (min-width: 1200px) {
.workflows { .workflows {
background-image: url("/assets/usage-statistics-assets/about/3.2.svg"); background-image: url("~src/assets/usage-statistics-assets/about/3.2.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top left; background-position: top left;
background-size: auto; background-size: auto;
@ -88,7 +88,7 @@
@media only screen and (min-width: 960px) { @media only screen and (min-width: 960px) {
.push-pull { .push-pull {
background-image: url("/assets/usage-statistics-assets/about/4.svg"); background-image: url("~src/assets/usage-statistics-assets/about/4.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top right; background-position: top right;
background-size: auto; background-size: auto;
@ -96,7 +96,7 @@
} }
.faqs { .faqs {
background-image: url("/assets/usage-statistics-assets/about/5.svg"); background-image: url("~src/assets/usage-statistics-assets/about/5.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top right; background-position: top right;
background-size: auto; background-size: auto;

View File

@ -10,7 +10,7 @@
@media only screen and (min-width: 960px) { @media only screen and (min-width: 960px) {
.countries { .countries {
background-image: url("/assets/usage-statistics-assets/analytics/1.svg"); background-image: url("~src/assets/usage-statistics-assets/analytics/1.svg");
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top center; background-position: top center;
@ -59,14 +59,14 @@
} }
.second { .second {
background-image: url("/assets/usage-statistics-assets/analytics/2.2.svg"), url("/assets/usage-statistics-assets/analytics/2.1.svg"); background-image: url("~src/assets/usage-statistics-assets/analytics/2.2.svg"), url("/assets/usage-statistics-assets/analytics/2.1.svg");
background-size: auto; background-size: auto;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: bottom left, top right; background-position: bottom left, top right;
} }
.third { .third {
background-image: url("/assets/usage-statistics-assets/analytics/3.2.svg"), url("/assets/usage-statistics-assets/analytics/3.1.svg"); background-image: url("~src/assets/usage-statistics-assets/analytics/3.2.svg"), url("/assets/usage-statistics-assets/analytics/3.1.svg");
background-size: auto; background-size: auto;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: bottom left, bottom right; background-position: bottom left, bottom right;

View File

@ -1,12 +1,12 @@
import {NgModule} from '@angular/core'; import {NgModule} from '@angular/core';
import {Routes, RouterModule, PreloadAllModules} from '@angular/router'; import {RouterModule, Routes} from '@angular/router';
import {PreviousRouteRecorder} from './openaireLibrary/utils/piwik/previousRouteRecorder.guard'; import {PreviousRouteRecorder} from './openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {ErrorPageComponent} from './openaireLibrary/error/errorPage.component'; import {ErrorPageComponent} from './openaireLibrary/error/errorPage.component';
const appRoutes: Routes = [ const appRoutes: Routes = [
{ {
path: '', path: '',
loadChildren: './home/home.module#HomeModule', loadChildren: () => import('./home/home.module').then(m => m.HomeModule),
data: { data: {
isHome: true isHome: true
}, },
@ -14,27 +14,27 @@ const appRoutes: Routes = [
}, },
{ {
path: 'resources', path: 'resources',
loadChildren: './resources/resources.module#ResourcesModule', loadChildren: () => import('./resources/resources.module').then(m => m.ResourcesModule),
canDeactivate: [PreviousRouteRecorder] canDeactivate: [PreviousRouteRecorder]
}, },
{ {
path: 'analytics', path: 'analytics',
loadChildren: './analytics/analytics.module#AnalyticsModule', loadChildren: () => import('./analytics/analytics.module').then(m => m.AnalyticsModule),
canDeactivate: [PreviousRouteRecorder] canDeactivate: [PreviousRouteRecorder]
}, },
{ {
path: 'contact', path: 'contact',
loadChildren: './contact/contact.module#ContactModule', loadChildren: () => import('./contact/contact.module').then(m => m.ContactModule),
canDeactivate: [PreviousRouteRecorder] canDeactivate: [PreviousRouteRecorder]
}, },
{ {
path: 'about', path: 'about',
loadChildren: './about/about.module#AboutModule', loadChildren: () => import('./about/about.module').then(m => m.AboutModule),
canDeactivate: [PreviousRouteRecorder] canDeactivate: [PreviousRouteRecorder]
}, },
{ {
path: 'sushilite/:id', path: 'sushilite/:id',
loadChildren: './sushilite/sushilite.module#SushiliteModule', loadChildren: () => import('./sushilite/sushilite.module').then(m => m.SushiliteModule),
canDeactivate: [PreviousRouteRecorder] canDeactivate: [PreviousRouteRecorder]
}, },
{ path: '**',pathMatch: 'full',component: ErrorPageComponent} { path: '**',pathMatch: 'full',component: ErrorPageComponent}
@ -42,9 +42,7 @@ const appRoutes: Routes = [
@NgModule({ @NgModule({
imports: [RouterModule.forRoot(appRoutes, { imports: [RouterModule.forRoot(appRoutes, {
preloadingStrategy: PreloadAllModules, onSameUrlNavigation: "reload"
onSameUrlNavigation: "reload",
relativeLinkResolution: 'corrected'
})], })],
exports: [RouterModule] exports: [RouterModule]
}) })

View File

@ -1,5 +1,5 @@
.contact { .contact {
background-image: url("/assets/usage-statistics-assets/contact/1.svg"); background-image: url("~src/assets/usage-statistics-assets/contact/1.svg");
background-size: auto; background-size: auto;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 0 0; background-position: 0 0;

View File

@ -26,7 +26,6 @@ export class ContactComponent implements OnInit, OnDestroy {
public contactForm: FormGroup; public contactForm: FormGroup;
@ViewChild('AlertModal') modal; @ViewChild('AlertModal') modal;
@ViewChild('recaptcha') recaptcha;
description = 'Any questions? Contact us '; description = 'Any questions? Contact us ';
title = 'OpenAIRE - UsageCounts | Contact Us'; title = 'OpenAIRE - UsageCounts | Contact Us';
subs: Subscription[] = []; subs: Subscription[] = [];

View File

@ -4,7 +4,6 @@ import {RouterModule} from '@angular/router';
import {ContactComponent} from './contact.component'; import {ContactComponent} from './contact.component';
import {EmailService} from '../openaireLibrary/utils/email/email.service'; import {EmailService} from '../openaireLibrary/utils/email/email.service';
import {RecaptchaModule} from 'ng-recaptcha';
import {AlertModalModule} from '../openaireLibrary/utils/modal/alertModal.module'; import {AlertModalModule} from '../openaireLibrary/utils/modal/alertModal.module';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service'; import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {HelperModule} from '../openaireLibrary/utils/helper/helper.module'; import {HelperModule} from '../openaireLibrary/utils/helper/helper.module';
@ -20,7 +19,7 @@ import {BreadcrumbsModule} from '../openaireLibrary/utils/breadcrumbs/breadcrumb
RouterModule.forChild([{ RouterModule.forChild([{
path: '', component: ContactComponent path: '', component: ContactComponent
}]), CommonModule, RouterModule, }]), CommonModule, RouterModule,
AlertModalModule, RecaptchaModule.forRoot(), HelperModule, AlertModalModule, HelperModule,
Schema2jsonldModule, SEOServiceModule, ContactUsModule, BreadcrumbsModule Schema2jsonldModule, SEOServiceModule, ContactUsModule, BreadcrumbsModule
], ],
declarations: [ declarations: [

View File

@ -1,7 +1,7 @@
@media only screen and (min-width: 1200px) { @media only screen and (min-width: 1200px) {
.first { .first {
position: relative; position: relative;
background-image: url("/assets/usage-statistics-assets/home/1.svg"); background-image: url("~src/assets/usage-statistics-assets/home/1.svg");
background-size: cover; background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 0 -130px; background-position: 0 -130px;
@ -10,7 +10,7 @@
.third .first-column { .third .first-column {
position: relative; position: relative;
background-image: url("/assets/usage-statistics-assets/home/3.1.svg"), url("/assets/usage-statistics-assets/home/3.2.svg"); background-image: url("~src/assets/usage-statistics-assets/home/3.1.svg"), url("~src/assets/usage-statistics-assets/home/3.2.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: contain, auto; background-size: contain, auto;
background-position: top left, bottom center; background-position: top left, bottom center;
@ -23,7 +23,7 @@
} }
.third .second-column { .third .second-column {
background-image: url("/assets/usage-statistics-assets/home/3.4.svg"), url("/assets/usage-statistics-assets/home/3.5.svg"); background-image: url("~src/assets/usage-statistics-assets/home/3.4.svg"), url("~src/assets/usage-statistics-assets/home/3.5.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: auto, contain; background-size: auto, contain;
background-position: top center, bottom right; background-position: top center, bottom right;
@ -37,7 +37,7 @@
} }
.third .second-column { .third .second-column {
background-image: url("/assets/usage-statistics-assets/home/3.5.svg"); background-image: url("~src/assets/usage-statistics-assets/home/3.5.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: contain; background-size: contain;
background-position: bottom right; background-position: bottom right;
@ -46,7 +46,7 @@
@media only screen and (min-width: 960px) { @media only screen and (min-width: 960px) {
.second { .second {
background-image: url("/assets/usage-statistics-assets/home/2.svg"); background-image: url("~src/assets/usage-statistics-assets/home/2.svg");
background-size: auto; background-size: auto;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: -2% 0; background-position: -2% 0;
@ -54,7 +54,7 @@
} }
.third { .third {
background-image: url("/assets/usage-statistics-assets/home/3.3.svg"); background-image: url("~src/assets/usage-statistics-assets/home/3.3.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: auto; background-size: auto;
background-position: 30% 0; background-position: 30% 0;
@ -65,7 +65,7 @@
} }
.third .third-column { .third .third-column {
background-image: url("/assets/usage-statistics-assets/home/3.6.svg"); background-image: url("~src/assets/usage-statistics-assets/home/3.6.svg");
background-size: auto; background-size: auto;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top left; background-position: top left;
@ -91,7 +91,7 @@
.features { .features {
background-image: url("/assets/usage-statistics-assets/home/4.svg"); background-image: url("~src/assets/usage-statistics-assets/home/4.svg");
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 0 0; background-position: 0 0;

View File

@ -17,8 +17,7 @@ export class HomeComponent implements OnInit, OnDestroy {
public initSlide: number = 1; public initSlide: number = 1;
public fragments: string[] = ['', 'why', 'who', 'features']; public fragments: string[] = ['', 'why', 'who', 'features'];
@ViewChild('slider') @ViewChild('slider', { static: true }) slider: FullPageSliderComponent;
public slider: FullPageSliderComponent;
properties: EnvProperties = properties; properties: EnvProperties = properties;
subs: Subscription[] = []; subs: Subscription[] = [];

View File

@ -1,13 +0,0 @@
import './polyfills.ts';
//import './vendors.ts';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {AppModule} from './app.module';
import {enableProdMode} from "@angular/core";
import {properties} from "../environments/environment";
const platform = platformBrowserDynamic();
if (properties.environment !== "development") {
enableProdMode();
}
platform.bootstrapModule(AppModule);

View File

@ -1,49 +0,0 @@
/**
* Created by stefanos on 25/4/2017.
*/
// Polyfills
// import 'ie-shim'; // Internet Explorer 9 support
import 'reflect-metadata';
// import 'core-js/es6';
// Added parts of es6 which are necessary for your project or your browser support requirements.
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/set';
import 'core-js/es6/weak-map';
import 'core-js/es6/weak-set';
import 'core-js/es6/typed';
import 'core-js/es6/reflect';
// see issue https://github.com/AngularClass/angular2-webpack-starter/issues/709
// import 'core-js/es6/promise';
import 'intl';
import 'intl/locale-data/jsonp/en';
import 'core-js/es7/reflect';
import 'zone.js/dist/zone';
// import 'ng2-ckeditor/lib';
// if ('production' === ENV) {
// // Production
//
// } else {
//
// // Development
// Error.stackTraceLimit = Infinity;
//
// /* tslint:disable no-var-requires */
// require('zone.js/dist/long-stack-trace-zone');
//
// }

View File

@ -0,0 +1,23 @@
import {EnvProperties} from '../app/openaireLibrary/utils/properties/env-properties';
export let properties: EnvProperties = {
environment: 'beta',
useCache: true,
useLongCache: true,
domain : "https://usagecounts.openaire.eu",
baseLink: "",
enablePiwikTrack: true,
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "",
metricsAPIURL: 'https://beta.services.openaire.eu/usagestats/',
loginUrl: "https://beta.services.openaire.eu/admin-user-management/openid_connect_login",
userInfoUrl: "https://beta.services.openaire.eu/uoa-user-management/api/users/getUserInfo?accessToken=",
logoutUrl: "https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",
cookieDomain: ".openaire.eu",
cacheUrl: "https://demo.openaire.eu/cache/get?url=",
adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-admin-tools/",
reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P",
admins: ["feedback@openaire.eu"],
sushiliteURL: 'https://services.openaire.eu/usagestats/sushilite/',
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
};

View File

@ -0,0 +1,23 @@
import {EnvProperties} from '../app/openaireLibrary/utils/properties/env-properties';
export let properties: EnvProperties = {
environment:"production",
useCache: true,
useLongCache: true,
domain : "https://usagecounts.openaire.eu",
baseLink: "",
enablePiwikTrack: true,
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "374",
metricsAPIURL: "https://services.openaire.eu/usagestats/",
loginUrl:"https://services.openaire.eu/admin-user-management/openid_connect_login",
userInfoUrl: " https://services.openaire.eu/uoa-user-management/api/users/getUserInfo?accessToken=",
logoutUrl:"https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",
cookieDomain:".openaire.eu",
cacheUrl:"https://explore.openaire.eu/cache/get?url=",
adminToolsAPIURL:"https://services.openaire.eu/uoa-admin-tools/",
reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P",
admins: ["feedback@openaire.eu"],
sushiliteURL: 'https://services.openaire.eu/usagestats/sushilite/',
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
};

View File

@ -0,0 +1,28 @@
// The file contents for the current environment will overwrite these during build.
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
// The list of which env maps to which file can be found in `.angular-cli.json`.
import {EnvProperties} from '../app/openaireLibrary/utils/properties/env-properties';
export let properties: EnvProperties = {
environment: 'development',
useCache: false,
useLongCache: true,
domain : "https://usagecounts.openaire.eu",
baseLink: "",
enablePiwikTrack: false,
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "",
metricsAPIURL: 'https://services.openaire.eu/usagestats/',
loginUrl: 'http://dl170.madgik.di.uoa.gr:8180/dnet-login/openid_connect_login',
userInfoUrl: 'http://dl170.madgik.di.uoa.gr:8180/dnet-openaire-users-1.0.0-SNAPSHOT/api/users/getUserInfo?accessToken=',
logoutUrl: 'https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=',
cookieDomain: '.di.uoa.gr',
cacheUrl: "https://demo.openaire.eu/cache/get?url=",
adminToolsAPIURL: 'http://duffy.di.uoa.gr:8080/uoa-admin-tools/',
reCaptchaSiteKey: '6LcVtFIUAAAAAB2ac6xYivHxYXKoUvYRPi-6_rLu',
admins: ['kostis30fylloy@gmail.com'],
sushiliteURL: 'http://scoobydoo.di.uoa.gr/static/sushilite/',
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
};

View File

@ -12,20 +12,21 @@ module.exports = function (config) {
require('karma-coverage-istanbul-reporter'), require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma') require('@angular-devkit/build-angular/plugins/karma')
], ],
client:{ client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser clearContext: false // leave Jasmine Spec Runner output visible in browser
}, },
coverageIstanbulReporter: { coverageIstanbulReporter: {
dir: require('path').join(__dirname, 'coverage'), reports: [ 'html', 'lcovonly' ], dir: require('path').join(__dirname, '../coverage/usage-counts'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true fixWebpackSourcePaths: true
}, },
reporters: ['progress', 'kjhtml'], reporters: ['progress', 'kjhtml'],
port: 9876, port: 9876,
colors: true, colors: true,
logLevel: config.LOG_INFO, logLevel: config.LOG_INFO,
autoWatch: true, autoWatch: true,
browsers: ['Chrome'], browsers: ['Chrome'],
singleRun: false singleRun: false,
restartOnFileChange: true
}); });
}; };

View File

@ -8,4 +8,6 @@ if (properties.environment !== "development") {
enableProdMode(); enableProdMode();
} }
platformBrowserDynamic().bootstrapModule(AppModule);
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));

View File

@ -1,4 +1,4 @@
@import '~@angular/material/theming'; @import '../node_modules/@angular/material/theming';
@include mat-core(); @include mat-core();
$my-app-primary: mat-palette($mat-blue-grey); $my-app-primary: mat-palette($mat-blue-grey);
$my-app-accent: mat-palette($mat-green); $my-app-accent: mat-palette($mat-green);

View File

@ -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. * This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file. * You can add your own extra polyfills to this file.
@ -11,61 +15,53 @@
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
* *
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html * Learn more in https://angular.io/guide/browser-support
*/ */
/*************************************************************************************************** /***************************************************************************************************
* BROWSER POLYFILLS * BROWSER POLYFILLS
*/ */
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
/** IE10 and IE11 requires the following for NgClass support on SVG elements */ /** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js'; // Run `npm install --save classlist.js`. // import 'classlist.js'; // Run `npm install --save classlist.js`.
/** Evergreen browsers require these. **/
import 'core-js/es6/reflect';
/** /**
* Required to support Web Animations `@angular/animation`. * Web Animations `@angular/platform-browser/animations`
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
**/ * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
// import 'web-animations-js'; // Run `npm install --save web-animations-js`. // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
* because those flags need to be set before `zone.js` being loaded, and webpack
* will put import in the top of bundle, so user need to create a separate file
* in this directory (for example: zone-flags.ts), and put the following flags
* into that file, and then add the following code before importing zone.js.
* import './zone-flags.ts';
*
* The flags allowed in zone-flags.ts are listed here.
*
* The following flags will work for all browsers.
*
* (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__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
*
* (window as any).__Zone_enable_cross_context_check = true;
*
*/
/*************************************************************************************************** /***************************************************************************************************
* Zone JS is required by Angular itself. * Zone JS is required by default for Angular itself.
*/ */
import 'zone.js/dist/zone'; // Included with Angular CLI. import 'zone.js/dist/zone'; // Included with Angular CLI.
/*************************************************************************************************** /***************************************************************************************************
* APPLICATION IMPORTS * APPLICATION IMPORTS
*/ */
/**
* Date, currency, decimal and percent pipes.
* Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
*/
// import 'intl'; // Run `npm install --save intl`.
/**
* Need to import at least one locale-data with intl.
*/
// import 'intl/locale-data/jsonp/en';

View File

@ -25,7 +25,7 @@
<link href="assets/common-assets/logo/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"/> <link href="assets/common-assets/logo/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"/>
</head> </head>
<body> <body>
<app-root></app-root> <app></app>
</body> </body>
<script src="https://unpkg.com/smoothscroll-polyfill@0.4.3/dist/smoothscroll.min.js"></script> <script src="https://unpkg.com/smoothscroll-polyfill@0.4.3/dist/smoothscroll.min.js"></script>
</html> </html>

View File

@ -4,171 +4,171 @@
@import "assets/common-assets/library.css"; @import "assets/common-assets/library.css";
:root { :root {
--portal-main-color: #e95420; --portal-main-color: #e95420;
--portal-main-contrast: white; --portal-main-contrast: white;
--provide-portal-color: #37C7E9; --provide-portal-color: #37C7E9;
--portal-dark-color: #a0462c; --portal-dark-color: #a0462c;
} }
.top-bar-background { .top-bar-background {
background-color: #F9FBFC; background-color: #F9FBFC;
} }
main { main {
background-color: #F9FBFC; background-color: #F9FBFC;
color: #333333; color: #333333;
min-height: calc(100vh - 100px); min-height: calc(100vh - 100px);
font-size: 16px; font-size: 16px;
font-family: Roboto, sans-serif; font-family: Roboto, sans-serif;
line-height: 21px; line-height: 21px;
letter-spacing: 0.48px; letter-spacing: 0.48px;
} }
navbar > * { navbar > * {
background-color: #F9FBFC; background-color: #F9FBFC;
} }
main.full-height { main.full-height {
min-height: 100vh; min-height: 100vh;
} }
/* Order list */ /* Order list */
ol.light-blue { ol.light-blue {
counter-reset: counter; counter-reset: counter;
list-style: none; list-style: none;
} }
ol.light-blue li { ol.light-blue li {
margin: 0 0 20px 0; margin: 0 0 20px 0;
counter-increment: counter; counter-increment: counter;
position: relative; position: relative;
} }
ol.light-blue li::before { ol.light-blue li::before {
content: counter(counter); content: counter(counter);
color: #4687E6; color: #4687E6;
font-size: 27px; font-size: 27px;
position: absolute; position: absolute;
--size: 22px; --size: 22px;
left: calc(-1 * var(--size) - 10px); left: calc(-1 * var(--size) - 10px);
line-height: var(--size); line-height: var(--size);
width: var(--size); width: var(--size);
height: var(--size); height: var(--size);
top: 0; top: 0;
text-align: center; text-align: center;
} }
ol.openaire-list { ol.openaire-list {
list-style: none; list-style: none;
counter-reset: counter; counter-reset: counter;
padding-left: 0; padding-left: 0;
} }
ol.openaire-list li { ol.openaire-list li {
counter-increment: counter; counter-increment: counter;
} }
ol.openaire-list li::before { ol.openaire-list li::before {
content: counter(counter) ". "; content: counter(counter) ". ";
color: #222080; color: #222080;
font-weight: bold; font-weight: bold;
} }
/* Unordered list*/ /* Unordered list*/
ul.light-blue-circle { ul.light-blue-circle {
list-style: none; list-style: none;
} }
ul.light-blue-circle li { ul.light-blue-circle li {
margin: 0 0 20px 0; margin: 0 0 20px 0;
position: relative; position: relative;
} }
ul.light-blue-circle.large li { ul.light-blue-circle.large li {
margin: 0 0 40px 0; margin: 0 0 40px 0;
} }
ul.light-blue-circle li:last-child { ul.light-blue-circle li:last-child {
margin: 0; margin: 0;
} }
ul.light-blue-circle li:before { ul.light-blue-circle li:before {
content: ""; content: "";
border: 10px #4687E6 solid !important; border: 10px #4687E6 solid !important;
border-radius: 50px; border-radius: 50px;
line-height: 21px; line-height: 21px;
margin-left: -40px; margin-left: -40px;
position: absolute; position: absolute;
} }
ul.light-blue-triangle { ul.light-blue-triangle {
list-style: none; list-style: none;
padding-left: 40px; padding-left: 40px;
} }
ul.light-blue-triangle li { ul.light-blue-triangle li {
margin: 0 0 40px 0; margin: 0 0 40px 0;
position: relative; position: relative;
} }
ul.light-blue-triangle.large li { ul.light-blue-triangle.large li {
margin: 0 0 50px 0; margin: 0 0 50px 0;
} }
ul.light-blue-triangle li:last-child { ul.light-blue-triangle li:last-child {
margin: 0; margin: 0;
} }
ul.light-blue-triangle li:before { ul.light-blue-triangle li:before {
content: ""; content: "";
border-top: 12px solid transparent; border-top: 12px solid transparent;
border-bottom: 12px solid transparent; border-bottom: 12px solid transparent;
border-left: 15px solid #4687E6; border-left: 15px solid #4687E6;
line-height: 21px; line-height: 21px;
margin-left: -40px; margin-left: -40px;
position: absolute; position: absolute;
} }
ul.portal-circle { ul.portal-circle {
list-style: none; list-style: none;
padding-left: 40px; padding-left: 40px;
} }
ul.portal-circle li { ul.portal-circle li {
margin: 0 0 20px 0; margin: 0 0 20px 0;
position: relative; position: relative;
} }
ul.portal-circle li:before { ul.portal-circle li:before {
content: ""; content: "";
border: 5px var(--portal-main-color) solid !important; border: 5px var(--portal-main-color) solid !important;
border-radius: 50px; border-radius: 50px;
line-height: 21px; line-height: 21px;
margin-left: -20px; margin-left: -20px;
position: absolute; position: absolute;
top: 4px; top: 4px;
} }
contact .uk-text-danger { contact .uk-text-danger {
color: #B50000 !important; color: #B50000 !important;
font-size: 12px; font-size: 12px;
} }
.footer, .footer,
.footer .uk-section-primary { .footer .uk-section-primary {
background-color: #ffffff; background-color: #ffffff;
color: #000000 !important; color: #000000 !important;
font-family: "Open Sans", sans-serif !important; font-family: "Open Sans", sans-serif !important;
font-size: 14px !important; font-size: 14px !important;
font-weight: 400!important; font-weight: 400!important;
} }
.footer svg .stroke_line { .footer svg .stroke_line {
stroke: #000000 !important; stroke: #000000 !important;
} }
.footer svg .fill_text { .footer svg .fill_text {
fill: #000000 !important; fill: #000000 !important;
} }
.footer .uk-h6:not(.ignoreFooter), .footer .uk-h6:not(.ignoreFooter),
@ -177,81 +177,81 @@ contact .uk-text-danger {
.footer .uk-h3:not(.ignoreFooter), .footer .uk-h3:not(.ignoreFooter),
.footer .uk-h2:not(.ignoreFooter), .footer .uk-h2:not(.ignoreFooter),
.footer .uk-h1:not(.ignoreFooter) { .footer .uk-h1:not(.ignoreFooter) {
color: #000000 !important; color: #000000 !important;
} }
.footer .uk-link:not(.ignoreFooter), .footer .uk-link:not(.ignoreFooter),
.footer a:not(.uk-button):not(.uk-button-text):not(.ignoreFooter) { .footer a:not(.uk-button):not(.uk-button-text):not(.ignoreFooter) {
color: #000000 !important; color: #000000 !important;
font-family: "Open Sans", sans-serif !important; font-family: "Open Sans", sans-serif !important;
font-size: 14px !important; font-size: 14px !important;
} }
.footer .uk-icon-button { .footer .uk-icon-button {
border-color: rgba(0, 0, 0, 0.5); border-color: rgba(0, 0, 0, 0.5);
} }
.footer .uk-totop { .footer .uk-totop {
background-color: #ffffff; background-color: #ffffff;
} }
.footer .uk-totop svg { .footer .uk-totop svg {
color: rgba(0, 0, 0, 0.5); color: rgba(0, 0, 0, 0.5);
} }
.footer .uk-totop:hover svg { .footer .uk-totop:hover svg {
color: black; color: black;
} }
.footer .uk-link:not(.ignoreFooter):hover, .footer .uk-link:not(.ignoreFooter):hover,
.footer a:not(.uk-button):not(.uk-button-text):not(.ignoreFooter):hover { .footer a:not(.uk-button):not(.uk-button-text):not(.ignoreFooter):hover {
color: #000000 !important; color: #000000 !important;
} }
.footer .uk-label:not(.ignoreFooter) a { .footer .uk-label:not(.ignoreFooter) a {
border-color: #000000; border-color: #000000;
border-bottom: 1px solid; border-bottom: 1px solid;
} }
.footer .uk-label:not(.ignoreFooter) a:hover { .footer .uk-label:not(.ignoreFooter) a:hover {
border-color: rgba(0, 0, 0, 0.5); border-color: rgba(0, 0, 0, 0.5);
} }
.footer .uk-button:not(.ignoreFooter) { .footer .uk-button:not(.ignoreFooter) {
background-color: #ffffff !important; background-color: #ffffff !important;
color: black !important; color: black !important;
border-color: #ffffff !important; border-color: #ffffff !important;
border-style: solid !important; border-style: solid !important;
border-width: 1px !important; border-width: 1px !important;
} }
.footer .uk-button:not(.ignoreFooter):hover { .footer .uk-button:not(.ignoreFooter):hover {
background-color: #eeeeee !important; background-color: #eeeeee !important;
/*color: var(--portal-main-color) !important;*/ /*color: var(--portal-main-color) !important;*/
color: black !important; color: black !important;
border-color: #eeeeee !important; border-color: #eeeeee !important;
} }
navbar .uk-navbar-nav>li:hover>a, navbar.uk-navbar-nav>li>a.uk-open, navbar .uk-navbar-nav>li>a:focus, navbar .uk-navbar-nav>li.uk-active>a { navbar .uk-navbar-nav>li:hover>a, navbar.uk-navbar-nav>li>a.uk-open, navbar .uk-navbar-nav>li>a:focus, navbar .uk-navbar-nav>li.uk-active>a {
color: var(--portal-main-color); color: var(--portal-main-color);
} }
.uk-hr, hr { .uk-hr, hr {
border-color: #dedede; border-color: #dedede;
} }
@media only screen and (max-width: 959px) { @media only screen and (max-width: 959px) {
ul.portal-circle { ul.portal-circle {
padding-left: 20px; padding-left: 20px;
} }
ul.light-blue-triangle li { ul.light-blue-triangle li {
margin: 0 0 20px 0; margin: 0 0 20px 0;
} }
ul.light-blue-circle.large li { ul.light-blue-circle.large li {
margin: 0 0 20px 0; margin: 0 0 20px 0;
} }
} }

View File

@ -1,24 +1,14 @@
// This file is required by karma.conf.js and loads recursively all the .spec and framework files // This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'zone.js/dist/long-stack-trace-zone'; import 'zone.js/dist/zone-testing';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import { getTestBed } from '@angular/core/testing'; import { getTestBed } from '@angular/core/testing';
import { import {
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
platformBrowserDynamicTesting platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing'; } from '@angular/platform-browser-dynamic/testing';
// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
declare const __karma__: any;
declare const require: any; declare const require: any;
// Prevent Karma from running prematurely.
__karma__.loaded = function () {};
// First, initialize the Angular testing environment. // First, initialize the Angular testing environment.
getTestBed().initTestEnvironment( getTestBed().initTestEnvironment(
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
@ -28,5 +18,3 @@ getTestBed().initTestEnvironment(
const context = require.context('./', true, /\.spec\.ts$/); const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules. // And load the modules.
context.keys().map(context); context.keys().map(context);
// Finally, start Karma to run the tests.
__karma__.start();

View File

@ -1,23 +1,14 @@
{ {
"extends": "../tsconfig.json", "extends": "../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"paths": {
"*": [
"types/*"
]
},
"paths": {
"*": [
"types/*"
]
},
"outDir": "../out-tsc/app", "outDir": "../out-tsc/app",
"baseUrl": "./", "types": []
"module": "es2015",
"types": ["node"]
}, },
"exclude": [ "files": [
"test.ts", "main.ts",
"**/*.spec.ts" "polyfills.ts"
],
"include": [
"src/**/*.d.ts"
] ]
} }

View File

@ -2,9 +2,6 @@
"extends": "../tsconfig.json", "extends": "../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../out-tsc/spec", "outDir": "../out-tsc/spec",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [ "types": [
"jasmine", "jasmine",
"node" "node"

5
src/typings.d.ts vendored
View File

@ -1,5 +0,0 @@
/* SystemJS module definition */
declare var module: NodeModule;
interface NodeModule {
id: string;
}

View File

@ -1,22 +1,23 @@
{ {
"compileOnSave": false, "compileOnSave": false,
"compilerOptions": { "compilerOptions": {
"importHelpers": true, "baseUrl": "./",
"downlevelIteration": true,
"outDir": "./dist/out-tsc", "outDir": "./dist/out-tsc",
"sourceMap": true, "sourceMap": true,
"declaration": false, "declaration": false,
"module": "es2020",
"moduleResolution": "node", "moduleResolution": "node",
"emitDecoratorMetadata": true, "emitDecoratorMetadata": true,
"experimentalDecorators": true, "experimentalDecorators": true,
"target": "es5", "importHelpers": true,
"target": "es2015",
"typeRoots": [ "typeRoots": [
"node_modules/@types" "node_modules/@types"
], ],
"lib": [ "lib": [
"es2017", "es2018",
"dom" "dom"
], ]
"module": "es2015",
"baseUrl": "./"
} }
} }

View File

@ -1,141 +0,0 @@
{
"rulesDirectory": [
"node_modules/codelyzer"
],
"rules": {
"arrow-return-shorthand": true,
"callable-types": true,
"class-name": true,
"comment-format": [
true,
"check-space"
],
"curly": true,
"eofline": true,
"forin": true,
"import-blacklist": [
true
],
"import-spacing": true,
"indent": [
true,
"spaces"
],
"interface-over-type-literal": true,
"label-position": true,
"max-line-length": [
true,
140
],
"member-access": false,
"member-ordering": [
true,
{
"order": [
"static-field",
"instance-field",
"static-method",
"instance-method"
]
}
],
"no-arg": true,
"no-bitwise": true,
"no-console": [
true,
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"no-construct": true,
"no-debugger": true,
"no-duplicate-super": true,
"no-empty": false,
"no-empty-interface": true,
"no-eval": true,
"no-inferrable-types": [
true,
"ignore-params"
],
"no-misused-new": true,
"no-non-null-assertion": true,
"no-shadowed-variable": true,
"no-string-literal": false,
"no-string-throw": true,
"no-switch-case-fall-through": true,
"no-trailing-whitespace": true,
"no-unnecessary-initializer": true,
"no-unused-expression": true,
"no-use-before-declare": true,
"no-var-keyword": true,
"object-literal-sort-keys": false,
"one-line": [
true,
"check-open-brace",
"check-catch",
"check-else",
"check-whitespace"
],
"prefer-const": true,
"quotemark": [
true,
"single"
],
"radix": true,
"semicolon": [
true,
"always"
],
"triple-equals": [
true,
"allow-null-check"
],
"typedef-whitespace": [
true,
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
}
],
"typeof-compare": true,
"unified-signatures": true,
"variable-name": false,
"whitespace": [
true,
"check-branch",
"check-decl",
"check-operator",
"check-separator",
"check-type"
],
"directive-selector": [
true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"use-input-property-decorator": true,
"use-output-property-decorator": true,
"use-host-property-decorator": true,
"no-input-rename": true,
"no-output-rename": true,
"use-life-cycle-interface": true,
"use-pipe-transform-interface": true,
"component-class-suffix": true,
"directive-class-suffix": true,
"no-access-missing-member": true,
"templates-use-public": true,
"invoke-injectable": true
}
}