From 3997dd090e076bcd3f92562e231f118eb5cc731f Mon Sep 17 00:00:00 2001
From: seraph
Date: Wed, 22 Apr 2020 12:56:18 +0200
Subject: [PATCH 1/2] split config service & dispatch
---
angular.json | 29 +-
babel.config.json | 3 +
backend-api-endpoints-doc.md | 2 +
jest.config.js | 11 -
package.json | 46 +-
src/app/app-routing.module.ts | 20 +-
src/app/app.component.html | 31 +-
src/app/app.component.ts | 80 +-
src/app/app.module.ts | 112 ++-
src/app/config/PollConfig.ts | 8 +-
.../components/footer/footer.component.html | 1 +
.../components/footer/footer.component.scss} | 0
.../footer/footer.component.spec.ts} | 12 +-
.../components/footer/footer.component.ts | 12 +
.../components/logo/logo.component.html} | 9 +-
.../components/logo/logo.component.scss} | 0
.../components/logo/logo.component.spec.ts} | 12 +-
.../core/components/logo/logo.component.ts | 8 +
.../components/navbar/navbar.component.html | 1 +
.../components/navbar/navbar.component.scss} | 0
.../navbar/navbar.component.spec.ts} | 12 +-
.../components/navbar/navbar.component.ts | 12 +
.../page-not-found.component.html | 3 +
.../page-not-found.component.scss} | 0
.../page-not-found.component.spec.ts} | 12 +-
.../page-not-found.component.ts | 8 +
src/app/core/core.module.ts | 20 +
.../enums/answer-granularity.enum.ts | 0
.../enums/answer-type.enum.ts | 0
src/app/core/enums/language.enum.ts | 4 +
.../{shared => core}/enums/poll-type.enum.ts | 0
src/app/core/enums/theme.enum.ts | 5 +
src/app/core/guards/module-import.guard.ts | 5 +
.../interfaces/date-options.interface.ts | 0
.../{shared => core}/models/answer.model.ts | 0
.../models/poll-config.model.ts | 0
.../models/poll-options.model.ts | 0
src/app/{shared => core}/models/poll.model.ts | 0
src/app/{shared => core}/models/user.model.ts | 0
.../services/api.service.spec.ts | 0
.../{shared => core}/services/api.service.ts | 0
.../services/comment.service.spec.ts | 0
.../services/comment.service.ts | 0
.../services/poll.service.spec.ts | 0
.../{shared => core}/services/poll.service.ts | 5 +-
src/app/core/services/storage.service.spec.ts | 16 +
src/app/core/services/storage.service.ts | 19 +
.../services/theme.service.spec.ts | 0
src/app/core/services/theme.service.ts | 15 +
.../services/user.service.spec.ts | 0
.../{shared => core}/services/user.service.ts | 5 +-
.../services/vote.service.spec.ts | 0
.../{shared => core}/services/vote.service.ts | 0
.../utils}/date-utils.service.spec.ts | 0
.../utils}/date-utils.service.ts | 0
.../utils}/poll-utils.service.spec.ts | 0
.../utils}/poll-utils.service.ts | 0
.../administration-routing.module.ts | 12 +
.../administration.component.html | 1 +
.../administration.component.scss | 0
.../administration.component.spec.ts | 24 +
.../administration.component.ts | 12 +
.../administration/administration.module.ts | 13 +
.../participation-routing.module.ts | 12 +
.../participation.component.html | 2 +
.../participation.component.scss | 0
.../participation.component.spec.ts | 24 +
.../participation/participation.component.ts | 12 +
.../participation/participation.module.ts | 13 +
src/app/pages/admin/admin.component.ts | 2 +-
src/app/pages/answers/answers.component.ts | 2 +-
.../create-or-retrieve.component.html | 2 +-
.../create-or-retrieve.component.ts | 2 +-
src/app/pages/dates/dates.component.html | 2 +-
src/app/pages/dates/dates.component.ts | 2 +-
.../end-confirmation.component.html | 4 +-
.../end-confirmation.component.ts | 2 +-
.../pages/example/base-page/base.component.ts | 9 +-
.../pages/example/kind/kind.component.html | 2 +-
src/app/pages/example/kind/kind.component.ts | 2 +-
.../example/pictures/pictures.component.ts | 2 +-
src/app/pages/home/home.component.html | 8 +-
src/app/pages/home/home.component.ts | 2 +-
src/app/pages/password/password.component.ts | 2 +-
.../poll-display/poll-display.component.html | 12 +-
.../poll-display/poll-display.component.scss | 2 +-
.../poll-display/poll-display.component.ts | 2 +-
.../poll-graphic/poll-graphic.component.ts | 2 +-
src/app/pages/resume/resume.component.ts | 2 +-
.../visibility/visibility.component.html | 6 +-
.../pages/visibility/visibility.component.ts | 18 +-
.../choices-list/choices-list.component.html | 6 +-
.../choices-list/choices-list.component.ts | 2 +-
.../comments-list.component.html | 3 +-
.../comments-list/comments-list.component.ts | 2 +-
.../voting-choice.component.html | 2 +-
.../voting-choice.component.scss | 2 +-
.../voting-choice/voting-choice.component.ts | 2 +-
.../voting-comment.component.ts | 2 +-
.../voting-graph/voting-graph.component.html | 2 +-
.../voting-graph/voting-graph.component.ts | 2 +-
.../voting-navigation.component.ts | 2 +-
.../voting-summary.component.html | 4 +-
.../voting-summary.component.scss | 2 +-
.../voting-summary.component.ts | 2 +-
src/app/pages/voting/voting.component.ts | 2 +-
src/app/services/config.service.ts | 86 +-
src/app/shared/enums/theme.enum.ts | 5 -
src/app/shared/models/ui-config.model.ts | 5 -
src/app/shared/services/theme.service.ts | 8 -
src/app/shared/shared.module.ts | 4 +-
src/app/ui/copy-text/copy-text.component.ts | 2 +-
src/app/ui/debugger/debugger.component.ts | 2 +-
.../erasable-input.component.ts | 2 +-
.../navigation/header/header.component.html | 2 -
.../ui/navigation/header/header.component.ts | 12 -
.../master-head/master-head.component.ts | 12 -
src/app/ui/navigation/navigation.component.ts | 2 +-
.../two-links/two-links.component.ts | 2 +-
.../selector/language/language.component.html | 28 -
.../selector/language/language.component.ts | 70 --
src/app/ui/selector/selector.component.html | 10 -
src/app/ui/selector/selector.component.ts | 27 -
.../theme-selector.component.html | 24 -
.../theme-selector.component.ts | 21 -
.../language-selector.component.html | 10 +
.../language-selector.component.scss | 0
.../language-selector.component.spec.ts | 24 +
.../language-selector.component.ts | 38 +
.../theme-selector.component.html | 24 +
.../theme-selector.component.scss | 0
.../theme-selector.component.spec.ts | 0
.../theme-selector.component.ts | 25 +
src/assets/i18n/EN.json | 136 ++++
src/assets/i18n/FR.json | 136 ++++
src/assets/i18n/en.json | 132 ----
src/assets/i18n/fr.json | 132 ----
src/assets/scss/styles.scss | 35 -
src/environments/environment.prod.ts | 18 -
src/environments/environment.ts | 3 +-
src/index.html | 3 +-
src/jest.setup.ts | 26 +
src/styles.scss | 35 +
.../scss => styles}/dev-utilities/_debug.scss | 0
.../dev-utilities/_helpers.scss | 0
.../dev-utilities/_mixins.scss | 0
.../libraries/_frameworks.scss | 0
.../scss => styles}/libraries/_overrides.scss | 0
.../scss => styles}/partials/_buttons.scss | 0
.../partials/_font-families.scss | 0
.../partials/_form-controls.scss | 0
.../scss => styles}/partials/_forms.scss | 0
.../scss => styles}/partials/_images.scss | 0
.../scss => styles}/partials/_links.scss | 0
.../scss => styles}/partials/_logo.scss | 0
.../scss => styles}/partials/_main.scss | 0
.../scss => styles}/partials/_navigation.scss | 0
.../scss => styles}/partials/_responsive.scss | 0
.../scss => styles}/partials/_tables.scss | 0
.../scss => styles}/partials/_typo.scss | 5 -
.../scss => styles}/partials/global.scss | 0
src/{assets/scss => styles}/themes/_all.scss | 0
src/{assets/scss => styles}/themes/_base.scss | 0
src/{assets/scss => styles}/themes/_dark.scss | 0
.../themes/_high-contrast.scss | 0
.../scss => styles}/themes/_light.scss | 0
src/{assets/scss => styles}/themes/_red.scss | 0
src/{assets/scss => styles}/variables.scss | 0
tsconfig.spec.json | 5 +-
yarn.lock | 747 +++++++++---------
170 files changed, 1429 insertions(+), 1218 deletions(-)
create mode 100644 babel.config.json
delete mode 100644 jest.config.js
create mode 100644 src/app/core/components/footer/footer.component.html
rename src/app/{ui/navigation/header/header.component.scss => core/components/footer/footer.component.scss} (100%)
rename src/app/{ui/navigation/header/header.component.spec.ts => core/components/footer/footer.component.spec.ts} (56%)
create mode 100644 src/app/core/components/footer/footer.component.ts
rename src/app/{ui/navigation/master-head/master-head.component.html => core/components/logo/logo.component.html} (50%)
rename src/app/{ui/navigation/master-head/master-head.component.scss => core/components/logo/logo.component.scss} (100%)
rename src/app/{ui/selector/selector.component.spec.ts => core/components/logo/logo.component.spec.ts} (54%)
create mode 100644 src/app/core/components/logo/logo.component.ts
create mode 100644 src/app/core/components/navbar/navbar.component.html
rename src/app/{ui/selector/language/language.component.scss => core/components/navbar/navbar.component.scss} (100%)
rename src/app/{ui/selector/language/language.component.spec.ts => core/components/navbar/navbar.component.spec.ts} (54%)
create mode 100644 src/app/core/components/navbar/navbar.component.ts
create mode 100644 src/app/core/components/page-not-found/page-not-found.component.html
rename src/app/{ui/selector/selector.component.scss => core/components/page-not-found/page-not-found.component.scss} (100%)
rename src/app/{ui/navigation/master-head/master-head.component.spec.ts => core/components/page-not-found/page-not-found.component.spec.ts} (52%)
create mode 100644 src/app/core/components/page-not-found/page-not-found.component.ts
create mode 100644 src/app/core/core.module.ts
rename src/app/{shared => core}/enums/answer-granularity.enum.ts (100%)
rename src/app/{shared => core}/enums/answer-type.enum.ts (100%)
create mode 100644 src/app/core/enums/language.enum.ts
rename src/app/{shared => core}/enums/poll-type.enum.ts (100%)
create mode 100644 src/app/core/enums/theme.enum.ts
create mode 100644 src/app/core/guards/module-import.guard.ts
rename src/app/{shared => core}/interfaces/date-options.interface.ts (100%)
rename src/app/{shared => core}/models/answer.model.ts (100%)
rename src/app/{shared => core}/models/poll-config.model.ts (100%)
rename src/app/{shared => core}/models/poll-options.model.ts (100%)
rename src/app/{shared => core}/models/poll.model.ts (100%)
rename src/app/{shared => core}/models/user.model.ts (100%)
rename src/app/{shared => core}/services/api.service.spec.ts (100%)
rename src/app/{shared => core}/services/api.service.ts (100%)
rename src/app/{shared => core}/services/comment.service.spec.ts (100%)
rename src/app/{shared => core}/services/comment.service.ts (100%)
rename src/app/{shared => core}/services/poll.service.spec.ts (100%)
rename src/app/{shared => core}/services/poll.service.ts (91%)
create mode 100644 src/app/core/services/storage.service.spec.ts
create mode 100644 src/app/core/services/storage.service.ts
rename src/app/{shared => core}/services/theme.service.spec.ts (100%)
create mode 100644 src/app/core/services/theme.service.ts
rename src/app/{shared => core}/services/user.service.spec.ts (100%)
rename src/app/{shared => core}/services/user.service.ts (80%)
rename src/app/{shared => core}/services/vote.service.spec.ts (100%)
rename src/app/{shared => core}/services/vote.service.ts (100%)
rename src/app/{shared/services => core/utils}/date-utils.service.spec.ts (100%)
rename src/app/{shared/services => core/utils}/date-utils.service.ts (100%)
rename src/app/{shared/services => core/utils}/poll-utils.service.spec.ts (100%)
rename src/app/{shared/services => core/utils}/poll-utils.service.ts (100%)
create mode 100644 src/app/features/administration/administration-routing.module.ts
create mode 100644 src/app/features/administration/administration.component.html
create mode 100644 src/app/features/administration/administration.component.scss
create mode 100644 src/app/features/administration/administration.component.spec.ts
create mode 100644 src/app/features/administration/administration.component.ts
create mode 100644 src/app/features/administration/administration.module.ts
create mode 100644 src/app/features/participation/participation-routing.module.ts
create mode 100644 src/app/features/participation/participation.component.html
create mode 100644 src/app/features/participation/participation.component.scss
create mode 100644 src/app/features/participation/participation.component.spec.ts
create mode 100644 src/app/features/participation/participation.component.ts
create mode 100644 src/app/features/participation/participation.module.ts
delete mode 100644 src/app/shared/enums/theme.enum.ts
delete mode 100644 src/app/shared/models/ui-config.model.ts
delete mode 100644 src/app/shared/services/theme.service.ts
delete mode 100644 src/app/ui/navigation/header/header.component.html
delete mode 100644 src/app/ui/navigation/header/header.component.ts
delete mode 100644 src/app/ui/navigation/master-head/master-head.component.ts
delete mode 100644 src/app/ui/selector/language/language.component.html
delete mode 100644 src/app/ui/selector/language/language.component.ts
delete mode 100644 src/app/ui/selector/selector.component.html
delete mode 100644 src/app/ui/selector/selector.component.ts
delete mode 100644 src/app/ui/selector/theme-selector/theme-selector.component.html
delete mode 100644 src/app/ui/selector/theme-selector/theme-selector.component.ts
create mode 100644 src/app/ui/selectors/language-selector/language-selector.component.html
create mode 100644 src/app/ui/selectors/language-selector/language-selector.component.scss
create mode 100644 src/app/ui/selectors/language-selector/language-selector.component.spec.ts
create mode 100644 src/app/ui/selectors/language-selector/language-selector.component.ts
create mode 100644 src/app/ui/selectors/theme-selector/theme-selector.component.html
rename src/app/ui/{selector => selectors}/theme-selector/theme-selector.component.scss (100%)
rename src/app/ui/{selector => selectors}/theme-selector/theme-selector.component.spec.ts (100%)
create mode 100644 src/app/ui/selectors/theme-selector/theme-selector.component.ts
create mode 100644 src/assets/i18n/EN.json
create mode 100644 src/assets/i18n/FR.json
delete mode 100644 src/assets/i18n/en.json
delete mode 100644 src/assets/i18n/fr.json
delete mode 100644 src/assets/scss/styles.scss
create mode 100644 src/jest.setup.ts
create mode 100644 src/styles.scss
rename src/{assets/scss => styles}/dev-utilities/_debug.scss (100%)
rename src/{assets/scss => styles}/dev-utilities/_helpers.scss (100%)
rename src/{assets/scss => styles}/dev-utilities/_mixins.scss (100%)
rename src/{assets/scss => styles}/libraries/_frameworks.scss (100%)
rename src/{assets/scss => styles}/libraries/_overrides.scss (100%)
rename src/{assets/scss => styles}/partials/_buttons.scss (100%)
rename src/{assets/scss => styles}/partials/_font-families.scss (100%)
rename src/{assets/scss => styles}/partials/_form-controls.scss (100%)
rename src/{assets/scss => styles}/partials/_forms.scss (100%)
rename src/{assets/scss => styles}/partials/_images.scss (100%)
rename src/{assets/scss => styles}/partials/_links.scss (100%)
rename src/{assets/scss => styles}/partials/_logo.scss (100%)
rename src/{assets/scss => styles}/partials/_main.scss (100%)
rename src/{assets/scss => styles}/partials/_navigation.scss (100%)
rename src/{assets/scss => styles}/partials/_responsive.scss (100%)
rename src/{assets/scss => styles}/partials/_tables.scss (100%)
rename src/{assets/scss => styles}/partials/_typo.scss (80%)
rename src/{assets/scss => styles}/partials/global.scss (100%)
rename src/{assets/scss => styles}/themes/_all.scss (100%)
rename src/{assets/scss => styles}/themes/_base.scss (100%)
rename src/{assets/scss => styles}/themes/_dark.scss (100%)
rename src/{assets/scss => styles}/themes/_high-contrast.scss (100%)
rename src/{assets/scss => styles}/themes/_light.scss (100%)
rename src/{assets/scss => styles}/themes/_red.scss (100%)
rename src/{assets/scss => styles}/variables.scss (100%)
diff --git a/angular.json b/angular.json
index 375890f2..f9451678 100644
--- a/angular.json
+++ b/angular.json
@@ -12,7 +12,7 @@
},
"root": "",
"sourceRoot": "src",
- "prefix": "framadate",
+ "prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
@@ -23,16 +23,13 @@
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
- "assets": [
- "src/favicon.ico",
- "src/assets"
- ],
+ "assets": ["src/favicon.ico", "src/assets"],
"styles": [
+ "node_modules/fork-awesome/css/fork-awesome.min.css",
"node_modules/primeicons/primeicons.css",
- "node_modules/font-awesome/css/font-awesome.css",
"node_modules/primeng/resources/themes/nova-light/theme.css",
"node_modules/primeng/resources/primeng.min.css",
- "src/assets/scss/styles.scss"
+ "src/styles.scss"
],
"scripts": [
"node_modules/marked/lib/marked.js",
@@ -90,20 +87,13 @@
},
"test": {
"builder": "@angular-builders/jest:run",
- "options": {
- }
+ "options": {}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
- "tsConfig": [
- "tsconfig.app.json",
- "tsconfig.spec.json",
- "e2e/tsconfig.json"
- ],
- "exclude": [
- "**/node_modules/**"
- ]
+ "tsConfig": ["tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json"],
+ "exclude": ["**/node_modules/**"]
}
},
"e2e": {
@@ -121,5 +111,8 @@
}
}
},
- "defaultProject": "framadate"
+ "defaultProject": "framadate",
+ "cli": {
+ "analytics": "0ba9c0a9-850f-4c5f-8124-cbe6f4c79ef1"
+ }
}
diff --git a/babel.config.json b/babel.config.json
new file mode 100644
index 00000000..526ddfd8
--- /dev/null
+++ b/babel.config.json
@@ -0,0 +1,3 @@
+{
+ "presets": ["@babel/preset-env"]
+}
diff --git a/backend-api-endpoints-doc.md b/backend-api-endpoints-doc.md
index 2f337e05..63e99b0c 100644
--- a/backend-api-endpoints-doc.md
+++ b/backend-api-endpoints-doc.md
@@ -1,3 +1,5 @@
+// TODO: File to be deleted : just temporary documentation of backend API endpoints
+
/**
*
* -------------------------- -------- -------- ------ ------------------------------------------------
diff --git a/jest.config.js b/jest.config.js
deleted file mode 100644
index 6f6675dd..00000000
--- a/jest.config.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import 'jest-preset-angular';
-// const { defaults } = require('jest-config');
-
-//
-// module.exports = {
-// verbose: true,
-// collectCoverage: true,
-// // collectCoverageFrom: ['src/**/*.ts'],
-// collectCoverageFrom: ['src/app/pages/admin/*.ts'],
-// };
-Error.stackTraceLimit = 2;
diff --git a/package.json b/package.json
index 81d1677e..f71a5d2c 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "framadate-funky-frontend",
"version": "1.0.0",
- "licence": "AGPL-3.0-or-later",
+ "license": "AGPL-3.0-or-later",
"scripts": {
"ng": "ng",
"start": "ng serve",
@@ -41,17 +41,14 @@
"bulma": "^0.8.2",
"chart.js": "^2.8.0",
"date-fns": "^2.12.0",
- "font-awesome": "^4.7.0",
- "jest-preset-angular": "^8.1.3",
- "karma-coverage": "^2.0.1",
- "karma-firefox-launcher": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.4",
+ "fork-awesome": "^1.1.7",
"locale-enum": "^1.1.0",
"ngx-clipboard": "^13.0.0",
"ngx-markdown": "^9.0.0",
"ngx-toaster": "^1.0.1",
+ "ngx-webstorage": "^5.0.0",
"primeicons": "^2.0.0",
- "primeng": "^9.0.5",
+ "primeng": "^9.0.6",
"quill": "^1.3.7",
"rxjs": "^6.5.5",
"rxjs-compat": "^6.5.5",
@@ -61,35 +58,39 @@
},
"devDependencies": {
"@angular-builders/jest": "^9.0.1",
- "@angular-devkit/build-angular": "^0.901.1",
- "@angular/cli": "^9.0.7",
+ "@angular-devkit/build-angular": "^0.901.2",
+ "@angular/cli": "^9.1.2",
"@angular/compiler-cli": "^9.1.1",
"@angular/language-service": "^9.0.7",
"@babel/core": "^7.9.0",
+ "@babel/preset-env": "^7.9.5",
"@storybook/addon-actions": "^5.3.18",
"@storybook/addon-links": "^5.3.18",
"@storybook/addon-notes": "^5.3.18",
"@storybook/addons": "^5.3.18",
"@storybook/angular": "^5.3.18",
- "@types/jasminewd2": "~2.0.8",
"@types/jest": "^25.2.1",
- "@types/node": "^13.11.1",
+ "@types/node": "^13.13.2",
"@types/uuid": "^7.0.2",
"@typescript-eslint/eslint-plugin": "^2.27.0",
"@typescript-eslint/parser": "^2.27.0",
+ "babel-jest": "^25.4.0",
"babel-loader": "^8.1.0",
+ "babel-polyfill": "^6.26.0",
"compodoc": "^0.0.41",
"eslint": "^6.8.0",
- "eslint-config-prettier": "^6.10.1",
+ "eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.3",
"husky": "^4.2.5",
- "jasmine-core": "~3.5.0",
- "jasmine-spec-reporter": "~5.0.1",
- "jest": "^25.3.0",
- "lint-staged": "^10.1.3",
- "prettier": "^2.0.4",
+ "jest": "^25.4.0",
+ "jest-environment-jsdom-sixteen": "^1.0.3",
+ "jest-preset-angular": "^8.1.3",
+ "lint-staged": "^10.1.7",
+ "prettier": "^2.0.5",
"protractor": "~5.4.3",
- "ts-node": "~8.8.2",
+ "ts-jest": "^25.4.0",
+ "ts-mockito": "^2.5.0",
+ "ts-node": "~8.9.0",
"typescript": "~3.8.3"
},
"husky": {
@@ -106,6 +107,13 @@
},
"jest": {
"preset": "jest-preset-angular",
- "setupFilesAfterEnv": "./jest.config.js"
+ "setupFilesAfterEnv": [
+ "/src/jest.setup.ts"
+ ],
+ "testEnvironment": "jest-environment-jsdom-sixteen",
+ "transform": {
+ "^.+\\.(ts|html)$": "ts-jest",
+ "^.+\\.jsx?$": "babel-jest"
+ }
}
}
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 3bd0ec77..917948fe 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,22 +1,23 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
+import { PageNotFoundComponent } from './core/components/page-not-found/page-not-found.component';
import { AdminComponent } from './pages/admin/admin.component';
import { AnswersComponent } from './pages/answers/answers.component';
-import { BaseComponent } from './pages/example/base-page/base.component';
import { CreateOrRetrieveComponent } from './pages/create-or-retrieve/create-or-retrieve.component';
import { DatesComponent } from './pages/dates/dates.component';
import { EndConfirmationComponent } from './pages/end-confirmation/end-confirmation.component';
-import { HomeComponent } from './pages/home/home.component';
+import { BaseComponent } from './pages/example/base-page/base.component';
import { KindComponent } from './pages/example/kind/kind.component';
-import { PasswordComponent } from './pages/password/password.component';
import { PicturesComponent } from './pages/example/pictures/pictures.component';
+import { HomeComponent } from './pages/home/home.component';
+import { PasswordComponent } from './pages/password/password.component';
import { PollDisplayComponent } from './pages/poll/poll-display/poll-display.component';
+import { PollGraphicComponent } from './pages/poll/poll-graphic/poll-graphic.component';
import { ResumeComponent } from './pages/resume/resume.component';
import { VisibilityComponent } from './pages/visibility/visibility.component';
import { VotingChoiceComponent } from './pages/voting/voting-choice/voting-choice.component';
import { VotingComponent } from './pages/voting/voting.component';
-import { PollGraphicComponent } from './pages/poll/poll-graphic/poll-graphic.component';
const routes: Routes = [
{ path: '', redirectTo: 'step/creation', pathMatch: 'full' },
@@ -39,7 +40,16 @@ const routes: Routes = [
{ path: 'votingchoice', component: VotingChoiceComponent },
{ path: 'voting', component: VotingComponent },
{ path: 'step/password', component: PasswordComponent },
- { path: '**', redirectTo: '/home', pathMatch: 'full' },
+ {
+ path: 'administration',
+ loadChildren: () =>
+ import('./features/administration/administration.module').then((m) => m.AdministrationModule),
+ },
+ {
+ path: 'participation',
+ loadChildren: () => import('./features/participation/participation.module').then((m) => m.ParticipationModule),
+ },
+ { path: '**', component: PageNotFoundComponent },
];
@NgModule({
diff --git a/src/app/app.component.html b/src/app/app.component.html
index a1039ab2..30173eef 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,12 +1,25 @@
-
+
@@ -44,13 +44,13 @@
placeholder="{{ 'creation.name_placeholder' | translate }}"
type="name"
/>
-
+
{{ 'creation.description' | translate }}:
-
+
-
+
diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts
index 6fd4fb26..49dd54fc 100644
--- a/src/app/pages/home/home.component.ts
+++ b/src/app/pages/home/home.component.ts
@@ -3,7 +3,7 @@ import { ConfigService } from '../../services/config.service';
import { BaseComponent } from '../example/base-page/base.component';
@Component({
- selector: 'framadate-home',
+ selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
})
diff --git a/src/app/pages/password/password.component.ts b/src/app/pages/password/password.component.ts
index 028c8afc..ccc1bc58 100644
--- a/src/app/pages/password/password.component.ts
+++ b/src/app/pages/password/password.component.ts
@@ -3,7 +3,7 @@ import { BaseComponent } from '../example/base-page/base.component';
import { ConfigService } from '../../services/config.service';
@Component({
- selector: 'framadate-password',
+ selector: 'app-password',
templateUrl: './password.component.html',
styleUrls: ['./password.component.scss'],
})
diff --git a/src/app/pages/poll/poll-display/poll-display.component.html b/src/app/pages/poll/poll-display/poll-display.component.html
index 83b5c306..c6b4bbc8 100644
--- a/src/app/pages/poll/poll-display/poll-display.component.html
+++ b/src/app/pages/poll/poll-display/poll-display.component.html
@@ -12,17 +12,17 @@
-
+
@@ -38,7 +38,7 @@
-
+
Exporter/Imprimer
diff --git a/src/app/pages/poll/poll-display/poll-display.component.scss b/src/app/pages/poll/poll-display/poll-display.component.scss
index 06495170..45a533cd 100644
--- a/src/app/pages/poll/poll-display/poll-display.component.scss
+++ b/src/app/pages/poll/poll-display/poll-display.component.scss
@@ -1 +1 @@
-@import '../../../../assets/scss/variables';
+@import '../../../../styles/variables';
diff --git a/src/app/pages/poll/poll-display/poll-display.component.ts b/src/app/pages/poll/poll-display/poll-display.component.ts
index 691bc6d1..683b84ef 100644
--- a/src/app/pages/poll/poll-display/poll-display.component.ts
+++ b/src/app/pages/poll/poll-display/poll-display.component.ts
@@ -7,7 +7,7 @@ import { environment } from '../../../../environments/environment';
import { mockPoll3 } from '../../../mocks/mock-poll3';
@Component({
- selector: 'framadate-poll-display',
+ selector: 'app-poll-display',
templateUrl: './poll-display.component.html',
styleUrls: ['./poll-display.component.scss'],
})
diff --git a/src/app/pages/poll/poll-graphic/poll-graphic.component.ts b/src/app/pages/poll/poll-graphic/poll-graphic.component.ts
index 8bd83d3e..01b2c5df 100644
--- a/src/app/pages/poll/poll-graphic/poll-graphic.component.ts
+++ b/src/app/pages/poll/poll-graphic/poll-graphic.component.ts
@@ -6,7 +6,7 @@ import { ConfigService } from '../../../services/config.service';
import { mockPoll3 } from '../../../mocks/mock-poll3';
@Component({
- selector: 'framadate-poll-graphic',
+ selector: 'app-poll-graphic',
templateUrl: './poll-graphic.component.html',
styleUrls: ['./poll-graphic.component.scss'],
})
diff --git a/src/app/pages/resume/resume.component.ts b/src/app/pages/resume/resume.component.ts
index f39b802b..16f1398f 100644
--- a/src/app/pages/resume/resume.component.ts
+++ b/src/app/pages/resume/resume.component.ts
@@ -4,7 +4,7 @@ import { ConfigService } from '../../services/config.service';
import { Router } from '@angular/router';
@Component({
- selector: 'framadate-resume',
+ selector: 'app-resume',
templateUrl: './resume.component.html',
styleUrls: ['./resume.component.scss'],
})
diff --git a/src/app/pages/visibility/visibility.component.html b/src/app/pages/visibility/visibility.component.html
index 0bf89a1a..b374e68b 100644
--- a/src/app/pages/visibility/visibility.component.html
+++ b/src/app/pages/visibility/visibility.component.html
@@ -105,7 +105,7 @@
{{ '#/vote/poll/slug/' + config.customUrl }}
-
+
@@ -150,7 +150,9 @@
{{ 'visibility.validate_btn' | translate }}
-
+
+
+
diff --git a/src/app/pages/visibility/visibility.component.ts b/src/app/pages/visibility/visibility.component.ts
index d266fcee..a1d1859c 100644
--- a/src/app/pages/visibility/visibility.component.ts
+++ b/src/app/pages/visibility/visibility.component.ts
@@ -1,24 +1,26 @@
+import { Location } from '@angular/common';
import { Component, OnInit } from '@angular/core';
-import { BaseComponent } from '../example/base-page/base.component';
-import { ConfigService } from '../../services/config.service';
+
import { environment } from '../../../environments/environment';
import { PollUtilities } from '../../config/PollUtilities';
+import { ConfigService } from '../../services/config.service';
+import { BaseComponent } from '../example/base-page/base.component';
@Component({
- selector: 'framadate-visibility',
+ selector: 'app-visibility',
templateUrl: './visibility.component.html',
styleUrls: ['./visibility.component.scss'],
})
export class VisibilityComponent extends BaseComponent implements OnInit {
- showCustomPassword = false;
- baseUrl = environment.api.baseHref;
- environment = environment;
+ public location: Location;
+ public showCustomPassword = false;
+ public baseUrl = environment.api.baseHref;
constructor(public config: ConfigService, public utils: PollUtilities) {
super(config);
}
- ngOnInit() {
+ ngOnInit(): void {
this.config.customUrl = this.utils.makeSlug(this.config);
this.config.expirationDate = this.config
.addDaysToDate(this.config.expiracyDateDefaultInDays, new Date())
@@ -26,7 +28,7 @@ export class VisibilityComponent extends BaseComponent implements OnInit {
.substring(0, 10);
}
- submitCreationAndGoToEnd() {
+ public submitCreationAndGoToEnd(): void {
this.config.createPoll();
}
}
diff --git a/src/app/pages/voting/choices-list/choices-list.component.html b/src/app/pages/voting/choices-list/choices-list.component.html
index 75c157a6..3f6c828c 100644
--- a/src/app/pages/voting/choices-list/choices-list.component.html
+++ b/src/app/pages/voting/choices-list/choices-list.component.html
@@ -1,11 +1,11 @@
@@ -24,6 +24,6 @@
(click)="config.updateVote(config.myVoteStack)"
*ngIf="config.myVoteStack && config.myVoteStack.id"
>
- Mettre à jour
+ Mettre à jour
diff --git a/src/app/pages/voting/choices-list/choices-list.component.ts b/src/app/pages/voting/choices-list/choices-list.component.ts
index 2c7a4836..bc7e3edc 100644
--- a/src/app/pages/voting/choices-list/choices-list.component.ts
+++ b/src/app/pages/voting/choices-list/choices-list.component.ts
@@ -2,7 +2,7 @@ import { Component } from '@angular/core';
import { ConfigService } from '../../../services/config.service';
@Component({
- selector: 'framadate-choices-list',
+ selector: 'app-choices-list',
templateUrl: './choices-list.component.html',
styleUrls: ['./choices-list.component.scss'],
})
diff --git a/src/app/pages/voting/comments-list/comments-list.component.html b/src/app/pages/voting/comments-list/comments-list.component.html
index 741ab2a4..94f6e71c 100644
--- a/src/app/pages/voting/comments-list/comments-list.component.html
+++ b/src/app/pages/voting/comments-list/comments-list.component.html
@@ -28,7 +28,6 @@
(click)="config.addComment()"
/>
diff --git a/src/app/pages/voting/comments-list/comments-list.component.ts b/src/app/pages/voting/comments-list/comments-list.component.ts
index 0a37d4de..f679e95d 100644
--- a/src/app/pages/voting/comments-list/comments-list.component.ts
+++ b/src/app/pages/voting/comments-list/comments-list.component.ts
@@ -2,7 +2,7 @@ import { Component } from '@angular/core';
import { ConfigService } from '../../../services/config.service';
@Component({
- selector: 'framadate-comments-list',
+ selector: 'app-comments-list',
templateUrl: './comments-list.component.html',
styleUrls: ['./comments-list.component.scss'],
})
diff --git a/src/app/pages/voting/voting-choice/voting-choice.component.html b/src/app/pages/voting/voting-choice/voting-choice.component.html
index ca2d2ff8..3be623df 100644
--- a/src/app/pages/voting/voting-choice/voting-choice.component.html
+++ b/src/app/pages/voting/voting-choice/voting-choice.component.html
@@ -5,7 +5,7 @@
class="btn btn--primary manage"
(click)="choice.simpleAnswer = !choice.simpleAnswer"
>
-
+
diff --git a/src/app/pages/voting/voting-choice/voting-choice.component.scss b/src/app/pages/voting/voting-choice/voting-choice.component.scss
index 94a53856..00028e40 100644
--- a/src/app/pages/voting/voting-choice/voting-choice.component.scss
+++ b/src/app/pages/voting/voting-choice/voting-choice.component.scss
@@ -5,7 +5,7 @@
// -- IMPORTS
// ----------------------------
-@import '../../../../assets/scss/variables';
+@import '../../../../styles/variables';
// -- VARIABLES
// ----------------------------
diff --git a/src/app/pages/voting/voting-choice/voting-choice.component.ts b/src/app/pages/voting/voting-choice/voting-choice.component.ts
index 664eb457..74693cfc 100644
--- a/src/app/pages/voting/voting-choice/voting-choice.component.ts
+++ b/src/app/pages/voting/voting-choice/voting-choice.component.ts
@@ -20,7 +20,7 @@ interface VoteChoice {
* this component is used to select a date choice, or a name answer
*/
@Component({
- selector: 'framadate-voting-choice',
+ selector: 'app-voting-choice',
templateUrl: './voting-choice.component.html',
styleUrls: ['./voting-choice.component.scss'],
})
diff --git a/src/app/pages/voting/voting-comment/voting-comment.component.ts b/src/app/pages/voting/voting-comment/voting-comment.component.ts
index a12cef00..37691dda 100644
--- a/src/app/pages/voting/voting-comment/voting-comment.component.ts
+++ b/src/app/pages/voting/voting-comment/voting-comment.component.ts
@@ -2,7 +2,7 @@ import { Component, Input, OnInit } from '@angular/core';
import { mockComments } from '../../../mocks/mock-comments';
@Component({
- selector: 'framadate-voting-comment',
+ selector: 'app-voting-comment',
templateUrl: './voting-comment.component.html',
styleUrls: ['./voting-comment.component.scss'],
})
diff --git a/src/app/pages/voting/voting-graph/voting-graph.component.html b/src/app/pages/voting/voting-graph/voting-graph.component.html
index 414df62b..4538ee13 100644
--- a/src/app/pages/voting/voting-graph/voting-graph.component.html
+++ b/src/app/pages/voting/voting-graph/voting-graph.component.html
@@ -1,2 +1,2 @@
Graphique
-
+
diff --git a/src/app/pages/voting/voting-graph/voting-graph.component.ts b/src/app/pages/voting/voting-graph/voting-graph.component.ts
index fdc0aa9f..92916dee 100644
--- a/src/app/pages/voting/voting-graph/voting-graph.component.ts
+++ b/src/app/pages/voting/voting-graph/voting-graph.component.ts
@@ -3,7 +3,7 @@ import { BaseComponent } from '../../example/base-page/base.component';
import { ConfigService } from '../../../services/config.service';
@Component({
- selector: 'framadate-voting-graph',
+ selector: 'app-voting-graph',
templateUrl: './voting-graph.component.html',
styleUrls: ['./voting-graph.component.scss'],
})
diff --git a/src/app/pages/voting/voting-navigation/voting-navigation.component.ts b/src/app/pages/voting/voting-navigation/voting-navigation.component.ts
index e2a3dfb3..eb5c58dd 100644
--- a/src/app/pages/voting/voting-navigation/voting-navigation.component.ts
+++ b/src/app/pages/voting/voting-navigation/voting-navigation.component.ts
@@ -2,7 +2,7 @@ import { Component } from '@angular/core';
import { ConfigService } from '../../../services/config.service';
@Component({
- selector: 'framadate-voting-navigation',
+ selector: 'app-voting-navigation',
templateUrl: './voting-navigation.component.html',
styleUrls: ['./voting-navigation.component.scss'],
})
diff --git a/src/app/pages/voting/voting-summary/voting-summary.component.html b/src/app/pages/voting/voting-summary/voting-summary.component.html
index 27fa273d..09fc7c6b 100644
--- a/src/app/pages/voting/voting-summary/voting-summary.component.html
+++ b/src/app/pages/voting/voting-summary/voting-summary.component.html
@@ -85,7 +85,7 @@
*ngIf="config.currentPoll.poll.modificationPolicy === 'everybody'"
class="btn btn--primary pull-left btn--small"
>
-
+
{{ voteStack.pseudo }}
@@ -139,7 +139,7 @@
{{ config.urlAdmin }}
-
+
Conservez-le précieusement !
diff --git a/src/app/pages/voting/voting-summary/voting-summary.component.scss b/src/app/pages/voting/voting-summary/voting-summary.component.scss
index ae9b118d..664d0ed0 100644
--- a/src/app/pages/voting/voting-summary/voting-summary.component.scss
+++ b/src/app/pages/voting/voting-summary/voting-summary.component.scss
@@ -1,4 +1,4 @@
-@import '../../../../assets/scss/variables';
+@import '../../../../styles/variables';
.person {
font-weight: 700;
diff --git a/src/app/pages/voting/voting-summary/voting-summary.component.ts b/src/app/pages/voting/voting-summary/voting-summary.component.ts
index eeba887e..00c57034 100644
--- a/src/app/pages/voting/voting-summary/voting-summary.component.ts
+++ b/src/app/pages/voting/voting-summary/voting-summary.component.ts
@@ -3,7 +3,7 @@ import { ConfigService } from '../../../services/config.service';
import { mockPoll3 } from '../../../mocks/mock-poll3';
@Component({
- selector: 'framadate-voting-summary',
+ selector: 'app-voting-summary',
templateUrl: './voting-summary.component.html',
styleUrls: ['./voting-summary.component.scss'],
})
diff --git a/src/app/pages/voting/voting.component.ts b/src/app/pages/voting/voting.component.ts
index ed6d5479..fbc15f83 100644
--- a/src/app/pages/voting/voting.component.ts
+++ b/src/app/pages/voting/voting.component.ts
@@ -1,7 +1,7 @@
import { Component, OnInit } from '@angular/core';
@Component({
- selector: 'framadate-voting',
+ selector: 'app-voting',
templateUrl: './voting.component.html',
styleUrls: ['./voting.component.scss'],
})
diff --git a/src/app/services/config.service.ts b/src/app/services/config.service.ts
index ff23a6a3..fea54d57 100644
--- a/src/app/services/config.service.ts
+++ b/src/app/services/config.service.ts
@@ -1,20 +1,14 @@
-import { Injectable } from '@angular/core';
-import { PollConfig } from '../config/PollConfig';
import { HttpClient } from '@angular/common/http';
-import { environment } from '../../environments/environment';
-import { ConfirmationService, MessageService } from 'primeng/api';
+import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
-import { mockMyPolls } from '../mocks/mockmypolls';
+import { ConfirmationService, MessageService } from 'primeng/api';
+
+import { environment } from '../../environments/environment';
+import { PollConfig } from '../config/PollConfig';
+import { PollUtilities } from '../config/PollUtilities';
import { mockPoll3 } from '../mocks/mock-poll3';
import { mockSuccessVote } from '../mocks/mock-success-vote';
-import { PollUtilities } from '../config/PollUtilities';
-
-const LocalstoragePreferences = {
- themeName: 'light-watermelon',
- themeClass: 'theme-light-watermelon',
- lang: 'fr',
- myPolls: [],
-};
+import { mockMyPolls } from '../mocks/mockmypolls';
/**
* le service transverse à chaque page qui permet de syncroniser la configuration de sondage souhaitée
@@ -23,7 +17,6 @@ const LocalstoragePreferences = {
providedIn: 'root',
})
export class ConfigService extends PollConfig {
- preferences: any = LocalstoragePreferences; // user specific preferences, stored in localstorage, used for theme.
loading = false;
apiBaseHref: any = environment.api.baseHref;
@@ -36,68 +29,29 @@ export class ConfigService extends PollConfig {
) {
super();
this.fillValuesOnDevEnv();
- this.findLocalStoragePreferences();
}
set(key, val) {
+ // TODO: à supprimer
this[key] = val;
}
// fill in mock values if we are not in production environment
fillValuesOnDevEnv() {
if (!environment.production) {
- console.info(' ######### framadate ######### we are not in production env, filling with mock values');
+ // TODO: on poussera les données mockées directement dans le service avec un .next(mockPoll3)
this.currentPoll = mockPoll3;
this.myPolls = mockMyPolls;
}
}
- findLocalStoragePreferences() {
- const storage = window.localStorage;
- console.log('this.preferences', this.preferences);
- console.log('storage', storage);
-
- if (storage) {
- const preferences = storage.getItem('FramadateConfig');
-
- if (preferences) {
- const parsed = JSON.parse(preferences);
- console.log('parsed', parsed);
- this.preferences = parsed;
- }
- } else {
- console.error('pas de localstorage');
- this.preferences = LocalstoragePreferences;
- }
- this.saveLocalStoragePreferences();
- }
-
- setPreference(key, value) {
- if (this.preferences) {
- this.preferences[key] = value;
- if (key === 'themeName' && this.themeChoices.includes(value)) {
- this.themeSelected = this.themeChoices.indexOf(value);
- this.preferences.themeClass = this.themeClass = `theme-${value}`;
- }
- this.saveLocalStoragePreferences();
- }
- }
-
- saveLocalStoragePreferences() {
- const storage = window.localStorage;
- if (storage) {
- const preferences = storage.setItem('FramadateConfig', JSON.stringify(this.preferences));
- } else {
- console.error('pas de localstorage');
- }
- }
-
/**
* add some days to a date, to compute intervals
* @param days
* @param date
*/
addDaysToDate(days: number, date: Date) {
+ // TODO: -> DateUtilsService
date = new Date(date.valueOf());
date.setDate(date.getDate() + days);
return date;
@@ -112,6 +66,7 @@ export class ConfigService extends PollConfig {
* convert current poll config to a payload to send to the backend API
*/
getPollConfig() {
+ // TODO: la logique m'échappe. Un service ne devrait pas étendre une entité.
const jsonConfig = {
owner: {
email: this.myEmail,
@@ -139,6 +94,7 @@ export class ConfigService extends PollConfig {
}
checkIfSlugIsUniqueInDatabase(slug = '') {
+ // TODO: http requests moved to apiService
this.customUrlIsUnique = null;
if (!slug) {
slug = this.utils.makeSlug(this);
@@ -163,6 +119,8 @@ export class ConfigService extends PollConfig {
* @param email
*/
findPollsByEmail(email: string) {
+ // TODO: http requests moved to apiService
+
this.findLocalStorageData();
// If no key is found in the localstorage, ask the backend to send an email to the user
@@ -192,6 +150,7 @@ export class ConfigService extends PollConfig {
* @param err
*/
handleError(err: any) {
+ // TODO: inutile, l'utilisateur ne veut pas savoir ce que le backend répond
console.error('err', err);
this.loading = false;
this.messageService.add({ severity: 'warning', summary: "Erreur lors de l'appel ", detail: err.message });
@@ -210,6 +169,7 @@ export class ConfigService extends PollConfig {
* @param url
*/
getPollByURL(url: string) {
+ // TODO: http requests moved to apiService
this.todo();
return this.http.get(`${this.apiBaseHref}/poll/slug/${url}`, this.utils.makeHeaders());
}
@@ -220,11 +180,12 @@ export class ConfigService extends PollConfig {
* @param id
*/
getPollById(id: string, password?: string) {
+ // TODO: http requests moved to apiService
return this.http.get(`${this.apiBaseHref}/poll/${id}`, this.utils.makeHeaders({ body: password }));
}
fetchPollFromRoute(event) {
- console.log('time to fetch poll', event);
+ // console.log('time to fetch poll', event);
}
/**
@@ -233,6 +194,7 @@ export class ConfigService extends PollConfig {
* @param ownerEmail
*/
getMyPolls(ownerEmail: string) {
+ // TODO: http requests moved to apiService
this.http.get(`${this.apiBaseHref}/my-polls`, this.utils.makeHeaders({ ownerEmail })).subscribe(
(res: any) => {
// this.myPolls = res.poll;
@@ -247,11 +209,13 @@ export class ConfigService extends PollConfig {
* launch creation call to the api
*/
createPoll() {
+ // TODO: to be dispatched between pollService & AdministrationModule
this.loading = true;
this.createPollFromConfig(this.getPollConfig());
}
updateCurrentPollFromResponse(res: any) {
+ // TODO: handled by ApiService & PollService
console.log('update res', res);
this.currentPoll = res;
this.pollId = res.poll.id;
@@ -269,6 +233,7 @@ export class ConfigService extends PollConfig {
}
resetCurrentChoicesAnswers() {
+ // TODO: to be handled directly in component
this.currentPoll.choices.map((choice) => {
choice.answer = null;
});
@@ -279,6 +244,7 @@ export class ConfigService extends PollConfig {
* @param voteStack
*/
loadVoteStack(voteStack: any) {
+ // TODO: to be handled in component (ParticipationModule)
// load the pseudo and email
this.myName = voteStack.pseudo;
this.myEmail = voteStack.email;
@@ -310,6 +276,7 @@ export class ConfigService extends PollConfig {
* @param config
*/
createPollFromConfig(config: any) {
+ // TODO: http requests moved to apiService
this.loading = true;
console.log('config', config);
return this.http.post(`${this.apiBaseHref}/poll`, config, this.utils.makeHeaders()).subscribe(
@@ -340,6 +307,7 @@ export class ConfigService extends PollConfig {
* @param choiceList
*/
convertChoicesAnsweredToSend(choiceList) {
+ // TODO: move logic to a component (ParticipationModule)
choiceList = choiceList.filter((c) => (c.answer ? c : null)); // remove choices where we did not answer
const converted = choiceList.map((elem) => {
if (elem.answer) {
@@ -359,6 +327,8 @@ export class ConfigService extends PollConfig {
* @param voteStack
*/
addVote(voteStack?: any) {
+ // TODO: move logic to a component (ParticipationModule)
+ // TODO: http request moved to ApiService
if (!voteStack) {
voteStack = {
pseudo: this.myName,
@@ -385,7 +355,7 @@ export class ConfigService extends PollConfig {
handleVoteAdded(res) {
if (this.isAdmin) {
// TODO : REFACTO, displayConfirmVoteModalAdmin exists only in voting-summary.component
- //this.displayConfirmVoteModalAdmin = true;
+ // this.displayConfirmVoteModalAdmin = true;
}
// save modifier token
this.myVoteStack.modifier_token = res.modifier_token;
diff --git a/src/app/shared/enums/theme.enum.ts b/src/app/shared/enums/theme.enum.ts
deleted file mode 100644
index 113bf2b4..00000000
--- a/src/app/shared/enums/theme.enum.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export enum Theme {
- LIGHT = 'light-watermelon',
- DARK = 'dark-crystal',
- RED = 'hot-covid',
-}
diff --git a/src/app/shared/models/ui-config.model.ts b/src/app/shared/models/ui-config.model.ts
deleted file mode 100644
index 05d0be41..00000000
--- a/src/app/shared/models/ui-config.model.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Theme } from '../enums/theme.enum';
-
-export class UIConfig {
- constructor(public isMenuVisible = true, public theme: Theme.LIGHT) {}
-}
diff --git a/src/app/shared/services/theme.service.ts b/src/app/shared/services/theme.service.ts
deleted file mode 100644
index c2708ecb..00000000
--- a/src/app/shared/services/theme.service.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Injectable } from '@angular/core';
-
-@Injectable({
- providedIn: 'root',
-})
-export class ThemeService {
- constructor() {}
-}
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
index da638bd5..aca05cd5 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -1,8 +1,10 @@
-import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
@NgModule({
declarations: [],
imports: [CommonModule],
+ exports: [TranslateModule],
})
export class SharedModule {}
diff --git a/src/app/ui/copy-text/copy-text.component.ts b/src/app/ui/copy-text/copy-text.component.ts
index 63ea5b2f..9c45093f 100644
--- a/src/app/ui/copy-text/copy-text.component.ts
+++ b/src/app/ui/copy-text/copy-text.component.ts
@@ -2,7 +2,7 @@ import { Component, Input, OnInit } from '@angular/core';
import { MessageService } from 'primeng/api';
@Component({
- selector: 'framadate-copy-text',
+ selector: 'app-copy-text',
templateUrl: './copy-text.component.html',
styleUrls: ['./copy-text.component.scss'],
})
diff --git a/src/app/ui/debugger/debugger.component.ts b/src/app/ui/debugger/debugger.component.ts
index 3cea28b5..64db02e3 100644
--- a/src/app/ui/debugger/debugger.component.ts
+++ b/src/app/ui/debugger/debugger.component.ts
@@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core';
import { ConfigService } from '../../services/config.service';
@Component({
- selector: 'framadate-debugger',
+ selector: 'app-debugger',
templateUrl: './debugger.component.html',
styleUrls: ['./debugger.component.scss'],
})
diff --git a/src/app/ui/erasable-input/erasable-input.component.ts b/src/app/ui/erasable-input/erasable-input.component.ts
index 6fd99ce9..6daaa775 100644
--- a/src/app/ui/erasable-input/erasable-input.component.ts
+++ b/src/app/ui/erasable-input/erasable-input.component.ts
@@ -1,7 +1,7 @@
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
@Component({
- selector: 'framadate-erasable-input',
+ selector: 'app-erasable-input',
templateUrl: './erasable-input.component.html',
styleUrls: ['./erasable-input.component.scss'],
})
diff --git a/src/app/ui/navigation/header/header.component.html b/src/app/ui/navigation/header/header.component.html
deleted file mode 100644
index ba26085e..00000000
--- a/src/app/ui/navigation/header/header.component.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
(progression)
-
diff --git a/src/app/ui/navigation/header/header.component.ts b/src/app/ui/navigation/header/header.component.ts
deleted file mode 100644
index 29be5cbc..00000000
--- a/src/app/ui/navigation/header/header.component.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
- selector: 'framadate-header',
- templateUrl: './header.component.html',
- styleUrls: ['./header.component.scss'],
-})
-export class HeaderComponent implements OnInit {
- constructor() {}
-
- ngOnInit() {}
-}
diff --git a/src/app/ui/navigation/master-head/master-head.component.ts b/src/app/ui/navigation/master-head/master-head.component.ts
deleted file mode 100644
index 869aafb9..00000000
--- a/src/app/ui/navigation/master-head/master-head.component.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
- selector: 'framadate-master-head',
- templateUrl: './master-head.component.html',
- styleUrls: ['./master-head.component.scss'],
-})
-export class MasterHeadComponent implements OnInit {
- constructor() {}
-
- ngOnInit(): void {}
-}
diff --git a/src/app/ui/navigation/navigation.component.ts b/src/app/ui/navigation/navigation.component.ts
index 9be61d82..7935dab9 100644
--- a/src/app/ui/navigation/navigation.component.ts
+++ b/src/app/ui/navigation/navigation.component.ts
@@ -5,7 +5,7 @@ import { Router } from '@angular/router';
import { ConfigService } from '../../services/config.service';
@Component({
- selector: 'framadate-navigation',
+ selector: 'app-navigation',
templateUrl: './navigation.component.html',
styleUrls: ['./navigation.component.scss'],
})
diff --git a/src/app/ui/navigation/two-links/two-links.component.ts b/src/app/ui/navigation/two-links/two-links.component.ts
index e530e18c..1433e235 100644
--- a/src/app/ui/navigation/two-links/two-links.component.ts
+++ b/src/app/ui/navigation/two-links/two-links.component.ts
@@ -1,7 +1,7 @@
import { Component, Input, OnInit } from '@angular/core';
@Component({
- selector: 'framadate-two-links',
+ selector: 'app-two-links',
templateUrl: './two-links.component.html',
styleUrls: ['./two-links.component.scss'],
})
diff --git a/src/app/ui/selector/language/language.component.html b/src/app/ui/selector/language/language.component.html
deleted file mode 100644
index d09bd19c..00000000
--- a/src/app/ui/selector/language/language.component.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
- {{ 'Language' | translate }}
- English
- Français
-
-
-
-
-
-
-
-
-
diff --git a/src/app/ui/selector/language/language.component.ts b/src/app/ui/selector/language/language.component.ts
deleted file mode 100644
index b77aa977..00000000
--- a/src/app/ui/selector/language/language.component.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import { Component, Inject, OnInit } from '@angular/core';
-import { TranslateService } from '@ngx-translate/core';
-import { ConfigService } from '../../../services/config.service';
-import { DOCUMENT } from '@angular/common';
-import { Router } from '@angular/router';
-
-@Component({
- selector: 'framadate-language',
- templateUrl: './language.component.html',
- styleUrls: ['./language.component.scss'],
-})
-export class LanguageComponent implements OnInit {
- currentLang = 'fr';
- langsAvailable = ['fr', 'en'];
- title = 'framadate';
- // translation demo:
- minutes = 12;
- user = {
- name: 'Arthur',
- age: 42,
- };
-
- constructor(
- private translate: TranslateService,
- public config: ConfigService,
- @Inject(DOCUMENT) private document,
- private route: Router
- ) {}
-
- ngOnInit(): void {
- console.log('this.config.preferences', this.config.preferences);
- if (this.config.preferences.lang) {
- this.switchLanguage(this.config.preferences.lang);
- } else {
- this.switchLanguage(this.currentLang);
- }
- }
-
- switchLanguage(language: string) {
- if (this.langsAvailable.includes(language)) {
- this.translate.use(language);
- this.currentLang = language;
- this.config.setPreference('lang', language);
- this.translate.setDefaultLang(this.currentLang);
- } else {
- console.error('this lang is not supported');
- }
- }
-
- /**
- * set the next lang or loop to the first
- * this is to manage future languages available
- */
- changeLanguage() {
- const langs = this.langsAvailable;
- const indexofCurrent = langs.indexOf(this.currentLang);
- if (indexofCurrent > -1) {
- let newIndex = indexofCurrent + 1;
- if (newIndex > langs.length - 1) {
- newIndex = 0;
- }
- this.currentLang = this.langsAvailable[newIndex];
- }
- this.translate.use(this.currentLang);
- }
-
- toggleMenu() {
- this.config.menuVisible = !this.config.menuVisible;
- }
-}
diff --git a/src/app/ui/selector/selector.component.html b/src/app/ui/selector/selector.component.html
deleted file mode 100644
index ae676070..00000000
--- a/src/app/ui/selector/selector.component.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- {{ item.label }}
-
-
diff --git a/src/app/ui/selector/selector.component.ts b/src/app/ui/selector/selector.component.ts
deleted file mode 100644
index 3dc23aba..00000000
--- a/src/app/ui/selector/selector.component.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Component, Input, OnInit } from '@angular/core';
-
-interface Item {
- label: string;
- value: string;
-}
-
-interface SelectorConfig {
- label: string;
- name: string;
- id: string;
- selectorNgModel: any;
- listItems: Item[];
-}
-
-@Component({
- selector: 'framadate-selector',
- templateUrl: './selector.component.html',
- styleUrls: ['./selector.component.scss'],
-})
-export class SelectorComponent implements OnInit {
- @Input() selectorConfig: SelectorConfig;
-
- constructor() {}
-
- ngOnInit() {}
-}
diff --git a/src/app/ui/selector/theme-selector/theme-selector.component.html b/src/app/ui/selector/theme-selector/theme-selector.component.html
deleted file mode 100644
index 70054e50..00000000
--- a/src/app/ui/selector/theme-selector/theme-selector.component.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
Thème
-
- light
-
-
- dark
-
-
- red
-
-
diff --git a/src/app/ui/selector/theme-selector/theme-selector.component.ts b/src/app/ui/selector/theme-selector/theme-selector.component.ts
deleted file mode 100644
index 1a4b5597..00000000
--- a/src/app/ui/selector/theme-selector/theme-selector.component.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { ConfigService } from '../../../services/config.service';
-
-@Component({
- selector: 'framadate-theme-selector',
- templateUrl: './theme-selector.component.html',
- styleUrls: ['./theme-selector.component.scss'],
-})
-export class ThemeSelectorComponent implements OnInit {
- constructor(public config: ConfigService) {
- // this.selectTheme('dark-crystal')
- }
-
- ngOnInit(): void {}
-
- selectTheme(themeName: string) {
- if (this.config.themeChoices.includes(themeName)) {
- this.config.setPreference('themeName', themeName);
- }
- }
-}
diff --git a/src/app/ui/selectors/language-selector/language-selector.component.html b/src/app/ui/selectors/language-selector/language-selector.component.html
new file mode 100644
index 00000000..2d865b0a
--- /dev/null
+++ b/src/app/ui/selectors/language-selector/language-selector.component.html
@@ -0,0 +1,10 @@
+
+
+
+ {{ 'LANGUAGES.' + language | translate }}
+
+
+
+
+
+
diff --git a/src/app/ui/selectors/language-selector/language-selector.component.scss b/src/app/ui/selectors/language-selector/language-selector.component.scss
new file mode 100644
index 00000000..e69de29b
diff --git a/src/app/ui/selectors/language-selector/language-selector.component.spec.ts b/src/app/ui/selectors/language-selector/language-selector.component.spec.ts
new file mode 100644
index 00000000..de5c97fd
--- /dev/null
+++ b/src/app/ui/selectors/language-selector/language-selector.component.spec.ts
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { LanguageSelectorComponent } from './language-selector.component';
+
+describe('LanguageSelectorComponent', () => {
+ let component: LanguageSelectorComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [LanguageSelectorComponent],
+ }).compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(LanguageSelectorComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/ui/selectors/language-selector/language-selector.component.ts b/src/app/ui/selectors/language-selector/language-selector.component.ts
new file mode 100644
index 00000000..c5e8155d
--- /dev/null
+++ b/src/app/ui/selectors/language-selector/language-selector.component.ts
@@ -0,0 +1,38 @@
+import { Component, DoCheck, OnInit } from '@angular/core';
+import { TranslateService } from '@ngx-translate/core';
+
+import { Language } from '../../../core/enums/language.enum';
+import { StorageService } from '../../../core/services/storage.service';
+
+@Component({
+ selector: 'app-language-selector',
+ templateUrl: './language-selector.component.html',
+ styleUrls: ['./language-selector.component.scss'],
+})
+export class LanguageSelectorComponent implements OnInit, DoCheck {
+ public currentLang: Language;
+ public languagesAvailable: string[] = Object.values(Language);
+
+ constructor(private translate: TranslateService, private storageService: StorageService) {}
+
+ ngOnInit(): void {
+ const currentBrowserLanguage: Language = this.translate.getBrowserLang().toUpperCase() as Language;
+ if (this.storageService.language && Object.keys(Language).includes(this.storageService.language)) {
+ this.currentLang = this.storageService.language;
+ } else if (Object.keys(Language).includes(currentBrowserLanguage)) {
+ this.currentLang = currentBrowserLanguage;
+ } else {
+ this.currentLang = Language.EN;
+ }
+ this.updateLanguage();
+ }
+
+ ngDoCheck(): void {
+ this.updateLanguage();
+ }
+
+ public updateLanguage(): void {
+ this.translate.use(this.currentLang.toString().toUpperCase());
+ this.storageService.language = this.currentLang;
+ }
+}
diff --git a/src/app/ui/selectors/theme-selector/theme-selector.component.html b/src/app/ui/selectors/theme-selector/theme-selector.component.html
new file mode 100644
index 00000000..9f87a43d
--- /dev/null
+++ b/src/app/ui/selectors/theme-selector/theme-selector.component.html
@@ -0,0 +1,24 @@
+
+ Theme
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/ui/selector/theme-selector/theme-selector.component.scss b/src/app/ui/selectors/theme-selector/theme-selector.component.scss
similarity index 100%
rename from src/app/ui/selector/theme-selector/theme-selector.component.scss
rename to src/app/ui/selectors/theme-selector/theme-selector.component.scss
diff --git a/src/app/ui/selector/theme-selector/theme-selector.component.spec.ts b/src/app/ui/selectors/theme-selector/theme-selector.component.spec.ts
similarity index 100%
rename from src/app/ui/selector/theme-selector/theme-selector.component.spec.ts
rename to src/app/ui/selectors/theme-selector/theme-selector.component.spec.ts
diff --git a/src/app/ui/selectors/theme-selector/theme-selector.component.ts b/src/app/ui/selectors/theme-selector/theme-selector.component.ts
new file mode 100644
index 00000000..17ec9c37
--- /dev/null
+++ b/src/app/ui/selectors/theme-selector/theme-selector.component.ts
@@ -0,0 +1,25 @@
+import { Component, OnInit } from '@angular/core';
+import { Observable } from 'rxjs';
+
+import { Theme } from '../../../core/enums/theme.enum';
+import { ThemeService } from '../../../core/services/theme.service';
+
+@Component({
+ selector: 'app-theme-selector',
+ templateUrl: './theme-selector.component.html',
+ styleUrls: ['./theme-selector.component.scss'],
+})
+export class ThemeSelectorComponent implements OnInit {
+ public themeEnum = Theme;
+ public currentTheme: Observable;
+
+ constructor(private themeService: ThemeService) {}
+
+ ngOnInit(): void {
+ this.currentTheme = this.themeService.theme;
+ }
+
+ public selectTheme(theme: string): void {
+ this.themeService.selectTheme(theme as Theme);
+ }
+}
diff --git a/src/assets/i18n/EN.json b/src/assets/i18n/EN.json
new file mode 100644
index 00000000..4dfc7f19
--- /dev/null
+++ b/src/assets/i18n/EN.json
@@ -0,0 +1,136 @@
+{
+ "Language": "Language",
+ "Title": "Translation example",
+ "Intro": "Hello I am {{name}}, I am {{age}} years old.",
+ "home": {
+ "title": "home's title"
+ },
+ "config": {
+ "demo": "this is a demo",
+ "demo_other": "this is an other demo",
+ "continue": "Continue",
+ "perfect": "That's perfect",
+ "title": "Create a poll",
+ "letsgo": "Lets go!",
+ "description": "Shedule appointments with your friends or your family, or create a pool with text, pictures or links… A real survey!",
+ "find_my_polls": "Where are my polls ?",
+ "find_helper": "I am looking for polls linked to my email",
+ "find_button": "Find my polls"
+ },
+ "creation": {
+ "title": "To begin with",
+ "want": "I want to create a poll",
+ "kind": {
+ "classic": "classic",
+ "date": "special dates"
+ },
+ "choose_title": "Whom title will be",
+ "choose_title_placeholder": "title",
+ "name": "I can also specify my name if i want",
+ "name_placeholder": "my name",
+ "description": "and the description would be",
+ "description_placeholder": "summary of the poll's purpose"
+ },
+ "dates": {
+ "title": "Config especially for the dates",
+ "hours_different": "I want to put",
+ "hours_each_day": "slots for each day",
+ "multiple": {
+ "identical": "the same",
+ "different": "possibly different"
+ },
+ "add": "Add a date choice",
+ "add_time": "Add a schedule proposal",
+ "empty": "Empty",
+ "count_dates": "choices of dates",
+ "count_time": "choices of schedules",
+ "add_interval": "Add a date interval",
+ "interval_propose": "I want to suggest all the dates from",
+ "interval_span": "to",
+ "interval_button": "Add these",
+ "interval_button_dates": "dates"
+ },
+ "choices": {
+ "title": "Write the proposals",
+ "helper": "You can use markdown syntax",
+ "answer_preset_1": "Demo answer 1",
+ "answer_preset_2": "answer 2",
+ "answer_preset_3": "and D, the answer D",
+ "add": "Add",
+ "continue": "Let's see how it goes"
+ },
+ "resume": {
+ "title": "And that's all for us!",
+ "admins": "Admin side",
+ "users": "Respondent side",
+ "links_mail": "Receive links by email"
+ },
+ "visibility": {
+ "top_txt": "A few settings...",
+ "title": "Visibility of answers",
+ "visibility_want": "I want that",
+ "visibility_link": "anybody having the link",
+ "visibility_nobody": "nobody",
+ "visibility_see": "can see answers to the pool.",
+ "votes": "Votes",
+ "votes_possible": "Possible answers will be",
+ "votes_possible_single": "only \"yes\"",
+ "votes_possible_normal": "\"yes\" or \"maybe\"",
+ "votes_possible_full": "\"yes\" or \"maybe\" or \"no\"",
+ "archiving": "Polled people will be able to vote until",
+ "archiving_start": "They",
+ "archiving_can": "will",
+ "archiving_can_not": "will not",
+ "archiving_end": "be able to edit",
+ "archiving_end_not": "be able to edit answers",
+ "modfiy_their": "their vote",
+ "modfiy_everyone": "all the votes",
+ "access": "Access to the poll",
+ "access_url": "Pooled people will be able to access it via this address:",
+ "access_url_key": "URL",
+ "see_pass": "see",
+ "access_instructions": "may contain letters, numbers and dashes",
+ "access_want": "I",
+ "access_want_yes": "want",
+ "access_want_no": "do not need",
+ "access_protect": "it to be password-protected.",
+ "validate_btn": "Create this poll!"
+ },
+ "admin": {
+ "choose_title": "The pool title is",
+ "description": "and its description is",
+ "info_section_title": "Pool informations",
+ "settings_section_title": "Settings",
+ "votes_deletion_desc": "To start over from scratch, I can delete them all",
+ "votes_deletion_btn": "Delete all the votes",
+ "comments_deletion_title": "Comments",
+ "comments_deletion_desc": "If I wish, I can delete all the comments",
+ "comments_deletion_btn": "Delete all the comments",
+ "archiving_title": "Archiving",
+ "archiving_desc": "This poll will no longer be editable from",
+ "deletion": "Delete all",
+ "deletion_desc": "In the case you want do delete everything, this button is for you:",
+ "deletion_btn": "Delete the poll",
+ "link": "Links to access the survey",
+ "link_admin": "Administrator's side",
+ "link_admin_desc": "To access the poll and all its settings",
+ "link_admin_btn": "To see the poll as an administrator",
+ "copy_link": "Copy the link",
+ "polled_people": "Polled side",
+ "polled_people_desc": "To access the poll and all its settings",
+ "polled_people_btn": "See the poll",
+ "email_links": "Receive the links by email",
+ "email_links_desc": "To be sure to find these links, they can be sent to you by email",
+ "email_links_key": "email",
+ "email_links_btn": "Send the links to the poll"
+ },
+ "pollGraphic": {
+ "choiceColorblind": "I am",
+ "choiceNotColorblind": "I am not",
+ "colorblindText": "colorblind."
+ },
+ "LANGUAGES": {
+ "FR": "Français",
+ "EN": "English"
+ }
+}
diff --git a/src/assets/i18n/FR.json b/src/assets/i18n/FR.json
new file mode 100644
index 00000000..1874df16
--- /dev/null
+++ b/src/assets/i18n/FR.json
@@ -0,0 +1,136 @@
+{
+ "Language": "Langue",
+ "Title": "Exemple de traduction",
+ "Intro": "Bonjour je m'appelle {{name}}, j'ai {{age}} ans.",
+ "home": {
+ "title": "le titre de la home"
+ },
+ "config": {
+ "demo": "C'est une démo traduite en Français",
+ "demo_other": "C'est une autre démo traduite en Français",
+ "continue": "Continuer",
+ "perfect": "C'est parfait",
+ "title": "Créer un sondage",
+ "letsgo": "C'est parti !",
+ "description": "Planifiez des rendez-vous avec vos amis ou votre famille ou créez un sondage avec du texte, des images ou des liens… un sondage quoi !",
+ "find_my_polls": "Mes sondages",
+ "find_helper": "Je cherche d'autres sondages qui correspondent à mon mail",
+ "find_button": "Retrouver mes sondages"
+ },
+ "creation": {
+ "title": "Créer un sondage",
+ "want": "Je veux créer un sondage",
+ "kind": {
+ "classic": "classique",
+ "date": "spécial dates"
+ },
+ "choose_title": "Dont le titre sera",
+ "choose_title_placeholder": "titre",
+ "name": "Je peux aussi préciser mon nom si je le souhaite",
+ "name_placeholder": "mon nom",
+ "description": "et la description serait",
+ "description_placeholder": "description"
+ },
+ "dates": {
+ "title": "Config spécialement pour les dates",
+ "hours_different": "Je souhaite mettre des créneaux horaires",
+ "hours_each_day": "pour chaque journée",
+ "multiple": {
+ "identical": "identiques",
+ "different": "possiblement différents"
+ },
+ "add": "Ajouter une date",
+ "add_time": "Ajouter une plage horaire",
+ "empty": "Vider",
+ "count_dates": "choix de dates",
+ "count_time": "choix de plages horaires",
+ "add_interval": "Ajouter un intervalle de dates",
+ "interval_propose": "Je souhaite proposer pour mon sondage toutes les dates entre le",
+ "interval_span": "et le",
+ "interval_button": "Ajouter ces",
+ "interval_button_dates": "dates"
+ },
+ "choices": {
+ "title": "Choisir les propositions",
+ "helper": "vous pouvez utiliser la syntaxe markdown ",
+ "answer_preset_1": "réponse de démo 1",
+ "answer_preset_2": "réponse 2",
+ "answer_preset_3": "la réponse D",
+ "add": "Ajouter",
+ "continue": "Voyons ce que ça donne"
+ },
+ "resume": {
+ "title": "Et c'est tout pour nous !",
+ "admins": "Côté administrateur-ice-eux",
+ "users": "Côté sondés",
+ "links_mail": "Recevoir les liens par e-mail"
+ },
+ "visibility": {
+ "top_txt": "Un peu de paramétrage…",
+ "title": "Visibilité des réponses",
+ "visibility_want": "Je veux que",
+ "visibility_link": "tous ceux qui ont le lien puissent",
+ "visibility_nobody": "seulement moi puisse",
+ "visibility_see": "voir les réponses au sondage.",
+ "votes": "Votes",
+ "votes_possible": "Les réponses possibles seront :",
+ "votes_possible_single": "Uniquement « oui »",
+ "votes_possible_normal": "« oui » ou « peut-être »",
+ "votes_possible_full": "« oui » ou « peut-être » ou « non »",
+ "archiving": "Les personnes sondées pourront voter jusqu’au",
+ "archiving_start": "Elles",
+ "archiving_can": "auront",
+ "archiving_can_not": "n'auront pas",
+ "archiving_end": "la possibilité de modifier",
+ "archiving_end_not": "la possibilité de modifier de votes",
+ "modfiy_their": "leur vote",
+ "modfiy_everyone": "tous les votes",
+ "access": "Accès au sondage",
+ "access_url": "Les votants pourront y accéder via cette adresse :",
+ "access_url_key": "URL",
+ "see_pass": "voir",
+ "access_instructions": "peut contenir des lettres, chiffres et des tirets",
+ "access_want": "Je",
+ "access_want_yes": "souhaite",
+ "access_want_no": "n'ai pas besoin",
+ "access_protect": "qu’il soit protégé par un mot de passe.",
+ "validate_btn": "Créer ce sondage !"
+ },
+ "admin": {
+ "choose_title": "Le titre du sondage est",
+ "description": "et sa description :",
+ "info_section_title": "Informations du sondage",
+ "settings_section_title": "Paramètres",
+ "votes_deletion_desc": "Pour repartir à zéro, je peux tous les supprimer :",
+ "votes_deletion_btn": "Supprimer tous les votes",
+ "comments_deletion_title": "Commentaires",
+ "comments_deletion_desc": "Si je le souhaite, je peux supprimer l'ensemble des commentaires",
+ "comments_deletion_btn": "Supprimer tous les commentaires",
+ "archiving_title": "Archivage",
+ "archiving_desc": "Ce sondage ne sera plus éditable à partir du",
+ "deletion": "Tout supprimer",
+ "deletion_desc": "Dans le cas où vous voudriez tout supprimer, ce bouton est fait pour vous :",
+ "deletion_btn": "Supprimer le sondage",
+ "link": "Liens d’accès au sondage",
+ "link_admin": "Coté administrateur·ice",
+ "link_admin_desc": "Pour accéder au sondage et à tous ses paramètres :",
+ "link_admin_btn": "Voir le sondage coté administrateur·ice",
+ "copy_link": "Copier le lien",
+ "polled_people": "Côté sondé·es",
+ "polled_people_desc": "Pour accéder au sondage et à tous ses paramètres :",
+ "polled_people_btn": "Voir le sondage",
+ "email_links": "Recevoir les liens par mail",
+ "email_links_desc": "Pour être sûr de retrouver ces liens, nous pouvons vous les envoyer sur votre boîte mail.",
+ "email_links_key": "mail",
+ "email_links_btn": "Envoyer les liens du sondage"
+ },
+ "pollGraphic": {
+ "choiceColorblind": "Je suis",
+ "choiceNotColorblind": "Je ne suis pas",
+ "colorblindText": "daltonien."
+ },
+ "LANGUAGES": {
+ "FR": "Français",
+ "EN": "English"
+ }
+}
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
deleted file mode 100644
index 289b36d5..00000000
--- a/src/assets/i18n/en.json
+++ /dev/null
@@ -1,132 +0,0 @@
-{
- "Language": "Language",
- "Title": "Translation example",
- "Intro": "Hello I am {{name}}, I am {{age}} years old.",
- "home": {
- "title": "home's title"
- },
- "config": {
- "demo": "this is a demo",
- "demo_other": "this is an other demo",
- "continue": "Continue",
- "perfect": "That's perfect",
- "title": "Create a poll",
- "letsgo": "Lets go!",
- "description": "Shedule appointments with your friends or your family, or create a pool with text, pictures or links… A real survey!",
- "find_my_polls": "Where are my polls ?",
- "find_helper": "I am looking for polls linked to my email",
- "find_button": "Find my polls"
- },
- "creation": {
- "title": "To begin with",
- "want": "I want to create a poll",
- "kind": {
- "classic": "classic",
- "date": "special dates"
- },
- "choose_title": "Whom title will be",
- "choose_title_placeholder": "title",
- "name": "I can also specify my name if i want",
- "name_placeholder": "my name",
- "description": "and the description would be",
- "description_placeholder": "summary of the poll's purpose"
- },
- "dates": {
- "title": "Config especially for the dates",
- "hours_different": "I want to put",
- "hours_each_day": "slots for each day",
- "multiple": {
- "identical": "the same",
- "different": "possibly different"
- },
- "add": "Add a date choice",
- "add_time": "Add a schedule proposal",
- "empty": "Empty",
- "count_dates": "choices of dates",
- "count_time": "choices of schedules",
- "add_interval": "Add a date interval",
- "interval_propose": "I want to suggest all the dates from",
- "interval_span": "to",
- "interval_button": "Add these",
- "interval_button_dates": "dates"
- },
- "choices": {
- "title": "Write the proposals",
- "helper": "You can use markdown syntax",
- "answer_preset_1": "Demo answer 1",
- "answer_preset_2": "answer 2",
- "answer_preset_3": "and D, the answer D",
- "add": "Add",
- "continue": "Let's see how it goes"
- },
- "resume": {
- "title": "And that's all for us!",
- "admins": "Admin side",
- "users": "Respondent side",
- "links_mail": "Receive links by email"
- },
- "visibility": {
- "top_txt": "A few settings...",
- "title": "Visibility of answers",
- "visibility_want": "I want that",
- "visibility_link": "anybody having the link",
- "visibility_nobody": "nobody",
- "visibility_see": "can see answers to the pool.",
- "votes": "Votes",
- "votes_possible": "Possible answers will be",
- "votes_possible_single": "only \"yes\"",
- "votes_possible_normal": "\"yes\" or \"maybe\"",
- "votes_possible_full": "\"yes\" or \"maybe\" or \"no\"",
- "archiving": "Polled people will be able to vote until",
- "archiving_start": "They",
- "archiving_can": "will",
- "archiving_can_not": "will not",
- "archiving_end": "be able to edit",
- "archiving_end_not": "be able to edit answers",
- "modfiy_their": "their vote",
- "modfiy_everyone": "all the votes",
- "access": "Access to the poll",
- "access_url": "Pooled people will be able to access it via this address:",
- "access_url_key": "URL",
- "see_pass": "see",
- "access_instructions": "may contain letters, numbers and dashes",
- "access_want": "I",
- "access_want_yes": "want",
- "access_want_no": "do not need",
- "access_protect": "it to be password-protected.",
- "validate_btn": "Create this poll!"
- },
- "admin": {
- "choose_title": "The pool title is",
- "description": "and its description is",
- "info_section_title": "Pool informations",
- "settings_section_title": "Settings",
- "votes_deletion_desc": "To start over from scratch, I can delete them all",
- "votes_deletion_btn": "Delete all the votes",
- "comments_deletion_title": "Comments",
- "comments_deletion_desc": "If I wish, I can delete all the comments",
- "comments_deletion_btn": "Delete all the comments",
- "archiving_title": "Archiving",
- "archiving_desc": "This poll will no longer be editable from",
- "deletion": "Delete all",
- "deletion_desc": "In the case you want do delete everything, this button is for you:",
- "deletion_btn": "Delete the poll",
- "link": "Links to access the survey",
- "link_admin": "Administrator's side",
- "link_admin_desc": "To access the poll and all its settings",
- "link_admin_btn": "To see the poll as an administrator",
- "copy_link": "Copy the link",
- "polled_people": "Polled side",
- "polled_people_desc": "To access the poll and all its settings",
- "polled_people_btn": "See the poll",
- "email_links": "Receive the links by email",
- "email_links_desc": "To be sure to find these links, they can be sent to you by email",
- "email_links_key": "email",
- "email_links_btn": "Send the links to the poll"
- },
- "pollGraphic": {
- "choiceColorblind": "I am",
- "choiceNotColorblind": "I am not",
- "colorblindText": "colorblind."
- }
-}
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
deleted file mode 100644
index 0488a383..00000000
--- a/src/assets/i18n/fr.json
+++ /dev/null
@@ -1,132 +0,0 @@
-{
- "Language": "Langue",
- "Title": "Exemple de traduction",
- "Intro": "Bonjour je m'appelle {{name}}, j'ai {{age}} ans.",
- "home": {
- "title": "le titre de la home"
- },
- "config": {
- "demo": "C'est une démo traduite en Français",
- "demo_other": "C'est une autre démo traduite en Français",
- "continue": "Continuer",
- "perfect": "C'est parfait",
- "title": "Créer un sondage",
- "letsgo": "C'est parti !",
- "description": "Planifiez des rendez-vous avec vos amis ou votre famille ou créez un sondage avec du texte, des images ou des liens… un sondage quoi !",
- "find_my_polls": "Mes sondages",
- "find_helper": "Je cherche d'autres sondages qui correspondent à mon mail",
- "find_button": "Retrouver mes sondages"
- },
- "creation": {
- "title": "Créer un sondage",
- "want": "Je veux créer un sondage",
- "kind": {
- "classic": "classique",
- "date": "spécial dates"
- },
- "choose_title": "Dont le titre sera",
- "choose_title_placeholder": "titre",
- "name": "Je peux aussi préciser mon nom si je le souhaite",
- "name_placeholder": "mon nom",
- "description": "et la description serait",
- "description_placeholder": "description"
- },
- "dates": {
- "title": "Config spécialement pour les dates",
- "hours_different": "Je souhaite mettre des créneaux horaires",
- "hours_each_day": "pour chaque journée",
- "multiple": {
- "identical": "identiques",
- "different": "possiblement différents"
- },
- "add": "Ajouter une date",
- "add_time": "Ajouter une plage horaire",
- "empty": "Vider",
- "count_dates": "choix de dates",
- "count_time": "choix de plages horaires",
- "add_interval": "Ajouter un intervalle de dates",
- "interval_propose": "Je souhaite proposer pour mon sondage toutes les dates entre le",
- "interval_span": "et le",
- "interval_button": "Ajouter ces",
- "interval_button_dates": "dates"
- },
- "choices": {
- "title": "Choisir les propositions",
- "helper": "vous pouvez utiliser la syntaxe markdown ",
- "answer_preset_1": "réponse de démo 1",
- "answer_preset_2": "réponse 2",
- "answer_preset_3": "la réponse D",
- "add": "Ajouter",
- "continue": "Voyons ce que ça donne"
- },
- "resume": {
- "title": "Et c'est tout pour nous !",
- "admins": "Côté administrateur-ice-eux",
- "users": "Côté sondés",
- "links_mail": "Recevoir les liens par e-mail"
- },
- "visibility": {
- "top_txt": "Un peu de paramétrage…",
- "title": "Visibilité des réponses",
- "visibility_want": "Je veux que",
- "visibility_link": "tous ceux qui ont le lien puissent",
- "visibility_nobody": "seulement moi puisse",
- "visibility_see": "voir les réponses au sondage.",
- "votes": "Votes",
- "votes_possible": "Les réponses possibles seront :",
- "votes_possible_single": "Uniquement « oui »",
- "votes_possible_normal": "« oui » ou « peut-être »",
- "votes_possible_full": "« oui » ou « peut-être » ou « non »",
- "archiving": "Les personnes sondées pourront voter jusqu’au",
- "archiving_start": "Elles",
- "archiving_can": "auront",
- "archiving_can_not": "n'auront pas",
- "archiving_end": "la possibilité de modifier",
- "archiving_end_not": "la possibilité de modifier de votes",
- "modfiy_their": "leur vote",
- "modfiy_everyone": "tous les votes",
- "access": "Accès au sondage",
- "access_url": "Les votants pourront y accéder via cette adresse :",
- "access_url_key": "URL",
- "see_pass": "voir",
- "access_instructions": "peut contenir des lettres, chiffres et des tirets",
- "access_want": "Je",
- "access_want_yes": "souhaite",
- "access_want_no": "n'ai pas besoin",
- "access_protect": "qu’il soit protégé par un mot de passe.",
- "validate_btn": "Créer ce sondage !"
- },
- "admin": {
- "choose_title": "Le titre du sondage est",
- "description": "et sa description :",
- "info_section_title": "Informations du sondage",
- "settings_section_title": "Paramètres",
- "votes_deletion_desc": "Pour repartir à zéro, je peux tous les supprimer :",
- "votes_deletion_btn": "Supprimer tous les votes",
- "comments_deletion_title": "Commentaires",
- "comments_deletion_desc": "Si je le souhaite, je peux supprimer l'ensemble des commentaires",
- "comments_deletion_btn": "Supprimer tous les commentaires",
- "archiving_title": "Archivage",
- "archiving_desc": "Ce sondage ne sera plus éditable à partir du",
- "deletion": "Tout supprimer",
- "deletion_desc": "Dans le cas où vous voudriez tout supprimer, ce bouton est fait pour vous :",
- "deletion_btn": "Supprimer le sondage",
- "link": "Liens d’accès au sondage",
- "link_admin": "Coté administrateur·ice",
- "link_admin_desc": "Pour accéder au sondage et à tous ses paramètres :",
- "link_admin_btn": "Voir le sondage coté administrateur·ice",
- "copy_link": "Copier le lien",
- "polled_people": "Côté sondé·es",
- "polled_people_desc": "Pour accéder au sondage et à tous ses paramètres :",
- "polled_people_btn": "Voir le sondage",
- "email_links": "Recevoir les liens par mail",
- "email_links_desc": "Pour être sûr de retrouver ces liens, nous pouvons vous les envoyer sur votre boîte mail.",
- "email_links_key": "mail",
- "email_links_btn": "Envoyer les liens du sondage"
- },
- "pollGraphic": {
- "choiceColorblind": "Je suis",
- "choiceNotColorblind": "Je ne suis pas",
- "colorblindText": "daltonien."
- }
-}
diff --git a/src/assets/scss/styles.scss b/src/assets/scss/styles.scss
deleted file mode 100644
index c4608598..00000000
--- a/src/assets/scss/styles.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-@charset "utf-8";
-/*
- You can add global.scss styles to this file, and also import other style files
- ==================================================
- all styles should be imported in an order from top:
- most global scope, to bottom: the most specific scope of qualification.
- ==================================================
- */
-// configuration
-@import 'variables';
-@import 'dev-utilities/mixins';
-@import 'dev-utilities/helpers';
-@import 'dev-utilities/debug';
-@import 'libraries/frameworks';
-@import 'libraries/overrides';
-// typography
-//@import 'partials/font-families';
-@import 'partials/typo';
-// themes
-@import 'themes/all';
-// most general dom elements
-@import 'partials/global';
-@import 'partials/logo';
-@import 'partials/navigation';
-
-// main content elements
-@import 'partials/main';
-@import 'partials/tables';
-@import 'partials/buttons';
-@import 'partials/links';
-@import 'partials/forms';
-@import 'partials/form-controls';
-@import 'partials/images';
-// responsive, mobile first goal
-@import 'partials/responsive';
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
index cad26892..e69de29b 100644
--- a/src/environments/environment.prod.ts
+++ b/src/environments/environment.prod.ts
@@ -1,18 +0,0 @@
-export const environment = {
- production: true,
- api: {
- baseHref: 'https://framadate-api.cipherbliss.com/api/v1',
- endpoints: {
- isSlugAvailable: '/check-slug-is-uniq',
- },
- },
- poll: {
- defaultConfig: {
- expiracyInDays: 60,
- expiracyAfterLastModificationInDays: 180,
- },
- },
- localStorage: {
- key: 'framadate-storage',
- },
-};
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index 52c43888..8706c3d4 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -9,6 +9,7 @@ const backendApiUrlsInDev = {
export const environment = {
production: false,
+ appTitle: 'FramaSondage',
api: {
baseHref: backendApiUrlsInDev.local + 'api/v1',
endpoints: {
@@ -48,7 +49,7 @@ export const environment = {
},
},
localStorage: {
- key: 'framadate-storage',
+ key: 'FramaSondage',
},
};
diff --git a/src/index.html b/src/index.html
index dfa35b02..aa445f35 100644
--- a/src/index.html
+++ b/src/index.html
@@ -2,12 +2,13 @@
- Framadate
+ FramaSondage
+
diff --git a/src/jest.setup.ts b/src/jest.setup.ts
new file mode 100644
index 00000000..d52dfb13
--- /dev/null
+++ b/src/jest.setup.ts
@@ -0,0 +1,26 @@
+import 'jest-preset-angular';
+
+Object.defineProperty(window, 'CSS', { value: null });
+Object.defineProperty(document, 'doctype', {
+ value: '',
+});
+Object.defineProperty(window, 'getComputedStyle', {
+ value: () => {
+ return {
+ display: 'none',
+ appearance: ['-webkit-appearance'],
+ };
+ },
+});
+/**
+ * ISSUE: https://github.com/angular/material2/issues/7101
+ * Workaround for JSDOM missing transform property
+ */
+Object.defineProperty(document.body.style, 'transform', {
+ value: () => {
+ return {
+ enumerable: true,
+ configurable: true,
+ };
+ },
+});
diff --git a/src/styles.scss b/src/styles.scss
new file mode 100644
index 00000000..80ac778f
--- /dev/null
+++ b/src/styles.scss
@@ -0,0 +1,35 @@
+@charset "utf-8";
+/*
+ You can add global.scss styles to this file, and also import other style files
+ ==================================================
+ all styles should be imported in an order from top:
+ most global scope, to bottom: the most specific scope of qualification.
+ ==================================================
+ */
+// configuration
+@import './styles/variables';
+@import './styles/dev-utilities/mixins';
+@import './styles/dev-utilities/helpers';
+@import './styles/dev-utilities/debug';
+@import './styles/libraries/frameworks';
+@import './styles/libraries/overrides';
+// typography
+//@import './styles/partials/font-families';
+@import './styles/partials/typo';
+// themes
+@import './styles/themes/all';
+// most general dom elements
+@import './styles/partials/global';
+@import './styles/partials/logo';
+@import './styles/partials/navigation';
+
+// main content elements
+@import './styles/partials/main';
+@import './styles/partials/tables';
+@import './styles/partials/buttons';
+@import './styles/partials/links';
+@import './styles/partials/forms';
+@import './styles/partials/form-controls';
+@import './styles/partials/images';
+// responsive, mobile first goal
+@import './styles/partials/responsive';
diff --git a/src/assets/scss/dev-utilities/_debug.scss b/src/styles/dev-utilities/_debug.scss
similarity index 100%
rename from src/assets/scss/dev-utilities/_debug.scss
rename to src/styles/dev-utilities/_debug.scss
diff --git a/src/assets/scss/dev-utilities/_helpers.scss b/src/styles/dev-utilities/_helpers.scss
similarity index 100%
rename from src/assets/scss/dev-utilities/_helpers.scss
rename to src/styles/dev-utilities/_helpers.scss
diff --git a/src/assets/scss/dev-utilities/_mixins.scss b/src/styles/dev-utilities/_mixins.scss
similarity index 100%
rename from src/assets/scss/dev-utilities/_mixins.scss
rename to src/styles/dev-utilities/_mixins.scss
diff --git a/src/assets/scss/libraries/_frameworks.scss b/src/styles/libraries/_frameworks.scss
similarity index 100%
rename from src/assets/scss/libraries/_frameworks.scss
rename to src/styles/libraries/_frameworks.scss
diff --git a/src/assets/scss/libraries/_overrides.scss b/src/styles/libraries/_overrides.scss
similarity index 100%
rename from src/assets/scss/libraries/_overrides.scss
rename to src/styles/libraries/_overrides.scss
diff --git a/src/assets/scss/partials/_buttons.scss b/src/styles/partials/_buttons.scss
similarity index 100%
rename from src/assets/scss/partials/_buttons.scss
rename to src/styles/partials/_buttons.scss
diff --git a/src/assets/scss/partials/_font-families.scss b/src/styles/partials/_font-families.scss
similarity index 100%
rename from src/assets/scss/partials/_font-families.scss
rename to src/styles/partials/_font-families.scss
diff --git a/src/assets/scss/partials/_form-controls.scss b/src/styles/partials/_form-controls.scss
similarity index 100%
rename from src/assets/scss/partials/_form-controls.scss
rename to src/styles/partials/_form-controls.scss
diff --git a/src/assets/scss/partials/_forms.scss b/src/styles/partials/_forms.scss
similarity index 100%
rename from src/assets/scss/partials/_forms.scss
rename to src/styles/partials/_forms.scss
diff --git a/src/assets/scss/partials/_images.scss b/src/styles/partials/_images.scss
similarity index 100%
rename from src/assets/scss/partials/_images.scss
rename to src/styles/partials/_images.scss
diff --git a/src/assets/scss/partials/_links.scss b/src/styles/partials/_links.scss
similarity index 100%
rename from src/assets/scss/partials/_links.scss
rename to src/styles/partials/_links.scss
diff --git a/src/assets/scss/partials/_logo.scss b/src/styles/partials/_logo.scss
similarity index 100%
rename from src/assets/scss/partials/_logo.scss
rename to src/styles/partials/_logo.scss
diff --git a/src/assets/scss/partials/_main.scss b/src/styles/partials/_main.scss
similarity index 100%
rename from src/assets/scss/partials/_main.scss
rename to src/styles/partials/_main.scss
diff --git a/src/assets/scss/partials/_navigation.scss b/src/styles/partials/_navigation.scss
similarity index 100%
rename from src/assets/scss/partials/_navigation.scss
rename to src/styles/partials/_navigation.scss
diff --git a/src/assets/scss/partials/_responsive.scss b/src/styles/partials/_responsive.scss
similarity index 100%
rename from src/assets/scss/partials/_responsive.scss
rename to src/styles/partials/_responsive.scss
diff --git a/src/assets/scss/partials/_tables.scss b/src/styles/partials/_tables.scss
similarity index 100%
rename from src/assets/scss/partials/_tables.scss
rename to src/styles/partials/_tables.scss
diff --git a/src/assets/scss/partials/_typo.scss b/src/styles/partials/_typo.scss
similarity index 80%
rename from src/assets/scss/partials/_typo.scss
rename to src/styles/partials/_typo.scss
index 55ca9854..b75346b3 100644
--- a/src/assets/scss/partials/_typo.scss
+++ b/src/styles/partials/_typo.scss
@@ -27,8 +27,3 @@ h3 {
h4 {
@extend .is-4;
}
-
-// icons font awesome
-.fa {
- margin: 0.25rem;
-}
diff --git a/src/assets/scss/partials/global.scss b/src/styles/partials/global.scss
similarity index 100%
rename from src/assets/scss/partials/global.scss
rename to src/styles/partials/global.scss
diff --git a/src/assets/scss/themes/_all.scss b/src/styles/themes/_all.scss
similarity index 100%
rename from src/assets/scss/themes/_all.scss
rename to src/styles/themes/_all.scss
diff --git a/src/assets/scss/themes/_base.scss b/src/styles/themes/_base.scss
similarity index 100%
rename from src/assets/scss/themes/_base.scss
rename to src/styles/themes/_base.scss
diff --git a/src/assets/scss/themes/_dark.scss b/src/styles/themes/_dark.scss
similarity index 100%
rename from src/assets/scss/themes/_dark.scss
rename to src/styles/themes/_dark.scss
diff --git a/src/assets/scss/themes/_high-contrast.scss b/src/styles/themes/_high-contrast.scss
similarity index 100%
rename from src/assets/scss/themes/_high-contrast.scss
rename to src/styles/themes/_high-contrast.scss
diff --git a/src/assets/scss/themes/_light.scss b/src/styles/themes/_light.scss
similarity index 100%
rename from src/assets/scss/themes/_light.scss
rename to src/styles/themes/_light.scss
diff --git a/src/assets/scss/themes/_red.scss b/src/styles/themes/_red.scss
similarity index 100%
rename from src/assets/scss/themes/_red.scss
rename to src/styles/themes/_red.scss
diff --git a/src/assets/scss/variables.scss b/src/styles/variables.scss
similarity index 100%
rename from src/assets/scss/variables.scss
rename to src/styles/variables.scss
diff --git a/tsconfig.spec.json b/tsconfig.spec.json
index c2cd05e1..2415f10f 100644
--- a/tsconfig.spec.json
+++ b/tsconfig.spec.json
@@ -3,8 +3,9 @@
"compilerOptions": {
"outDir": "./public/out-tsc/spec",
"module": "commonjs",
- "types": ["jest"]
+ "allowJs": true,
+ "types": ["jest", "jquery", "jsdom", "node"]
},
- "files": ["test.ts", "polyfills.ts"],
+ "files": ["polyfills.ts"],
"include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/yarn.lock b/yarn.lock
index 70d8f4a2..979ed878 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,15 +12,7 @@
jest-preset-angular "^8.1.2"
lodash "^4.17.10"
-"@angular-devkit/architect@0.901.1":
- version "0.901.1"
- resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.901.1.tgz#b60bfd288892612e3af98ea1621a58d3b6ef268b"
- integrity sha512-foWDAurMfBDYLAJxHpTFkJBub1c2A8+eWHbBjgqIHmT8xadnE7t8nSA9XDl+k/kIoWw/qFU+6IttPirudYc/vw==
- dependencies:
- "@angular-devkit/core" "9.1.1"
- rxjs "6.5.4"
-
-"@angular-devkit/architect@>=0.900.0 < 0.1000.0":
+"@angular-devkit/architect@0.901.3", "@angular-devkit/architect@>=0.900.0 < 0.1000.0":
version "0.901.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.901.3.tgz#7aa41d68ce3eadbc83a4f856e5d7f17ed6853977"
integrity sha512-CFjSj48nOJwejmFFtenIqSZWyxRe4fRQsg16l0R4sagW7YwMJSaW6Yl9hRHM8bviPRrTpGHnxeq1x506v1ARLw==
@@ -28,21 +20,21 @@
"@angular-devkit/core" "9.1.3"
rxjs "6.5.4"
-"@angular-devkit/build-angular@^0.901.1":
- version "0.901.1"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.901.1.tgz#46f4168287c5bc9969a91d1a2ab04c95969df04b"
- integrity sha512-6uEvo5htsJoxQHBVwHOGmM6YWq5q6m9UWMv/ughlek0RtSLFfOt9TZQ/yQHgtGQsCQvscD/jBzVoD0zD5Ax/SQ==
+"@angular-devkit/build-angular@^0.901.2":
+ version "0.901.3"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.901.3.tgz#c2cac91a301d43074429a638e7f84f7b9c93a13e"
+ integrity sha512-0ivl+rxiFWY/cWpAhflaJfUmTGNRZn3m4gyt0YNFyHh7oJcwKFVpd9lxJAM4t47Xfyj0ICpTL99UBi4aeo3lEg==
dependencies:
- "@angular-devkit/architect" "0.901.1"
- "@angular-devkit/build-optimizer" "0.901.1"
- "@angular-devkit/build-webpack" "0.901.1"
- "@angular-devkit/core" "9.1.1"
+ "@angular-devkit/architect" "0.901.3"
+ "@angular-devkit/build-optimizer" "0.901.3"
+ "@angular-devkit/build-webpack" "0.901.3"
+ "@angular-devkit/core" "9.1.3"
"@babel/core" "7.9.0"
"@babel/generator" "7.9.3"
"@babel/preset-env" "7.9.0"
"@babel/template" "7.8.6"
"@jsdevtools/coverage-istanbul-loader" "3.0.3"
- "@ngtools/webpack" "9.1.1"
+ "@ngtools/webpack" "9.1.3"
ajv "6.12.0"
autoprefixer "9.7.4"
babel-loader "8.0.6"
@@ -52,6 +44,7 @@
circular-dependency-plugin "5.2.0"
copy-webpack-plugin "5.1.1"
core-js "3.6.4"
+ css-loader "3.5.1"
cssnano "4.1.10"
file-loader "6.0.0"
find-cache-dir "3.3.1"
@@ -79,7 +72,6 @@
semver "7.1.3"
source-map "0.7.3"
source-map-loader "0.2.4"
- source-map-support "0.5.16"
speed-measure-webpack-plugin "1.3.1"
style-loader "1.1.3"
stylus "0.54.7"
@@ -95,10 +87,10 @@
webpack-subresource-integrity "1.4.0"
worker-plugin "4.0.2"
-"@angular-devkit/build-optimizer@0.901.1":
- version "0.901.1"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.901.1.tgz#49d7385c18f49aaccab2545ab2829c4d52e29b18"
- integrity sha512-o0A9CcyDQSUnC5CQIKf92VH8amIYRYrMgLf2kdhSMcy0QV+rEJyN81dSvwX/Yxgnr9NbWEAQg7jnyKk06vfhOw==
+"@angular-devkit/build-optimizer@0.901.3":
+ version "0.901.3"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.901.3.tgz#8bc5d49625908aa23095b894d57026aa2bc79111"
+ integrity sha512-fLRiQ1egH1qsmj5GMJ4ZWawtUYLwpIz1hKJ3WwAIFEFJF2+CDWhO1feUaXZRxPf5qwoj8S+8cSWjdcnKLf/mBw==
dependencies:
loader-utils "2.0.0"
source-map "0.7.3"
@@ -106,26 +98,15 @@
typescript "3.6.5"
webpack-sources "1.4.3"
-"@angular-devkit/build-webpack@0.901.1":
- version "0.901.1"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.901.1.tgz#695bec662d04a8c832fb86ae13b664d85184f42a"
- integrity sha512-9oNI+wPSk8yECy+f0EebfMx4PH3uDJRrifYZAxcr84IpzEbpfpRuYhE3ecwqd7k0zu2Kdjw1uUrGxBuH4/sbGg==
+"@angular-devkit/build-webpack@0.901.3":
+ version "0.901.3"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.901.3.tgz#a15932078970660314fa2a97901eaae65a01e8d6"
+ integrity sha512-tZOiVNCrKaEAo7SuyXPpOoaPy/pbX70G8NFtyhKvoGt5dPbgybWTlibACyzOciBI9wUlGSaJiGPZzKTgL4O5OA==
dependencies:
- "@angular-devkit/architect" "0.901.1"
- "@angular-devkit/core" "9.1.1"
+ "@angular-devkit/architect" "0.901.3"
+ "@angular-devkit/core" "9.1.3"
rxjs "6.5.4"
-"@angular-devkit/core@9.1.1":
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.1.1.tgz#6adb04c17d01abea506b8f2bd041aacdd569dc4f"
- integrity sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==
- dependencies:
- ajv "6.12.0"
- fast-json-stable-stringify "2.1.0"
- magic-string "0.25.7"
- rxjs "6.5.4"
- source-map "0.7.3"
-
"@angular-devkit/core@9.1.3", "@angular-devkit/core@^9.0.0":
version "9.1.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.1.3.tgz#888c86d4eecc5ee0b2cb4a0b4c06ad2762313694"
@@ -137,19 +118,19 @@
rxjs "6.5.4"
source-map "0.7.3"
-"@angular-devkit/schematics@9.1.1":
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.1.1.tgz#8ee93a6297416271002986dbf48f08ad0911a47e"
- integrity sha512-6wx2HcvafHvEjEa1tjDzW2hXrOiSE8ALqJUArb3+NoO1BDM42aGcqyPo0ODzKtDk12CgSsFXdNKRpQ5AmpSPtw==
+"@angular-devkit/schematics@9.1.3":
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.1.3.tgz#29561a0e0cf6ea6f831cc0e823b3e6483dbd0384"
+ integrity sha512-nNRoQPqoin5jzLKmTabIPLSqVw2Zjnk78XC4AhAM7rSisWMsZ6pw5+BNDITiKfq0LkSXfOs0DoJV/Vr9mLkn/A==
dependencies:
- "@angular-devkit/core" "9.1.1"
+ "@angular-devkit/core" "9.1.3"
ora "4.0.3"
rxjs "6.5.4"
"@angular/animations@^9.1.1":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-9.1.2.tgz#01bb52d5a8813701bfacbba99338d88cfc0da9b4"
- integrity sha512-5UJ8SzCtFj4vZChVsni4K9oa4qE9tQ67bwnP6DKxkLEJKQWWyasYp+2siAi/7zD2ro2XA0qRMYhgQz5Vj6eBoQ==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-9.1.3.tgz#93c753ef2305496081df564ef47a4163c2c30e95"
+ integrity sha512-QTQZSnXxr9SCgrN2SZsTMzS/UldrZ65y6Kuqs9yyghNc694eMbabgiPdeegjvcKlDhVPCN2x9Bjfb1vXPOfdvQ==
"@angular/cdk@^9.2.0":
version "9.2.1"
@@ -158,16 +139,16 @@
optionalDependencies:
parse5 "^5.0.0"
-"@angular/cli@^9.0.7":
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-9.1.1.tgz#5b713318446f1315cc289fed28e8080891be771d"
- integrity sha512-sjRAV4UF8M5v+2gw+EwCYSgciBZDc05AbNxQt+uUdxdfR1QU9hifWq8WDxfOR6jdDP5YqMtQsNaFNwrUyjJJoQ==
+"@angular/cli@^9.1.2":
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-9.1.3.tgz#4c70069c2b873b8a6b77e64ddd95e4f9161169c2"
+ integrity sha512-/7yHOuiyMgpcoBuADPrF4Eo9VDysA57fsyrMlOH2WZmKdsjW032StS9EIOue5RNQ7y0DwrtgtnkjbpZ6nYo3Pw==
dependencies:
- "@angular-devkit/architect" "0.901.1"
- "@angular-devkit/core" "9.1.1"
- "@angular-devkit/schematics" "9.1.1"
- "@schematics/angular" "9.1.1"
- "@schematics/update" "0.901.1"
+ "@angular-devkit/architect" "0.901.3"
+ "@angular-devkit/core" "9.1.3"
+ "@angular-devkit/schematics" "9.1.3"
+ "@schematics/angular" "9.1.3"
+ "@schematics/update" "0.901.3"
"@yarnpkg/lockfile" "1.1.0"
ansi-colors "4.1.1"
debug "4.1.1"
@@ -185,14 +166,14 @@
uuid "7.0.2"
"@angular/common@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/common/-/common-9.1.2.tgz#cec9fbfc572bbcf715e994523b04ac48700c1b2c"
- integrity sha512-MAQW0DGq2NhvJSETLTwuImdzwI+wboG+5Uzgc0L8C/hX7SrEE65Hmz4nIjmGi2CPGLpodfWEcCPlV0R0dHun4A==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/common/-/common-9.1.3.tgz#66eee1b5ec392469d2d5eca023de200233cd5ddb"
+ integrity sha512-OGrd/x+WoceskeJWZI3ur+KqVoBHn2kmbg57RyJ8Ng/BkdDVYiXzQ/UvvX1WYGH/YzmiiVdlnVq55xkHkzGaXw==
"@angular/compiler-cli@^9.1.1":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-9.1.2.tgz#2b8de148aadcd58fcd31d0f1ad3b984f412f4c82"
- integrity sha512-zC/oIuT68vtuiYrgXqWsDNi/0DQ1Ti6J6gMTrXVvZXlEDikEExTAJKrrBV5jo6B0bpUofe/dDcJaKR3Ys3cM3Q==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-9.1.3.tgz#2554b73e97c31dec66ac1e48b194ec66c6c1f438"
+ integrity sha512-FqDPmEbJQmzzxqF08CJfqT9XKJFPYdyZuFFStKkJEZ5s1JrjrBlgQSqdF0qp5jWNsjTB87USLHC5zAlzJtMKxQ==
dependencies:
canonical-path "1.0.0"
chokidar "^3.0.0"
@@ -208,48 +189,48 @@
yargs "15.3.0"
"@angular/compiler@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.1.2.tgz#52b22120ca3c7d27dccf4239c849158ad64fb435"
- integrity sha512-82DitvlZA5DoE++qiiJdgx6HE71h96sfLHCjjvYJHApoOcnX+zBZFBrflpbXK9W4YdvydU4Lc1Ql1eleQPeT/g==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.1.3.tgz#8e22dbb1e6a3ca26e8fc9518f8f2c0348b494b5e"
+ integrity sha512-NTqGZUwwdm/RIG1rWPIqQwNyyRcPOmNlv+t1KpydFtycpTut0lAh0shiu57h83Cl2LgaFV4veyiAAtNmxFmqXA==
"@angular/core@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.1.2.tgz#30970d49dc3b53c0dc68cd75dbc2c96afc7fee62"
- integrity sha512-nAqRl+5drAnZlBT7AgSo2JJubmPNrGCvhZ83dosPEUqJoLr69/lYipnF/iqKzYn5xo4MM1O27WIhSNDtDjBmzQ==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.1.3.tgz#e20d35e4b3dda23cc78112c9fcc771ae7858eba0"
+ integrity sha512-r+GyeCuBw9SUBzpPWhKxzTOkNYotYp3gANSWndihLC9P6W5T8Hfyg8uYcxKy7L42bpx8eXZOXFq91cioVwZtqA==
"@angular/forms@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-9.1.2.tgz#84b7c429fad81c781108fc71d694ae76eab4c808"
- integrity sha512-/f2WhMiKDo1/RoisTI71Dy4Z4+sAsAuzgIxJEXvgDGSYvzLl9G8erFx4N6be8Cy/xXwErmp3JOwXIAXjzxF8tA==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-9.1.3.tgz#e64c6ae1844ec54a46a1312d44aa66bd3391bb7b"
+ integrity sha512-t3BexN5EHgCK6q0R04AuyNb6ZUP6sd9fJ+ER98yWws3HXV6FT+J5IB7dVnhelLoU1GTnql4TJSS+LTVradKZ7g==
"@angular/language-service@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-9.1.2.tgz#01b6e289c43148378a54a616681f24d9e8b87183"
- integrity sha512-0BnDIFbIAtFKS/2HDI0efcnW3DSkAAFhUWluBnssvwGzuMHikOKGeamuWM27ki3IzPQKGJ7fGS2fz8A7sMeIYQ==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-9.1.3.tgz#89883b9941f9aaaa8cbb14c37b298e4c2623fa9e"
+ integrity sha512-mcZDO6C2BpDinMjDeMAdohTefpFxNu/S0JEqewYQIQ8TXtKm77xDPUdNdNb4qD4zYW+c46f7UXNMX/tbYCicQw==
"@angular/localize@^9.1.1":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-9.1.2.tgz#c4846e2beaaf18ca7923b1d96541195e293ebef8"
- integrity sha512-Oee/SmFB5wrvmw2evzNnNdQUUqeVg1w1B4YdqLdI7cuPv5Y+YXvo6Mz6yUh1IFELgpK9elYARLYTx6HVobbaWw==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-9.1.3.tgz#d03d9cb1b4fe10dabaf806062d23ee1b7774945d"
+ integrity sha512-aV7AFgvEWm6aaEjS45EPJ1U4i2DOVR6DswUu9CsYkRfy/gSOxWE95SyrhLdg2hB64Bu4mcXxiV1So2BUI7NzBA==
dependencies:
"@babel/core" "7.8.3"
glob "7.1.2"
yargs "15.3.0"
"@angular/platform-browser-dynamic@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.2.tgz#5587d536184e1c92498d9000475dd8998df1b110"
- integrity sha512-BWHxy8S71z+NmUQmtR+/Dkohlj3LQIXltOqeVdCSpjV9cultBNN3bE1w0Rjp3BmCRGCIDH7qFlr4U5woHa7ldw==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.3.tgz#72e3f6f101eb27acddc99bca6a70de3a01e6e190"
+ integrity sha512-9U8PkBflnQtKIZ4t0AqYUaKLg7Kx1BvJ1D/S8FZo/V5kBJK6NkGVu58XddWVc+dtO3V+vCC/VLG7fb2PMf/V5g==
"@angular/platform-browser@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-9.1.2.tgz#ae52a0a9087e682e62c33722d7d7f81813cf499a"
- integrity sha512-/3L4DdvnebvaJUurusaq8RJBFfr/SHWG6DMmV1VVpADxe8kjREyN0LdNDSkZgVf/QcUSwNEA6153iwcF92Otew==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-9.1.3.tgz#f952654571ac1169debd4fb06096025e3db3a46c"
+ integrity sha512-ts6b7QBp4+UpuQS0Eb+FOT4MZVPUwWtWH4iIfBILJaG/0Bk4jHZeXuLFcpgeZkwMNCZEt9f0JrhnHfvuLCez5g==
"@angular/router@^9.0.7":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@angular/router/-/router-9.1.2.tgz#f23ba191c4407c4bce0b7ea7f7ca5edd47ada010"
- integrity sha512-csxE4HkuhVR1X932Q3kSDqBoF7Awuq5dsjv0nFk78raiHgG3CNnfMLHt8xD9XtOmR7ZT+D4yh/YmIK6W7J5hbQ==
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@angular/router/-/router-9.1.3.tgz#fa11e8c1e1786c13dd8f390d02c53b71f93c3937"
+ integrity sha512-NmOazeJ2WVT5eTyNHXYxBRAHic6i6Ku5DgsGWBgjUIR/Qmwb/i/xpagbA9WQQZ2OrGbp4ICEYgGkikeIrlQLPA==
"@babel/code-frame@7.5.5":
version "7.5.5"
@@ -1027,7 +1008,7 @@
levenary "^1.1.1"
semver "^5.5.0"
-"@babel/preset-env@^7.4.5":
+"@babel/preset-env@^7.4.5", "@babel/preset-env@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f"
integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ==
@@ -1352,7 +1333,7 @@
"@jest/types" "^25.4.0"
jest-mock "^25.4.0"
-"@jest/fake-timers@^25.4.0":
+"@jest/fake-timers@^25.1.0", "@jest/fake-timers@^25.4.0":
version "25.4.0"
resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.4.0.tgz#3a9a4289ba836abd084953dca406389a57e00fbd"
integrity sha512-lI9z+VOmVX4dPPFzyj0vm+UtaB8dCJJ852lcDnY0uCPRvZAaVGnMwBBc1wxtf+h7Vz6KszoOvKAt4QijDnHDkg==
@@ -1474,12 +1455,12 @@
call-me-maybe "^1.0.1"
glob-to-regexp "^0.3.0"
-"@ngtools/webpack@9.1.1":
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-9.1.1.tgz#d67c23a62cd6d5ff0ca8f46062d9dc4aa7eebff4"
- integrity sha512-4RPlk6aIlYhk9isTvXbMaA2G0LhxOzcZ+2iG7zV9Yj/Vm8+lrRexpQ/kC/Dh0GI/oCtKIkVpUzx5LTozYeTLdQ==
+"@ngtools/webpack@9.1.3":
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-9.1.3.tgz#023b745ef2036d69e00a5f4b461f4e84b29ed134"
+ integrity sha512-yQ7LHqICC1Xf4E4Jw1jDCAJHYwPX7T7mRFxMd+R/0EBDcz1XBSh85+vnVs2PoJHVH+8ONOEkZKKSjABe1CZUvg==
dependencies:
- "@angular-devkit/core" "9.1.1"
+ "@angular-devkit/core" "9.1.3"
enhanced-resolve "4.1.1"
rxjs "6.5.4"
webpack-sources "1.4.3"
@@ -1518,21 +1499,21 @@
dependencies:
any-observable "^0.3.0"
-"@schematics/angular@9.1.1":
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.1.1.tgz#5069f8f214fa2effb68a937cfb808ec612debe96"
- integrity sha512-V0DcDNgHQ2YR+PGZI6+pf/mUNNxt5SusShkZ1PbwIMk/HUQpzEGkLjm3v1Jw9eIZKiuDx615GNU1xDzQ/KyNRQ==
+"@schematics/angular@9.1.3":
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.1.3.tgz#921786e9cc64628442072f61ee537b370126befb"
+ integrity sha512-3vxrPyvcIWvyWgbx/fpeQvMThXlmcnHTXVn2dpTcE2BzstAYdG17W3qouhvmlqd6m28orxkKKiZaJYMNTtnV/A==
dependencies:
- "@angular-devkit/core" "9.1.1"
- "@angular-devkit/schematics" "9.1.1"
+ "@angular-devkit/core" "9.1.3"
+ "@angular-devkit/schematics" "9.1.3"
-"@schematics/update@0.901.1":
- version "0.901.1"
- resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.901.1.tgz#1e28fb1a4a71a5afe99fef2fc257b1253a04dfd3"
- integrity sha512-g5B8hjXKCbUNLKCkWQxc5r2D9lOQXRTLZJNIqva+l/ck0AML5MpelxkqQId9ZGLfQqfFk/XjdSHRWgcmUs1WnA==
+"@schematics/update@0.901.3":
+ version "0.901.3"
+ resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.901.3.tgz#b2b2275d7331689bfdc4eaf76489f790af656690"
+ integrity sha512-kwfc9LMMi6ryN2oiat9vTqGMK1jKwI1c45Nm1xala35nsbQSQ12qeL3MrVmnSCeI14+cinFUbp8mWI9/3M+/Lg==
dependencies:
- "@angular-devkit/core" "9.1.1"
- "@angular-devkit/schematics" "9.1.1"
+ "@angular-devkit/core" "9.1.3"
+ "@angular-devkit/schematics" "9.1.3"
"@yarnpkg/lockfile" "1.1.0"
ini "1.3.5"
npm-package-arg "^8.0.0"
@@ -2010,17 +1991,13 @@
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-lib-report" "*"
-"@types/jasmine@*":
- version "3.5.10"
- resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.5.10.tgz#a1a41012012b5da9d4b205ba9eba58f6cce2ab7b"
- integrity sha512-3F8qpwBAiVc5+HPJeXJpbrl+XjawGmciN5LgiO7Gv1pl1RHtjoMNqZpqEksaPJW05ViKe8snYInRs6xB25Xdew==
-
-"@types/jasminewd2@~2.0.8":
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/@types/jasminewd2/-/jasminewd2-2.0.8.tgz#67afe5098d5ef2386073a7b7384b69a840dfe93b"
- integrity sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==
+"@types/jest@^25.2.1":
+ version "25.2.1"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.1.tgz#9544cd438607955381c1bdbdb97767a249297db5"
+ integrity sha512-msra1bCaAeEdkSyA0CZ6gW1ukMIvZ5YoJkdXw/qhQdsuuDlFTcEUrUw8CLCPt2rVRUfXlClVvK2gvPs9IokZaA==
dependencies:
- "@types/jasmine" "*"
+ jest-diff "^25.2.1"
+ pretty-format "^25.2.1"
"@types/jest@^25.2.1":
version "25.2.1"
@@ -2050,10 +2027,15 @@
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
-"@types/node@*", "@types/node@^13.11.1":
- version "13.13.1"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.1.tgz#1ba94c5a177a1692518bfc7b41aec0aa1a14354e"
- integrity sha512-uysqysLJ+As9jqI5yqjwP3QJrhOcUwBjHUlUxPxjbplwKoILvXVsmYWEhfmAQlrPfbRZmhJB007o4L9sKqtHqQ==
+"@types/node@*", "@types/node@^13.13.2":
+ version "13.13.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54"
+ integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
@@ -2148,14 +2130,14 @@
source-map "^0.6.1"
"@types/uuid@^7.0.2":
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-7.0.2.tgz#d680a9c596ef84abf5c4c07a32ffd66d582526f8"
- integrity sha512-8Ly3zIPTnT0/8RCU6Kg/G3uTICf9sRwYOpUzSIM3503tLIKcnJPRuinHhXngJUy2MntrEf6dlpOHXJju90Qh5w==
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-7.0.3.tgz#45cd03e98e758f8581c79c535afbd4fc27ba7ac8"
+ integrity sha512-PUdqTZVrNYTNcIhLHkiaYzoOIaUi5LFg/XLerAdgvwQrUCx+oSbtoBze1AMyvYbcwzUSNC+Isl58SM4Sm/6COw==
"@types/webpack-env@^1.15.0":
- version "1.15.1"
- resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.1.tgz#c8e84705e08eed430b5e15b39c65b0944e4d1422"
- integrity sha512-eWN5ElDTeBc5lRDh95SqA8x18D0ll2pWudU3uWiyfsRmIZcmUXpEsxPU+7+BsdCrO2vfLRC629u/MmjbmF+2tA==
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a"
+ integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ==
"@types/webpack-sources@*", "@types/webpack-sources@^0.1.5":
version "0.1.7"
@@ -2547,7 +2529,7 @@ JSONStream@^1.3.4:
jsonparse "^1.2.0"
through ">=2.2.7 <3"
-abab@^2.0.0:
+abab@^2.0.0, abab@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
@@ -2568,6 +2550,14 @@ acorn-globals@^4.3.2:
acorn "^6.0.1"
acorn-walk "^6.0.1"
+acorn-globals@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
+ integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
+ dependencies:
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
+
acorn-jsx@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
@@ -2578,7 +2568,12 @@ acorn-walk@^6.0.1:
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
-acorn@^6.0.1, acorn@^6.2.1:
+acorn-walk@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e"
+ integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==
+
+acorn@^6.0.1, acorn@^6.2.1, acorn@^6.4.1:
version "6.4.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
@@ -3144,9 +3139,9 @@ babel-plugin-add-react-displayname@^0.0.5:
integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=
babel-plugin-dynamic-import-node@^2.3.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.2.tgz#14fb5accb300f9aac0151949f6192259f1403c4a"
- integrity sha512-yvczAMjbc73xira9yTyF1XnEmkX8QwlUhmxuhimeMUeAaA6s7busTPRVDzhVG7eeBdNcRiZ/mAwFrJ9It4vQcg==
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
dependencies:
object.assign "^4.1.0"
@@ -3333,6 +3328,15 @@ babel-plugin-transform-undefined-to-void@^6.9.4:
resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280"
integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=
+babel-polyfill@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
+ integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=
+ dependencies:
+ babel-runtime "^6.26.0"
+ core-js "^2.5.0"
+ regenerator-runtime "^0.10.5"
+
babel-preset-current-node-syntax@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6"
@@ -3386,6 +3390,14 @@ babel-preset-jest@^25.4.0:
babel-plugin-transform-undefined-to-void "^6.9.4"
lodash "^4.17.11"
+babel-runtime@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -3676,11 +3688,6 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
-buffer-crc32@~0.2.3:
- version "0.2.13"
- resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
- integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
-
buffer-from@1.x, buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -3871,9 +3878,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001039, caniuse-lite@^1.0.30001043:
- version "1.0.30001045"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001045.tgz#a770df9de36ad6ca0c34f90eaa797a2dbbb1b619"
- integrity sha512-Y8o2Iz1KPcD6FjySbk1sPpvJqchgxk/iow0DABpGyzA1UeQAuxh63Xh0Enj5/BrsYbXtCN32JmR4ZxQTCQ6E6A==
+ version "1.0.30001046"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001046.tgz#7a06d3e8fd8aa7f4d21c9a2e313f35f2d06b013e"
+ integrity sha512-CsGjBRYWG6FvgbyGy+hBbaezpwiqIOLkxQPY4A4Ea49g1eNsnQuESB+n4QM0BKii1j80MyJ26Ir5ywTQkbRE4g==
canonical-path@1.0.0:
version "1.0.0"
@@ -4264,7 +4271,7 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.2"
-colors@1.4.0, colors@^1.1.2, colors@latest:
+colors@^1.1.2, colors@latest:
version "1.4.0"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
@@ -4359,7 +4366,7 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-stream@^1.5.0, concat-stream@^1.6.2:
+concat-stream@^1.5.0:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
@@ -4488,6 +4495,11 @@ core-js@3.6.4:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647"
integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==
+core-js@^2.4.0, core-js@^2.5.0:
+ version "2.6.11"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
+ integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
+
core-js@^3.0.1, core-js@^3.0.4:
version "3.6.5"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
@@ -4624,6 +4636,25 @@ css-declaration-sorter@^4.0.1:
postcss "^7.0.1"
timsort "^0.3.0"
+css-loader@3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.5.1.tgz#db2b2336f4169edb68e6a829ad4fd36552647b77"
+ integrity sha512-0G4CbcZzQ9D1Q6ndOfjFuMDo8uLYMu5vc9Abs5ztyHcKvmil6GJrMiNjzzi3tQvUF+mVRuDg7bE6Oc0Prolgig==
+ dependencies:
+ camelcase "^5.3.1"
+ cssesc "^3.0.0"
+ icss-utils "^4.1.1"
+ loader-utils "^1.2.3"
+ normalize-path "^3.0.0"
+ postcss "^7.0.27"
+ postcss-modules-extract-imports "^2.0.0"
+ postcss-modules-local-by-default "^3.0.2"
+ postcss-modules-scope "^2.2.0"
+ postcss-modules-values "^3.0.0"
+ postcss-value-parser "^4.0.3"
+ schema-utils "^2.6.5"
+ semver "^6.3.0"
+
css-loader@^3.0.0:
version "3.5.2"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.5.2.tgz#6483ae56f48a7f901fbe07dde2fc96b01eafab3c"
@@ -4791,7 +4822,7 @@ csso@^4.0.2:
dependencies:
css-tree "1.0.0-alpha.39"
-cssom@^0.4.1:
+cssom@^0.4.1, cssom@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
@@ -4801,7 +4832,7 @@ cssom@~0.3.6:
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
-cssstyle@^2.0.0:
+cssstyle@^2.0.0, cssstyle@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992"
integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==
@@ -4834,6 +4865,15 @@ data-urls@^1.1.0:
whatwg-mimetype "^2.2.0"
whatwg-url "^7.0.0"
+data-urls@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
+ integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
+ dependencies:
+ abab "^2.0.3"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^8.0.0"
+
date-fns@^1.27.2:
version "1.30.1"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
@@ -4849,7 +4889,7 @@ dateformat@^2.0.0:
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=
-debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -4887,6 +4927,11 @@ decamelize@^1.2.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+decimal.js@^10.2.0:
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231"
+ integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==
+
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
@@ -5182,6 +5227,13 @@ domexception@^1.0.1:
dependencies:
webidl-conversions "^4.0.2"
+domexception@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
+ integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
+ dependencies:
+ webidl-conversions "^5.0.0"
+
domhandler@^2.3.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
@@ -5295,9 +5347,9 @@ ejs@^2.7.4:
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.413:
- version "1.3.414"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.414.tgz#9d0a92defefda7cc1cf8895058b892795ddd6b41"
- integrity sha512-UfxhIvED++qLwWrAq9uYVcqF8FdeV9sU2S7qhiHYFODxzXRrd1GZRl/PjITHsTEejgibcWDraD8TQqoHb1aCBQ==
+ version "1.3.415"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.415.tgz#e50241c1e2553e46cfe956c9d95f9ab3fc9a9134"
+ integrity sha512-GbtYqKffx3sU8G0HxwXuJFfs58Q7+iwLa5rBwaULwET6jWW8IAQSrVnu7vEfiUIcMVfbYyFg7cw3zdm+EbBJmw==
elegant-spinner@^1.0.1:
version "1.0.1"
@@ -5486,7 +5538,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-escodegen@^1.11.1:
+escodegen@^1.11.1, escodegen@^1.14.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==
@@ -5498,10 +5550,10 @@ escodegen@^1.11.1:
optionalDependencies:
source-map "~0.6.1"
-eslint-config-prettier@^6.10.1:
- version "6.10.1"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz#129ef9ec575d5ddc0e269667bf09defcd898642a"
- integrity sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==
+eslint-config-prettier@^6.11.0:
+ version "6.11.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1"
+ integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==
dependencies:
get-stdin "^6.0.0"
@@ -5839,16 +5891,6 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-extract-zip@^1.6.5:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927"
- integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==
- dependencies:
- concat-stream "^1.6.2"
- debug "^2.6.9"
- mkdirp "^0.5.4"
- yauzl "^2.10.0"
-
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -5939,13 +5981,6 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"
-fd-slicer@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
- integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
- dependencies:
- pend "~1.2.0"
-
figgy-pudding@^3.4.1, figgy-pudding@^3.5.1:
version "3.5.2"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
@@ -6138,11 +6173,6 @@ follow-redirects@^1.0.0:
dependencies:
debug "^3.0.0"
-font-awesome@^4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
- integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=
-
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -6153,6 +6183,11 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+fork-awesome@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/fork-awesome/-/fork-awesome-1.1.7.tgz#1427da1cac3d1713046ee88427e5fcecb9501d21"
+ integrity sha512-IHI7XCSXrKfUIWslse8c/PaaVDT1oBaYge+ju40ihL2ooiQeBpTr4wvIXhgTd2NuhntlvX+M5jYHAPTzNlmv0g==
+
fork-ts-checker-webpack-plugin@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c"
@@ -6245,15 +6280,6 @@ fs-extra@^0.30.0:
path-is-absolute "^1.0.0"
rimraf "^2.2.8"
-fs-extra@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
- integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
- klaw "^1.0.0"
-
fs-extra@^2.0.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35"
@@ -6317,16 +6343,11 @@ fsevents@^1.2.7:
bindings "^1.5.0"
nan "^2.12.1"
-fsevents@^2.1.2:
+fsevents@^2.1.2, fsevents@~2.1.2:
version "2.1.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
-fsevents@~2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
- integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
-
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -6762,14 +6783,6 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-hasha@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
- integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=
- dependencies:
- is-stream "^1.0.1"
- pinkie-promise "^2.0.0"
-
hast-util-parse-selector@^2.0.0:
version "2.2.4"
resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974"
@@ -6865,6 +6878,13 @@ html-encoding-sniffer@^1.0.2:
dependencies:
whatwg-encoding "^1.0.1"
+html-encoding-sniffer@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
+ integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
+ dependencies:
+ whatwg-encoding "^1.0.5"
+
html-entities@^1.2.0, html-entities@^1.2.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
@@ -7491,9 +7511,14 @@ is-fullwidth-code-point@^3.0.0:
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-function@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
- integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
+ integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
+
+is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
is-generator-fn@^2.0.0:
version "2.1.0"
@@ -7627,6 +7652,11 @@ is-plain-object@^3.0.0:
dependencies:
isobject "^4.0.0"
+is-potential-custom-element-name@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
+ integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
+
is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
@@ -7659,7 +7689,7 @@ is-set@^2.0.1:
resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43"
integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==
-is-stream@^1.0.1, is-stream@^1.1.0:
+is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
@@ -7708,7 +7738,7 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
-is-wsl@^2.1.0, is-wsl@^2.1.1:
+is-wsl@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d"
integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==
@@ -7791,7 +7821,7 @@ istanbul-lib-source-maps@^4.0.0:
istanbul-lib-coverage "^3.0.0"
source-map "^0.6.1"
-istanbul-reports@^3.0.0, istanbul-reports@^3.0.2:
+istanbul-reports@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
@@ -7817,18 +7847,6 @@ jasmine-core@~2.8.0:
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"
integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=
-jasmine-core@~3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4"
- integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==
-
-jasmine-spec-reporter@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.1.tgz#4d86dbffcf1326d5b1684f9c8cd4abbb6d76c2fe"
- integrity sha512-RrOZ+bSPnbk1/9KKs5lm0Nl0cqDCh/XXVlCmu3nkhEJH6HTDh4hoJZu3q8e9aq37C0eXEf/JEJnYy+t4m3arZQ==
- dependencies:
- colors "1.4.0"
-
jasmine@2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e"
@@ -7923,6 +7941,16 @@ jest-each@^25.4.0:
jest-util "^25.4.0"
pretty-format "^25.4.0"
+jest-environment-jsdom-sixteen@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom-sixteen/-/jest-environment-jsdom-sixteen-1.0.3.tgz#e222228fac537ef15cca5ad470b19b47d9690165"
+ integrity sha512-CwMqDUUfSl808uGPWXlNA1UFkWFgRmhHvyAjhCmCry6mYq4b/nn80MMN7tglqo5XgrANIs/w+mzINPzbZ4ZZrQ==
+ dependencies:
+ "@jest/fake-timers" "^25.1.0"
+ jest-mock "^25.1.0"
+ jest-util "^25.1.0"
+ jsdom "^16.2.1"
+
jest-environment-jsdom@^25.4.0:
version "25.4.0"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.4.0.tgz#bbfc7f85bb6ade99089062a830c79cb454565cf0"
@@ -8025,7 +8053,7 @@ jest-message-util@^25.4.0:
slash "^3.0.0"
stack-utils "^1.0.1"
-jest-mock@^25.4.0:
+jest-mock@^25.1.0, jest-mock@^25.4.0:
version "25.4.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.4.0.tgz#ded7d64b5328d81d78d2138c825d3a45e30ec8ca"
integrity sha512-MdazSfcYAUjJjuVTTnusLPzE0pE4VXpOUzWdj8sbM+q6abUjm3bATVPXFqTXrxSieR8ocpvQ9v/QaQCftioQFg==
@@ -8154,7 +8182,7 @@ jest-snapshot@^25.4.0:
pretty-format "^25.4.0"
semver "^6.3.0"
-jest-util@^25.4.0:
+jest-util@^25.1.0, jest-util@^25.4.0:
version "25.4.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.4.0.tgz#6a093d09d86d2b41ef583e5fe7dd3976346e1acd"
integrity sha512-WSZD59sBtAUjLv1hMeKbNZXmMcrLRWcYqpO8Dz8b4CeCTZpfNQw2q9uwrYAD+BbJoLJlu4ezVPwtAmM/9/SlZA==
@@ -8204,7 +8232,7 @@ jest-worker@^25.1.0, jest-worker@^25.4.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest@^25.3.0:
+jest@^25.4.0:
version "25.4.0"
resolved "https://registry.yarnpkg.com/jest/-/jest-25.4.0.tgz#fb96892c5c4e4a6b9bcb12068849cddf4c5f8cc7"
integrity sha512-XWipOheGB4wai5JfCYXd6vwsWNwM/dirjRoZgAa7H2wd8ODWbli2AiKjqG8AYhyx+8+5FBEdpO92VhGlBydzbw==
@@ -8268,6 +8296,38 @@ jsdom@^15.2.1:
ws "^7.0.0"
xml-name-validator "^3.0.0"
+jsdom@^16.2.1:
+ version "16.2.2"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.2.2.tgz#76f2f7541646beb46a938f5dc476b88705bedf2b"
+ integrity sha512-pDFQbcYtKBHxRaP55zGXCJWgFHkDAYbKcsXEK/3Icu9nKYZkutUXfLBwbD+09XDutkYSHcgfQLZ0qvpAAm9mvg==
+ dependencies:
+ abab "^2.0.3"
+ acorn "^7.1.1"
+ acorn-globals "^6.0.0"
+ cssom "^0.4.4"
+ cssstyle "^2.2.0"
+ data-urls "^2.0.0"
+ decimal.js "^10.2.0"
+ domexception "^2.0.1"
+ escodegen "^1.14.1"
+ html-encoding-sniffer "^2.0.1"
+ is-potential-custom-element-name "^1.0.0"
+ nwsapi "^2.2.0"
+ parse5 "5.1.1"
+ request "^2.88.2"
+ request-promise-native "^1.0.8"
+ saxes "^5.0.0"
+ symbol-tree "^3.2.4"
+ tough-cookie "^3.0.1"
+ w3c-hr-time "^1.0.2"
+ w3c-xmlserializer "^2.0.0"
+ webidl-conversions "^6.0.0"
+ whatwg-encoding "^1.0.5"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^8.0.0"
+ ws "^7.2.3"
+ xml-name-validator "^3.0.0"
+
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@@ -8361,33 +8421,6 @@ jszip@^3.1.3:
readable-stream "~2.3.6"
set-immediate-shim "~1.0.1"
-karma-coverage@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-2.0.2.tgz#75d5ce983033d8f738d57df82948dc3534392519"
- integrity sha512-zge5qiGEIKDdzWciQwP4p0LSac4k/L6VfrBsERMUn5mpDvxhv1sPVOrSlpzpi70T7NhuEy4bgnpAKIYuumIMCw==
- dependencies:
- istanbul-lib-coverage "^3.0.0"
- istanbul-lib-instrument "^4.0.1"
- istanbul-lib-report "^3.0.0"
- istanbul-lib-source-maps "^4.0.0"
- istanbul-reports "^3.0.0"
- minimatch "^3.0.4"
-
-karma-firefox-launcher@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz#ebcbb1d1ddfada6be900eb8fae25bcf2dcdc8171"
- integrity sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ==
- dependencies:
- is-wsl "^2.1.0"
-
-karma-phantomjs-launcher@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2"
- integrity sha1-0jyjSAG9qYY60xjju0vUBisTrNI=
- dependencies:
- lodash "^4.0.1"
- phantomjs-prebuilt "^2.1.7"
-
karma-source-map-support@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b"
@@ -8402,11 +8435,6 @@ katex@^0.11.0:
dependencies:
commander "^2.19.0"
-kew@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
- integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=
-
killable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
@@ -8532,10 +8560,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-lint-staged@^10.1.3:
- version "10.1.6"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.1.6.tgz#086db5e4f5906642ccf648e9b54375d794a9be81"
- integrity sha512-45zaGxf4XZuwdUk87yRFE/1b4vTZmH2UnYmUPmindsgdAljOFpWWb0yEjxngmqERUS/MGauJexFF6BjLVg9VMA==
+lint-staged@^10.1.7:
+ version "10.1.7"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.1.7.tgz#b628f8b010083fe4e116d0af7949a32f1ea6b3a7"
+ integrity sha512-ZkK8t9Ep/AHuJQKV95izSa+DqotftGnSsNeEmCSqbQ6j4C4H0jDYhEZqVOGD1Q2Oe227igbqjMWycWyYbQtpoA==
dependencies:
chalk "^4.0.0"
commander "^5.0.0"
@@ -8865,7 +8893,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3:
+lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.5:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@@ -8955,9 +8983,9 @@ make-dir@^2.0.0:
semver "^5.6.0"
make-dir@^3.0.0, make-dir@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392"
- integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
dependencies:
semver "^6.0.0"
@@ -9165,11 +9193,16 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-mime-db@1.43.0, "mime-db@>= 1.43.0 < 2":
+mime-db@1.43.0:
version "1.43.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
+"mime-db@>= 1.43.0 < 2":
+ version "1.44.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
+
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
version "2.1.26"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
@@ -9316,7 +9349,7 @@ mkdirp@1.x, mkdirp@^1.0.3:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1, mkdirp@~0.5.x:
+mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1, mkdirp@~0.5.x:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -9397,9 +9430,9 @@ mute-stream@0.0.8:
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
nan@^2.12.1:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
+ integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
nanomatch@^1.2.9:
version "1.2.13"
@@ -9455,6 +9488,11 @@ ngx-toaster@^1.0.1:
resolved "https://registry.yarnpkg.com/ngx-toaster/-/ngx-toaster-1.0.1.tgz#ee54f83bcbe3da26210097baac08445952899515"
integrity sha1-7lT4O8vj2iYhAJe6rAhEWVKJlRU=
+ngx-webstorage@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ngx-webstorage/-/ngx-webstorage-5.0.0.tgz#e27d9673c2452ca000ff509cd5a8397924c5b433"
+ integrity sha512-m96dBjUgLCpaknLRKfsJMEik393xrSX0EwO3paNSkS5d+xj2/cAendE3NwJeKY/W1D9EkKAhCvSUDX9/bAwCUg==
+
"ngx-window-token@>= 3.0.0-beta01 || >= 3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/ngx-window-token/-/ngx-window-token-3.0.0.tgz#a5419befb133c6226e3e570737a247e66c825ab7"
@@ -10170,7 +10208,7 @@ parse5@5.1.0:
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
-parse5@^5.0.0:
+parse5@5.1.1, parse5@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
@@ -10273,31 +10311,11 @@ pbkdf2@^3.0.3:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-pend@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
- integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
-
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-phantomjs-prebuilt@^2.1.7:
- version "2.1.16"
- resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
- integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=
- dependencies:
- es6-promise "^4.0.3"
- extract-zip "^1.6.5"
- fs-extra "^1.0.0"
- hasha "^2.2.0"
- kew "^0.7.0"
- progress "^1.1.8"
- request "^2.81.0"
- request-progress "^2.0.1"
- which "^1.2.10"
-
picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7:
version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
@@ -10772,10 +10790,10 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
-prettier@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.4.tgz#2d1bae173e355996ee355ec9830a7a1ee05457ef"
- integrity sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==
+prettier@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4"
+ integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
pretty-error@^2.1.1:
version "2.1.1"
@@ -10805,10 +10823,10 @@ primeicons@^2.0.0:
resolved "https://registry.yarnpkg.com/primeicons/-/primeicons-2.0.0.tgz#ec3e5a8d4d04a09309225a5a57deb911e08dc0d3"
integrity sha512-GJTCeMSQU8UU1GqbsaDrg/IH+b/vSinJQl52NVpdJ7sShYLZA8Eq6jLF48Ye3N/dQloGrE07i7XsZvxQ9pNbqg==
-primeng@^9.0.5:
- version "9.0.5"
- resolved "https://registry.yarnpkg.com/primeng/-/primeng-9.0.5.tgz#f7025b3d6bc94af2077fad4e027e1c2675134e36"
- integrity sha512-juugoXZaU7TyGyTSFx0PNjObqM+/RTY/arJ/LwyH/0KaIv0V+Oqfvnx8btJ96kLOZ+h0xLWXLuAbxsTXe9EX6w==
+primeng@^9.0.6:
+ version "9.0.6"
+ resolved "https://registry.yarnpkg.com/primeng/-/primeng-9.0.6.tgz#b0d8350428722aaab2f5d4a65d3d06b5d4f673e0"
+ integrity sha512-RGVTkXwHTb7609zTU/uJFYdbJV124kOwrMiwnHjFn6UkwmS3yTX0Kkr21v8KOTJqsKLq3OWVYhkOwvUklipAAg==
prismjs@^1.16.0, prismjs@^1.8.4:
version "1.20.0"
@@ -10839,11 +10857,6 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
-progress@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
- integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
-
progress@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
@@ -11465,6 +11478,16 @@ regenerator-runtime@0.13.5, regenerator-runtime@^0.13.2, regenerator-runtime@^0.
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
+regenerator-runtime@^0.10.5:
+ version "0.10.5"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
+ integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+ integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+
regenerator-transform@^0.14.2:
version "0.14.4"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7"
@@ -11559,13 +11582,6 @@ replace-ext@0.0.1:
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
-request-progress@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
- integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=
- dependencies:
- throttleit "^1.0.0"
-
request-promise-core@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9"
@@ -11573,7 +11589,7 @@ request-promise-core@1.1.3:
dependencies:
lodash "^4.17.15"
-request-promise-native@^1.0.7:
+request-promise-native@^1.0.7, request-promise-native@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36"
integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==
@@ -11582,7 +11598,7 @@ request-promise-native@^1.0.7:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.81.0, request@^2.83.0, request@^2.87.0, request@^2.88.0:
+request@^2.83.0, request@^2.87.0, request@^2.88.0, request@^2.88.2:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -11672,20 +11688,13 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@1.x, resolve@^1.15.1:
+resolve@1.x, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.15.1, resolve@^1.3.2:
version "1.17.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
dependencies:
path-parse "^1.0.6"
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.2:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c"
- integrity sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig==
- dependencies:
- path-parse "^1.0.6"
-
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
@@ -11880,6 +11889,13 @@ saxes@^3.1.9:
dependencies:
xmlchars "^2.1.1"
+saxes@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
+ integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
+ dependencies:
+ xmlchars "^2.2.0"
+
scheduler@^0.19.1:
version "0.19.1"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
@@ -12315,18 +12331,10 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@0.5.16:
- version "0.5.16"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
- integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12:
- version "0.5.17"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.17.tgz#29fe1b3c98b9dbd5064ada89052ee8ff070cb46c"
- integrity sha512-bwdKOBZ5L0gFRh4KOxNap/J/MpvX9Yxsq9lFDx65s3o7F/NiHy7JRaGIS8MwW6tZPAq9UXE207Il0cfcb5yu/Q==
+source-map-support@^0.5.17, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12:
+ version "0.5.18"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.18.tgz#f5f33489e270bd7f7d7e7b8debf283f3a4066960"
+ integrity sha512-9luZr/BZ2QeU6tO2uG8N2aZpVSli4TSAOAqFOyTO51AJcD9P99c0K1h6dD6r6qo5dyT44BR5exweOaLLeldTkQ==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -12859,7 +12867,7 @@ symbol-observable@1.2.0, symbol-observable@^1.1.0:
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
-symbol-tree@^3.2.2:
+symbol-tree@^3.2.2, symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
@@ -13011,11 +13019,6 @@ throttle-debounce@^2.1.0:
resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz#257e648f0a56bd9e54fe0f132c4ab8611df4e1d5"
integrity sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg==
-throttleit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
- integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
-
through2@^2.0.0:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
@@ -13151,6 +13154,13 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
+tr46@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479"
+ integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==
+ dependencies:
+ punycode "^2.1.1"
+
tree-kill@1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
@@ -13161,7 +13171,7 @@ ts-dedent@^1.1.0:
resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3"
integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg==
-ts-jest@^25.0.0:
+ts-jest@^25.0.0, ts-jest@^25.4.0:
version "25.4.0"
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.4.0.tgz#5ad504299f8541d463a52e93e5e9d76876be0ba4"
integrity sha512-+0ZrksdaquxGUBwSdTIcdX7VXdwLIlSRsyjivVA9gcO+Cvr6ByqDhu/mi5+HCcb6cMkiQp5xZ8qRO7/eCqLeyw==
@@ -13189,15 +13199,22 @@ ts-loader@^6.0.1:
micromatch "^4.0.0"
semver "^6.0.0"
-ts-node@~8.8.2:
- version "8.8.2"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.8.2.tgz#0b39e690bee39ea5111513a9d2bcdc0bc121755f"
- integrity sha512-duVj6BpSpUpD/oM4MfhO98ozgkp3Gt9qIp3jGxwU2DFvl/3IRaEAvbLa8G60uS7C77457e/m5TMowjedeRxI1Q==
+ts-mockito@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/ts-mockito/-/ts-mockito-2.5.0.tgz#ad853051f2d116dfcaf6de6b0a1df2c82eda2d1f"
+ integrity sha512-b3qUeMfghRq5k5jw3xNJcnU9RKhqKnRn0k9v9QkN+YpuawrFuMIiGwzFZCpdi5MHy26o7YPnK8gag2awURl3nA==
+ dependencies:
+ lodash "^4.17.5"
+
+ts-node@~8.9.0:
+ version "8.9.0"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.0.tgz#d7bf7272dcbecd3a2aa18bd0b96c7d2f270c15d4"
+ integrity sha512-rwkXfOs9zmoHrV8xE++dmNd6ZIS+nmHHCxcV53ekGJrxFLMbp+pizpPS07ARvhwneCIECPppOwbZHvw9sQtU4w==
dependencies:
arg "^4.1.0"
diff "^4.0.1"
make-error "^1.1.1"
- source-map-support "^0.5.6"
+ source-map-support "^0.5.17"
yn "3.1.1"
ts-pnp@^1.1.2:
@@ -13627,7 +13644,7 @@ vm-browserify@^1.0.1:
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
-w3c-hr-time@^1.0.1:
+w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
@@ -13643,6 +13660,13 @@ w3c-xmlserializer@^1.1.2:
webidl-conversions "^4.0.2"
xml-name-validator "^3.0.0"
+w3c-xmlserializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
+ integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
+ dependencies:
+ xml-name-validator "^3.0.0"
+
walker@^1.0.7, walker@~1.0.5:
version "1.0.7"
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
@@ -13657,7 +13681,7 @@ warning@^4.0.2, warning@^4.0.3:
dependencies:
loose-envify "^1.0.0"
-watchpack@^1.6.0:
+watchpack@^1.6.0, watchpack@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2"
integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==
@@ -13710,6 +13734,16 @@ webidl-conversions@^4.0.2:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+webidl-conversions@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
+ integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
+
+webidl-conversions@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
+ integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
+
webpack-dev-middleware@3.7.2, webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3"
@@ -13837,15 +13871,15 @@ webpack@4.42.0:
webpack-sources "^1.4.1"
webpack@^4.33.0, webpack@^4.38.0:
- version "4.42.1"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef"
- integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6"
+ integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==
dependencies:
"@webassemblyjs/ast" "1.9.0"
"@webassemblyjs/helper-module-context" "1.9.0"
"@webassemblyjs/wasm-edit" "1.9.0"
"@webassemblyjs/wasm-parser" "1.9.0"
- acorn "^6.2.1"
+ acorn "^6.4.1"
ajv "^6.10.2"
ajv-keywords "^3.4.1"
chrome-trace-event "^1.0.2"
@@ -13862,7 +13896,7 @@ webpack@^4.33.0, webpack@^4.38.0:
schema-utils "^1.0.0"
tapable "^1.1.3"
terser-webpack-plugin "^1.4.3"
- watchpack "^1.6.0"
+ watchpack "^1.6.1"
webpack-sources "^1.4.1"
websocket-driver@>=0.5.1:
@@ -13900,6 +13934,15 @@ whatwg-url@^7.0.0:
tr46 "^1.0.1"
webidl-conversions "^4.0.2"
+whatwg-url@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.0.0.tgz#37f256cb746398e19b107bd6ef820b4ae2d15871"
+ integrity sha512-41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^2.0.0"
+ webidl-conversions "^5.0.0"
+
when@~3.6.x:
version "3.6.4"
resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e"
@@ -13915,7 +13958,7 @@ which-pm-runs@^1.0.0:
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
-which@^1.2.10, which@^1.2.9, which@^1.3.1:
+which@^1.2.9, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -14028,7 +14071,7 @@ ws@^6.2.1:
dependencies:
async-limiter "~1.0.0"
-ws@^7.0.0:
+ws@^7.0.0, ws@^7.2.3:
version "7.2.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46"
integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==
@@ -14051,7 +14094,7 @@ xmlbuilder@~11.0.0:
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
-xmlchars@^2.1.1:
+xmlchars@^2.1.1, xmlchars@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
@@ -14151,14 +14194,6 @@ yargs@^15.3.1:
y18n "^4.0.0"
yargs-parser "^18.1.1"
-yauzl@^2.10.0:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
- integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
- dependencies:
- buffer-crc32 "~0.2.3"
- fd-slicer "~1.1.0"
-
yn@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
From 7029368ab1fc7f4ebbddcaca3d7140f4441d2873 Mon Sep 17 00:00:00 2001
From: seraph
Date: Fri, 1 May 2020 19:10:17 +0200
Subject: [PATCH 2/2] upgrade archi with modules
---
.storybook/main.js | 4 -
.storybook/tsconfig.json | 20 -
.storybook/typings.d.ts | 4 -
README.md | 43 +-
angular.json | 3 +-
backend-api-endpoints-doc.md | 44 -
backend-api-endpoints-doc.txt | 46 +
e2e/tsconfig.json | 18 +-
package.json | 30 +-
src/app/app-routing.module.ts | 52 +-
src/app/app.component.html | 47 +-
src/app/app.component.scss | 13 -
src/app/app.component.ts | 52 +-
src/app/app.module.ts | 79 +-
.../components/footer/footer.component.html | 10 +-
.../components/header/header.component.html | 74 +
.../header.component.scss} | 0
.../header.component.spec.ts} | 12 +-
.../components/header/header.component.ts | 16 +
.../core/components/home/home.component.html | 19 +
.../components}/home/home.component.scss | 0
.../components}/home/home.component.spec.ts | 0
.../core/components/home/home.component.ts | 12 +
.../components/login/login.component.html | 1 +
.../login.component.scss} | 0
.../components/login/login.component.spec.ts} | 12 +-
.../core/components/login/login.component.ts | 12 +
.../core/components/logo/logo.component.html | 2 +-
.../components/navbar/navbar.component.html | 1 -
.../components/navbar/navbar.component.ts | 12 -
.../page-not-found.component.html | 3 -
.../language-selector.component.html | 0
.../language-selector.component.scss | 0
.../language-selector.component.spec.ts | 0
.../language-selector.component.ts | 4 +-
.../theme-selector.component.html | 0
.../theme-selector.component.scss} | 0
.../theme-selector.component.spec.ts | 0
.../theme-selector.component.ts | 4 +-
.../navigation/navigation.component.html | 23 +
.../navigation/navigation.component.scss} | 0
.../navigation/navigation.component.spec.ts | 0
.../navigation/navigation.component.ts | 18 +
src/app/core/core.module.ts | 25 +-
src/app/core/enums/message-severity.enum.ts | 6 +
src/app/core/enums/poll-type.enum.ts | 4 -
src/app/core/enums/user-role.enum.ts | 5 +
src/app/core/enums/workflow-step.enum.ts | 5 +
src/app/core/models/poll.model.ts | 16 +-
src/app/core/models/user.model.ts | 2 +
src/app/core/services/api.service.ts | 109 +-
.../message-displayer.service.spec.ts | 16 +
.../services/message-displayer.service.ts | 19 +
src/app/core/services/mocking.service.spec.ts | 16 +
src/app/core/services/mocking.service.ts | 37 +
src/app/core/services/poll.service.ts | 39 +-
src/app/core/services/theme.service.ts | 2 +-
src/app/core/services/user.service.ts | 20 +-
.../core/services/workflow.service.spec.ts | 16 +
src/app/core/services/workflow.service.ts | 30 +
src/app/core/utils/poll-utils.service.ts | 2 +-
.../administration-routing.module.ts | 27 +-
.../administration.component.html | 13 +-
.../administration.component.ts | 4 +
.../administration/administration.module.ts | 25 +-
.../edit-configuration.component.html | 1 +
.../edit-configuration.component.scss} | 0
.../edit-configuration.component.spec.ts | 24 +
.../edit-configuration.component.ts | 12 +
.../edit-description.component.html | 33 +
.../edit-description.component.scss} | 0
.../edit-description.component.spec.ts | 24 +
.../edit-description.component.ts | 41 +
.../edit-options/edit-options.component.html | 1 +
.../edit-options/edit-options.component.scss} | 0
.../edit-options.component.spec.ts | 24 +
.../edit-options/edit-options.component.ts | 12 +
.../poll-edit/poll-edit.component.html | 33 +
.../poll-edit/poll-edit.component.scss} | 0
.../poll-edit/poll-edit.component.spec.ts | 24 +
.../poll-edit/poll-edit.component.ts | 41 +
.../profile/profile.component.html | 59 +
.../profile/profile.component.scss} | 0
.../profile/profile.component.spec.ts | 24 +
.../profile/profile.component.ts | 24 +
.../stepper/stepper.component.html | 1 +
.../stepper/stepper.component.scss} | 0
.../stepper/stepper.component.spec.ts | 24 +
.../stepper/stepper.component.ts | 51 +
.../old-stuff}/config/DateUtilities.ts | 0
.../old-stuff}/config/PollConfig.ts | 6 +-
.../old-stuff}/config/PollUtilities.ts | 0
.../old-stuff}/config/defaultConfigs.ts | 0
.../date-value-accessor.metadata.json | 0
.../date-value-accessor.ts | 0
.../date-value-accessor/index.metadata.json | 0
.../custom-lib/date-value-accessor/index.ts | 0
.../date-value-accessor/module.metadata.json | 0
.../custom-lib/date-value-accessor/module.ts | 0
.../old-stuff/old-stuff-routing.module.ts | 46 +
.../features/old-stuff/old-stuff.module.ts | 74 +
.../pages/admin/admin.component.html | 0
.../pages/admin/admin.component.scss | 0
.../pages/admin/admin.component.spec.ts | 0
.../old-stuff}/pages/admin/admin.component.ts | 4 +-
.../pages/answers/answers.component.html | 4 +-
.../pages/answers/answers.component.scss} | 0
.../pages/answers/answers.component.spec.ts | 0
.../pages/answers/answers.component.ts | 2 +-
.../create-or-retrieve.component.html | 2 +-
.../create-or-retrieve.component.scss | 0
.../create-or-retrieve.component.spec.ts | 0
.../create-or-retrieve.component.ts | 2 +-
.../pages/dates/dates.component.html | 4 +-
.../pages/dates/dates.component.scss | 0
.../pages/dates/dates.component.spec.ts | 0
.../old-stuff}/pages/dates/dates.component.ts | 2 +-
.../end-confirmation.component.html | 0
.../end-confirmation.component.scss | 0
.../end-confirmation.component.spec.ts | 0
.../end-confirmation.component.ts | 2 +-
.../example/base-page/base.component.html | 2 +-
.../example/base-page/base.component.scss} | 0
.../example/base-page/base.component.spec.ts | 0
.../pages/example/base-page/base.component.ts | 0
.../pages/example/kind/kind.component.html | 10 +-
.../pages/example/kind/kind.component.scss | 0
.../pages/example/kind/kind.component.spec.ts | 0
.../pages/example/kind/kind.component.ts | 2 +-
.../example/pictures/pictures.component.html | 2 +-
.../example/pictures/pictures.component.scss} | 0
.../pictures/pictures.component.spec.ts | 0
.../example/pictures/pictures.component.ts | 2 +-
.../old-stuff}/pages/home/home.component.html | 6 +-
.../old-stuff/pages/home/home.component.scss} | 0
.../pages/home/home.component.spec.ts | 24 +
.../old-stuff}/pages/home/home.component.ts | 2 +-
.../pages/password/password.component.html | 0
.../pages/password/password.component.scss | 0
.../pages/password/password.component.spec.ts | 0
.../pages/password/password.component.ts | 2 +-
.../poll-display/poll-display.component.html | 0
.../poll-display/poll-display.component.scss | 1 +
.../poll-display.component.spec.ts | 0
.../poll-display/poll-display.component.ts | 8 +-
.../poll-graphic/poll-graphic.component.html | 0
.../poll-graphic/poll-graphic.component.scss | 0
.../poll-graphic.component.spec.ts | 0
.../poll-graphic/poll-graphic.component.ts | 4 +-
.../pages/resume/resume.component.html | 10 +-
.../pages/resume/resume.component.scss | 0
.../pages/resume/resume.component.spec.ts | 0
.../pages/resume/resume.component.ts | 0
.../visibility/visibility.component.html | 6 +-
.../visibility/visibility.component.scss | 0
.../visibility/visibility.component.spec.ts | 0
.../pages/visibility/visibility.component.ts | 2 +-
.../choices-list/choices-list.component.html | 0
.../choices-list/choices-list.component.scss} | 0
.../choices-list.component.spec.ts | 0
.../choices-list/choices-list.component.ts | 0
.../comments-list.component.html | 0
.../comments-list.component.scss} | 0
.../comments-list.component.spec.ts | 0
.../comments-list/comments-list.component.ts | 0
.../voting-choice.component.html | 0
.../voting-choice.component.scss | 2 +-
.../voting-choice.component.spec.ts | 4 +-
.../voting-choice/voting-choice.component.ts | 0
.../voting-comment.component.html | 0
.../voting-comment.component.scss | 0
.../voting-comment.component.spec.ts | 0
.../voting-comment.component.ts | 4 +-
.../voting-graph/voting-graph.component.html | 0
.../voting-graph/voting-graph.component.scss | 0
.../voting-graph.component.spec.ts | 0
.../voting-graph/voting-graph.component.ts | 2 +-
.../voting-navigation.component.html | 8 +-
.../voting-navigation.component.scss | 0
.../voting-navigation.component.spec.ts | 0
.../voting-navigation.component.ts | 0
.../voting-summary.component.html | 0
.../voting-summary.component.scss | 2 +-
.../voting-summary.component.spec.ts | 0
.../voting-summary.component.ts | 2 +-
.../pages/voting/voting.component.html | 0
.../pages/voting/voting.component.scss | 0
.../pages/voting/voting.component.spec.ts | 0
.../pages/voting/voting.component.ts | 2 +-
.../old-stuff}/services/config.service.ts | 16 +-
.../services/progression.service.spec.ts | 0
.../ui/copy-text/copy-text.component.html | 8 +-
.../ui/copy-text/copy-text.component.scss | 0
.../ui/copy-text/copy-text.component.spec.ts | 0
.../ui/copy-text/copy-text.component.ts | 12 +-
.../resettable-input.directive.spec.ts | 0
.../directives/resettable-input.directive.ts | 0
.../erasable-input.component.html | 0
.../erasable-input.component.scss | 0
.../erasable-input.component.spec.ts | 0
.../erasable-input.component.ts | 2 +-
.../ui}/two-links/two-links.component.html | 0
.../ui/two-links/two-links.component.scss | 0
.../ui}/two-links/two-links.component.spec.ts | 0
.../ui}/two-links/two-links.component.ts | 0
.../participation-routing.module.ts | 11 +-
.../participation.component.html | 9 +-
.../participation/participation.module.ts | 3 +-
.../participation/poll/poll.component.html | 12 +
.../participation/poll/poll.component.scss | 0
.../participation/poll/poll.component.spec.ts | 24 +
.../participation/poll/poll.component.ts | 34 +
.../poll-administration.module.ts | 8 -
.../poll-display/poll-display.component.scss | 1 -
.../poll-participation.module.ts | 8 -
.../page-not-found.component.html | 9 +
.../page-not-found.component.scss | 0
.../page-not-found.component.spec.ts | 0
.../page-not-found.component.ts | 7 +-
.../poll-page/poll-page.component.html | 1 +
.../poll-page/poll-page.component.scss | 0
.../poll-page/poll-page.component.spec.ts | 24 +
.../poll-page/poll-page.component.ts | 12 +
src/app/shared/shared.module.ts | 46 +-
src/app/ui/debugger/debugger.component.html | 30 -
src/app/ui/debugger/debugger.component.ts | 28 -
.../ui/navigation/navigation.component.html | 44 -
.../ui/navigation/navigation.component.scss | 1 -
src/app/ui/navigation/navigation.component.ts | 30 -
.../theme-selector.component.scss | 4 -
src/assets/css/bootstrap-reboot-4.3.1.css | 346 --
src/assets/i18n/EN.json | 4 +
src/assets/i18n/FR.json | 4 +
src/environments/environment.prod.ts | 50 +
src/environments/environment.ts | 38 +-
src/index.html | 4 -
src/jest.setup.ts | 25 +
src/stories/0-Welcome.stories.ts | 15 -
src/stories/1-Button.stories.ts | 52 -
src/styles.scss | 6 +-
tsconfig.spec.json | 2 +-
yarn.lock | 5348 +++++------------
242 files changed, 3128 insertions(+), 4988 deletions(-)
delete mode 100644 .storybook/main.js
delete mode 100644 .storybook/tsconfig.json
delete mode 100644 .storybook/typings.d.ts
delete mode 100644 backend-api-endpoints-doc.md
create mode 100644 backend-api-endpoints-doc.txt
create mode 100644 src/app/core/components/header/header.component.html
rename src/app/core/components/{navbar/navbar.component.scss => header/header.component.scss} (100%)
rename src/app/core/components/{navbar/navbar.component.spec.ts => header/header.component.spec.ts} (56%)
create mode 100644 src/app/core/components/header/header.component.ts
create mode 100644 src/app/core/components/home/home.component.html
rename src/app/{pages => core/components}/home/home.component.scss (100%)
rename src/app/{pages => core/components}/home/home.component.spec.ts (100%)
create mode 100644 src/app/core/components/home/home.component.ts
create mode 100644 src/app/core/components/login/login.component.html
rename src/app/core/components/{page-not-found/page-not-found.component.scss => login/login.component.scss} (100%)
rename src/app/{ui/debugger/debugger.component.spec.ts => core/components/login/login.component.spec.ts} (54%)
create mode 100644 src/app/core/components/login/login.component.ts
delete mode 100644 src/app/core/components/navbar/navbar.component.html
delete mode 100644 src/app/core/components/navbar/navbar.component.ts
delete mode 100644 src/app/core/components/page-not-found/page-not-found.component.html
rename src/app/{ui => core/components}/selectors/language-selector/language-selector.component.html (100%)
rename src/app/{ui => core/components}/selectors/language-selector/language-selector.component.scss (100%)
rename src/app/{ui => core/components}/selectors/language-selector/language-selector.component.spec.ts (100%)
rename src/app/{ui => core/components}/selectors/language-selector/language-selector.component.ts (89%)
rename src/app/{ui => core/components}/selectors/theme-selector/theme-selector.component.html (100%)
rename src/app/{pages/answers/answers.component.scss => core/components/selectors/theme-selector/theme-selector.component.scss} (100%)
rename src/app/{ui => core/components}/selectors/theme-selector/theme-selector.component.spec.ts (100%)
rename src/app/{ui => core/components}/selectors/theme-selector/theme-selector.component.ts (82%)
create mode 100644 src/app/core/components/sibebar/navigation/navigation.component.html
rename src/app/{pages/example/base-page/base.component.scss => core/components/sibebar/navigation/navigation.component.scss} (100%)
rename src/app/{ui => core/components/sibebar}/navigation/navigation.component.spec.ts (100%)
create mode 100644 src/app/core/components/sibebar/navigation/navigation.component.ts
create mode 100644 src/app/core/enums/message-severity.enum.ts
delete mode 100644 src/app/core/enums/poll-type.enum.ts
create mode 100644 src/app/core/enums/user-role.enum.ts
create mode 100644 src/app/core/enums/workflow-step.enum.ts
create mode 100644 src/app/core/services/message-displayer.service.spec.ts
create mode 100644 src/app/core/services/message-displayer.service.ts
create mode 100644 src/app/core/services/mocking.service.spec.ts
create mode 100644 src/app/core/services/mocking.service.ts
create mode 100644 src/app/core/services/workflow.service.spec.ts
create mode 100644 src/app/core/services/workflow.service.ts
create mode 100644 src/app/features/administration/edit-configuration/edit-configuration.component.html
rename src/app/{pages/example/pictures/pictures.component.scss => features/administration/edit-configuration/edit-configuration.component.scss} (100%)
create mode 100644 src/app/features/administration/edit-configuration/edit-configuration.component.spec.ts
create mode 100644 src/app/features/administration/edit-configuration/edit-configuration.component.ts
create mode 100644 src/app/features/administration/edit-description/edit-description.component.html
rename src/app/{pages/voting/choices-list/choices-list.component.scss => features/administration/edit-description/edit-description.component.scss} (100%)
create mode 100644 src/app/features/administration/edit-description/edit-description.component.spec.ts
create mode 100644 src/app/features/administration/edit-description/edit-description.component.ts
create mode 100644 src/app/features/administration/edit-options/edit-options.component.html
rename src/app/{pages/voting/comments-list/comments-list.component.scss => features/administration/edit-options/edit-options.component.scss} (100%)
create mode 100644 src/app/features/administration/edit-options/edit-options.component.spec.ts
create mode 100644 src/app/features/administration/edit-options/edit-options.component.ts
create mode 100644 src/app/features/administration/poll-edit/poll-edit.component.html
rename src/app/{pages/voting/voting-comment/voting-comment.component.scss => features/administration/poll-edit/poll-edit.component.scss} (100%)
create mode 100644 src/app/features/administration/poll-edit/poll-edit.component.spec.ts
create mode 100644 src/app/features/administration/poll-edit/poll-edit.component.ts
create mode 100644 src/app/features/administration/profile/profile.component.html
rename src/app/{pages/voting/voting-graph/voting-graph.component.scss => features/administration/profile/profile.component.scss} (100%)
create mode 100644 src/app/features/administration/profile/profile.component.spec.ts
create mode 100644 src/app/features/administration/profile/profile.component.ts
create mode 100644 src/app/features/administration/stepper/stepper.component.html
rename src/app/{pages/voting/voting-navigation/voting-navigation.component.scss => features/administration/stepper/stepper.component.scss} (100%)
create mode 100644 src/app/features/administration/stepper/stepper.component.spec.ts
create mode 100644 src/app/features/administration/stepper/stepper.component.ts
rename src/app/{ => features/old-stuff}/config/DateUtilities.ts (100%)
rename src/app/{ => features/old-stuff}/config/PollConfig.ts (94%)
rename src/app/{ => features/old-stuff}/config/PollUtilities.ts (100%)
rename src/app/{ => features/old-stuff}/config/defaultConfigs.ts (100%)
rename src/app/{ => features/old-stuff}/custom-lib/date-value-accessor/date-value-accessor.metadata.json (100%)
rename src/app/{ => features/old-stuff}/custom-lib/date-value-accessor/date-value-accessor.ts (100%)
rename src/app/{ => features/old-stuff}/custom-lib/date-value-accessor/index.metadata.json (100%)
rename src/app/{ => features/old-stuff}/custom-lib/date-value-accessor/index.ts (100%)
rename src/app/{ => features/old-stuff}/custom-lib/date-value-accessor/module.metadata.json (100%)
rename src/app/{ => features/old-stuff}/custom-lib/date-value-accessor/module.ts (100%)
create mode 100644 src/app/features/old-stuff/old-stuff-routing.module.ts
create mode 100644 src/app/features/old-stuff/old-stuff.module.ts
rename src/app/{ => features/old-stuff}/pages/admin/admin.component.html (100%)
rename src/app/{ => features/old-stuff}/pages/admin/admin.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/admin/admin.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/admin/admin.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/answers/answers.component.html (96%)
rename src/app/{pages/voting/voting.component.scss => features/old-stuff/pages/answers/answers.component.scss} (100%)
rename src/app/{ => features/old-stuff}/pages/answers/answers.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/answers/answers.component.ts (99%)
rename src/app/{ => features/old-stuff}/pages/create-or-retrieve/create-or-retrieve.component.html (95%)
rename src/app/{ => features/old-stuff}/pages/create-or-retrieve/create-or-retrieve.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/create-or-retrieve/create-or-retrieve.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/create-or-retrieve/create-or-retrieve.component.ts (97%)
rename src/app/{ => features/old-stuff}/pages/dates/dates.component.html (97%)
rename src/app/{ => features/old-stuff}/pages/dates/dates.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/dates/dates.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/dates/dates.component.ts (99%)
rename src/app/{ => features/old-stuff}/pages/end-confirmation/end-confirmation.component.html (100%)
rename src/app/{ => features/old-stuff}/pages/end-confirmation/end-confirmation.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/end-confirmation/end-confirmation.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/end-confirmation/end-confirmation.component.ts (97%)
rename src/app/{ => features/old-stuff}/pages/example/base-page/base.component.html (57%)
rename src/app/{services/progression.service.spec.ts => features/old-stuff/pages/example/base-page/base.component.scss} (100%)
rename src/app/{ => features/old-stuff}/pages/example/base-page/base.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/example/base-page/base.component.ts (100%)
rename src/app/{ => features/old-stuff}/pages/example/kind/kind.component.html (94%)
rename src/app/{ => features/old-stuff}/pages/example/kind/kind.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/example/kind/kind.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/example/kind/kind.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/example/pictures/pictures.component.html (51%)
rename src/app/{ui/copy-text/copy-text.component.scss => features/old-stuff/pages/example/pictures/pictures.component.scss} (100%)
rename src/app/{ => features/old-stuff}/pages/example/pictures/pictures.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/example/pictures/pictures.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/home/home.component.html (88%)
rename src/app/{ui/debugger/debugger.component.scss => features/old-stuff/pages/home/home.component.scss} (100%)
create mode 100644 src/app/features/old-stuff/pages/home/home.component.spec.ts
rename src/app/{ => features/old-stuff}/pages/home/home.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/password/password.component.html (100%)
rename src/app/{ => features/old-stuff}/pages/password/password.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/password/password.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/password/password.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/poll/poll-display/poll-display.component.html (100%)
create mode 100644 src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.scss
rename src/app/{ => features/old-stuff}/pages/poll/poll-display/poll-display.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/poll/poll-display/poll-display.component.ts (89%)
rename src/app/{ => features/old-stuff}/pages/poll/poll-graphic/poll-graphic.component.html (100%)
rename src/app/{ => features/old-stuff}/pages/poll/poll-graphic/poll-graphic.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/poll/poll-graphic/poll-graphic.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/poll/poll-graphic/poll-graphic.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/resume/resume.component.html (87%)
rename src/app/{ => features/old-stuff}/pages/resume/resume.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/resume/resume.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/resume/resume.component.ts (100%)
rename src/app/{ => features/old-stuff}/pages/visibility/visibility.component.html (96%)
rename src/app/{ => features/old-stuff}/pages/visibility/visibility.component.scss (100%)
rename src/app/{ => features/old-stuff}/pages/visibility/visibility.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/visibility/visibility.component.ts (93%)
rename src/app/{ => features/old-stuff}/pages/voting/choices-list/choices-list.component.html (100%)
rename src/app/{ui/erasable-input/erasable-input.component.scss => features/old-stuff/pages/voting/choices-list/choices-list.component.scss} (100%)
rename src/app/{ => features/old-stuff}/pages/voting/choices-list/choices-list.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/choices-list/choices-list.component.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/comments-list/comments-list.component.html (100%)
rename src/app/{ui/navigation/two-links/two-links.component.scss => features/old-stuff/pages/voting/comments-list/comments-list.component.scss} (100%)
rename src/app/{ => features/old-stuff}/pages/voting/comments-list/comments-list.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/comments-list/comments-list.component.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-choice/voting-choice.component.html (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-choice/voting-choice.component.scss (99%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-choice/voting-choice.component.spec.ts (95%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-choice/voting-choice.component.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-comment/voting-comment.component.html (100%)
create mode 100644 src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.scss
rename src/app/{ => features/old-stuff}/pages/voting/voting-comment/voting-comment.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-comment/voting-comment.component.ts (78%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-graph/voting-graph.component.html (100%)
create mode 100644 src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.scss
rename src/app/{ => features/old-stuff}/pages/voting/voting-graph/voting-graph.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-graph/voting-graph.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-navigation/voting-navigation.component.html (84%)
create mode 100644 src/app/features/old-stuff/pages/voting/voting-navigation/voting-navigation.component.scss
rename src/app/{ => features/old-stuff}/pages/voting/voting-navigation/voting-navigation.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-navigation/voting-navigation.component.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-summary/voting-summary.component.html (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-summary/voting-summary.component.scss (84%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-summary/voting-summary.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting-summary/voting-summary.component.ts (95%)
rename src/app/{ => features/old-stuff}/pages/voting/voting.component.html (100%)
create mode 100644 src/app/features/old-stuff/pages/voting/voting.component.scss
rename src/app/{ => features/old-stuff}/pages/voting/voting.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/pages/voting/voting.component.ts (92%)
rename src/app/{ => features/old-stuff}/services/config.service.ts (98%)
create mode 100644 src/app/features/old-stuff/services/progression.service.spec.ts
rename src/app/{ => features/old-stuff}/ui/copy-text/copy-text.component.html (51%)
create mode 100644 src/app/features/old-stuff/ui/copy-text/copy-text.component.scss
rename src/app/{ => features/old-stuff}/ui/copy-text/copy-text.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/ui/copy-text/copy-text.component.ts (55%)
rename src/app/{ => features/old-stuff}/ui/directives/resettable-input.directive.spec.ts (100%)
rename src/app/{ => features/old-stuff}/ui/directives/resettable-input.directive.ts (100%)
rename src/app/{ => features/old-stuff}/ui/erasable-input/erasable-input.component.html (100%)
create mode 100644 src/app/features/old-stuff/ui/erasable-input/erasable-input.component.scss
rename src/app/{ => features/old-stuff}/ui/erasable-input/erasable-input.component.spec.ts (100%)
rename src/app/{ => features/old-stuff}/ui/erasable-input/erasable-input.component.ts (95%)
rename src/app/{ui/navigation => features/old-stuff/ui}/two-links/two-links.component.html (100%)
create mode 100644 src/app/features/old-stuff/ui/two-links/two-links.component.scss
rename src/app/{ui/navigation => features/old-stuff/ui}/two-links/two-links.component.spec.ts (100%)
rename src/app/{ui/navigation => features/old-stuff/ui}/two-links/two-links.component.ts (100%)
create mode 100644 src/app/features/participation/poll/poll.component.html
create mode 100644 src/app/features/participation/poll/poll.component.scss
create mode 100644 src/app/features/participation/poll/poll.component.spec.ts
create mode 100644 src/app/features/participation/poll/poll.component.ts
delete mode 100644 src/app/pages/poll/poll-administration/poll-administration.module.ts
delete mode 100644 src/app/pages/poll/poll-display/poll-display.component.scss
delete mode 100644 src/app/pages/poll/poll-participation/poll-participation.module.ts
create mode 100644 src/app/shared/components/page-not-found/page-not-found.component.html
create mode 100644 src/app/shared/components/page-not-found/page-not-found.component.scss
rename src/app/{core => shared}/components/page-not-found/page-not-found.component.spec.ts (100%)
rename src/app/{core => shared}/components/page-not-found/page-not-found.component.ts (50%)
create mode 100644 src/app/shared/components/poll-page/poll-page.component.html
create mode 100644 src/app/shared/components/poll-page/poll-page.component.scss
create mode 100644 src/app/shared/components/poll-page/poll-page.component.spec.ts
create mode 100644 src/app/shared/components/poll-page/poll-page.component.ts
delete mode 100644 src/app/ui/debugger/debugger.component.html
delete mode 100644 src/app/ui/debugger/debugger.component.ts
delete mode 100644 src/app/ui/navigation/navigation.component.html
delete mode 100644 src/app/ui/navigation/navigation.component.scss
delete mode 100644 src/app/ui/navigation/navigation.component.ts
delete mode 100644 src/app/ui/selectors/theme-selector/theme-selector.component.scss
delete mode 100644 src/assets/css/bootstrap-reboot-4.3.1.css
delete mode 100644 src/stories/0-Welcome.stories.ts
delete mode 100644 src/stories/1-Button.stories.ts
diff --git a/.storybook/main.js b/.storybook/main.js
deleted file mode 100644
index ec3f5802..00000000
--- a/.storybook/main.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = {
- stories: ['../src/**/*.stories.ts'],
- addons: ['@storybook/addon-actions', '@storybook/addon-links', '@storybook/addon-notes'],
-};
diff --git a/.storybook/tsconfig.json b/.storybook/tsconfig.json
deleted file mode 100644
index 0bcfc758..00000000
--- a/.storybook/tsconfig.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extends": "../tsconfig.app.json",
- "compilerOptions": {
- "types": [
- "node"
- ]
- },
- "exclude": [
- "../src/test.ts",
- "../src/**/*.spec.ts",
- "../projects/**/*.spec.ts"
- ],
- "include": [
- "../src/**/*",
- "../projects/**/*"
- ],
- "files": [
- "./typings.d.ts"
- ]
-}
diff --git a/.storybook/typings.d.ts b/.storybook/typings.d.ts
deleted file mode 100644
index f73d61b3..00000000
--- a/.storybook/typings.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module '*.md' {
- const content: string;
- export default content;
-}
diff --git a/README.md b/README.md
index ed18df21..bc181dae 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,26 @@
## LIBRARIES USED
-| lib name | usage |
-| ------------------------------------------------------------------ | -------------------------------------- |
-| [axios](https://github.com/axios/axios) | http client |
-| [bulma](https://bulma.io/) | CSS framework |
-| [chart.js](https://www.chartjs.org/) | Generate beautiful graphs |
-| [compodoc](https://compodoc.app/) | Generate technic documentation |
-| [date-fns](https://date-fns.org) | manipulate dates |
-| ESlint, Prettier, Lint-staged | Format & lint code |
-| [font-awesome](https://github.com/FortAwesome/angular-fontawesome) | Icons collection |
-| [fullcalendar](https://fullcalendar.io/docs/initialize-es6) | Manage & display calendars |
-| [husky](https://www.npmjs.com/package/husky) | Hook actions on commit |
-| [jest](https://jestjs.io/) | test engine |
-| [locale-enum](https://www.npmjs.com/package/locale-enum) | enum of all locales |
-| [ngx-clipboard](https://www.npmjs.com/package/ngx-clipboard) | Handle clipboard |
-| [ngx-markdown](https://www.npmjs.com/package/ngx-markdown) | markdown parser |
-| [ngx-toaster](https://www.npmjs.com/package/ngx-toaster) | toast notifications |
-| [ngx-webstorage](https://www.npmjs.com/package/ngx-webstorage) | handle localStorage & webStorage |
-| [primeNG](https://www.primefaces.org/primeng/) | UI components collection |
-| [quill](https://www.npmjs.com/package/quill) | powerful rich text editor. WYSIWYG. |
-| [storybook](https://storybook.js.org/) | StyleGuide UI |
-| [ts-mockito](https://www.npmjs.com/package/ts-mockito) | Mocks for testing. |
-| [uuid](https://www.npmjs.com/package/uuid) | handle client-side generation of uuids |
+| status | lib name | usage |
+| ------- | -------------------------------------------------------------- | -------------------------------------- |
+| | [axios](https://github.com/axios/axios) | http client |
+| | [bulma](https://bulma.io/) | CSS framework |
+| | [chart.js](https://www.chartjs.org/) | Display graphs. (Commes with MomentJS) |
+| | [compodoc](https://compodoc.app/) | Generate technic documentation |
+| | [date-fns](https://date-fns.org) | manipulate dates |
+| | ESlint, Prettier, Lint-staged | Format & lint code |
+| | [fork-awesome](https://forkaweso.me) | Icons collection |
+| | [fullcalendar](https://fullcalendar.io/docs/initialize-es6) | Manage & display calendars |
+| | [husky](https://www.npmjs.com/package/husky) | Hook actions on commit |
+| | [jest](https://jestjs.io/) | test engine |
+| removed | [locale-enum](https://www.npmjs.com/package/locale-enum) | enum of all locales |
+| | [ngx-clipboard](https://www.npmjs.com/package/ngx-clipboard) | Handle clipboard |
+| | [ngx-markdown](https://www.npmjs.com/package/ngx-markdown) | markdown parser |
+| | [ngx-webstorage](https://www.npmjs.com/package/ngx-webstorage) | handle localStorage & webStorage |
+| | [primeNG](https://www.primefaces.org/primeng/) | UI components collection |
+| | [quill](https://www.npmjs.com/package/quill) | powerful rich text editor. WYSIWYG. |
+| removed | [storybook](https://storybook.js.org/) | StyleGuide UI |
+| | [ts-mockito](https://www.npmjs.com/package/ts-mockito) | Mocks for testing. |
+| | [uuid](https://www.npmjs.com/package/uuid) | handle client-side generation of uuids |
---
diff --git a/angular.json b/angular.json
index f9451678..57ef5b25 100644
--- a/angular.json
+++ b/angular.json
@@ -22,7 +22,6 @@
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
- "aot": true,
"assets": ["src/favicon.ico", "src/assets"],
"styles": [
"node_modules/fork-awesome/css/fork-awesome.min.css",
@@ -50,9 +49,11 @@
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
+ "aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
+ "crossOrigin": "anonymous",
"budgets": [
{
"type": "initial",
diff --git a/backend-api-endpoints-doc.md b/backend-api-endpoints-doc.md
deleted file mode 100644
index 63e99b0c..00000000
--- a/backend-api-endpoints-doc.md
+++ /dev/null
@@ -1,44 +0,0 @@
-// TODO: File to be deleted : just temporary documentation of backend API endpoints
-
-/**
- *
- * -------------------------- -------- -------- ------ ------------------------------------------------
- Name Method Scheme Host Path
- -------------------------- -------- -------- ------ ------------------------------------------------
- _twig_error_test ANY ANY ANY /_error/{code}.{_format}
- api_get_poll_comment GET ANY ANY /poll/{id}/comments
- api_new_comment POST ANY ANY /poll/{id}/comment
- api_poll_comments_delete DELETE ANY ANY /poll/{id}/comments
- api_send_user_polls GET ANY ANY /send-polls-to-user/{email}
- homepageget_default GET ANY ANY /
- api_get_all_polls GET ANY ANY /poll/
- api_get_poll GET ANY ANY /poll/{id}
- api_update_poll PUT ANY ANY /poll/{id}/{token}
- api_new_poll POST ANY ANY /poll/
- api_test-mail-poll GET ANY ANY /poll/mail/test-mail-poll/{emailChoice}
- api_poll_delete DELETE ANY ANY /poll/{id}
- api_clean_expired_polls GET ANY ANY /poll/clean-polls
- api_check_slug_is_unique GET ANY ANY /poll/admin/{token}
- api_new_vote_stack POST ANY ANY /poll/{id}/vote
- api_update_vote_stack PATCH ANY ANY /vote-stack/{id}/token/{modifierToken}
- api_poll_votes_delete DELETE ANY ANY /poll/{id}/votes/{accessToken}
- app.swagger GET ANY ANY /doc.json
- -------------------------- -------- -------- ------ ------------------------------------------------
- */
-
-/**
- * WANTED CHANGES (seraf)
- * -------------------------- -------- -------- ------ ------------------------------------------------
- Name Method Scheme Host Path
- -------------------------- -------- -------- ------ ------------------------------------------------
- api_get_poll_comment GET ANY ANY /poll/{id}/comment
- api_delete_poll_comments DELETE ANY ANY /poll/{id}/comment
- api_user_polls_send_by_email GET ANY ANY /user/{email}/polls/send-by-email
- api_get_user_polls GET ANY ANY /user/{email}/polls
- api_get_poll_slug GET ANY ANY /poll/slug/{id}/{token}
- api_clean_expired_polls GET ANY ANY /admin/clean-polls/{token}
-
- api_test-mail-poll GET ANY ANY /poll/mail/test-mail-poll/{emailChoice}
- api_update_vote_stack PATCH ANY ANY /vote-stack/{id}/token/{modifierToken}
- -------------------------- -------- -------- ------ ------------------------------------------------
- */
diff --git a/backend-api-endpoints-doc.txt b/backend-api-endpoints-doc.txt
new file mode 100644
index 00000000..a134d711
--- /dev/null
+++ b/backend-api-endpoints-doc.txt
@@ -0,0 +1,46 @@
+// TODO: File to be deleted : just temporary documentation of backend API endpoints
+
+/**
+ *
+ * -------------------------- -------- -------- ------ ------------------------------------------------
+ Name Method Scheme Host Path
+ -------------------------- -------- -------- ------ ------------------------------------------------
+_twig_error_test ANY ANY ANY /_error/{code}.{_format}
+admin_homepage_get_default GET ANY ANY /admin/
+admin_homepage_clean_expired_polls GET ANY ANY /admin/polls/clean/{token}
+api_get_poll_comment GET ANY ANY /polls/{id}/comments
+api_new_comment POST ANY ANY /polls/{id}/comments
+api_poll_comments_delete DELETE ANY ANY /polls/{id}/comments
+user_homepageget_default GET ANY ANY /users/
+user_homepage_polls_send_by_email GET ANY ANY /users/{email}/polls/send-by-email
+api_get_all_polls GET ANY ANY /polls/
+api_get_poll GET ANY ANY /polls/{id}
+api_update_poll PUT ANY ANY /polls/{id}/{token}
+api_new_poll POST ANY ANY /polls/
+api_test-mail-polls GET ANY ANY /polls/mail/test-mail-polls/{emailChoice}
+api_poll_delete DELETE ANY ANY /polls/{id}
+api_check_slug_is_unique GET ANY ANY /polls/slugs/{slug}
+api_get_admin_config GET ANY ANY /polls/admin/{token}
+api_new_vote_stack POST ANY ANY /polls/{id}/votes
+api_update_vote_stack PATCH ANY ANY /votes-stacks/{id}/token/{modifierToken}
+api_poll_votes_delete DELETE ANY ANY /polls/{id}/votes/{accessToken}
+app.swagger GET ANY ANY /api/doc.json
+ -------------------------- -------- -------- ------ ------------------------------------------------
+ */
+
+/**
+ * WANTED CHANGES (seraf)
+ * -------------------------- -------- -------- ------ ------------------------------------------------
+ Name Method Scheme Host Path
+ -------------------------- -------- -------- ------ ------------------------------------------------
+ api_get_poll_comment GET ANY ANY /polls/{id}/comment
+ api_delete_poll_comments DELETE ANY ANY /polls/{id}/comment
+ api_user_polls_send_by_email GET ANY ANY /users/{email}/polls/send-by-email
+ api_get_user_polls GET ANY ANY /users/{email}/polls
+ api_get_poll_slug GET ANY ANY /polls/slug/{id}/{token}
+ api_clean_expired_polls GET ANY ANY /admin/clean-polls/{token}
+
+ api_test-mail-polls GET ANY ANY /polls/mail/test-mail-polls/{emailChoice}
+ api_update_vote_stack PATCH ANY ANY /votes-stack/{id}/token/{modifierToken}
+ -------------------------- -------- -------- ------ ------------------------------------------------
+ */
diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json
index 39b800f7..ce6ba906 100644
--- a/e2e/tsconfig.json
+++ b/e2e/tsconfig.json
@@ -1,13 +1,9 @@
{
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "outDir": "../out-tsc/e2e",
- "module": "commonjs",
- "target": "es5",
- "types": [
- "jasmine",
- "jasminewd2",
- "node"
- ]
- }
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/e2e",
+ "module": "commonjs",
+ "target": "es5",
+ "types": ["jasmine", "jasminewd2", "node"]
+ }
}
diff --git a/package.json b/package.json
index f71a5d2c..0a841ba6 100644
--- a/package.json
+++ b/package.json
@@ -5,11 +5,8 @@
"scripts": {
"ng": "ng",
"start": "ng serve",
- "compodoc": "compodoc -p tsconfig.json",
- "build": "ng build --crossOrigin=anonymous --prod",
- "package": "cat dist/framadate/*.js > dist/framadate/framadate-scripts-bundled.js && ls -l dist/framadate",
- "bld:pkg": "npm run build && npm run package",
- "build:demo": "ng build --crossOrigin=anonymous --extractCss=true --progress=true --prod && npm run package",
+ "build": "ng build --prod --progress=true",
+ "build-prod-stats": "ng build --prod --stats-json",
"test": "jest",
"test:watch": "jest --watch",
"test:ci": "jest --runInBand",
@@ -18,13 +15,12 @@
"format:check": "prettier --list-different \"src/{app,environments,assets}/**/*{.ts,.js,.json,.css,.scss}\"",
"format:all": "prettier --write \"src/**/*.{js,jsx,ts,tsx,md,html,css,scss}\"",
"trans": "ng xi18n --output-path=src/locale --i18n-locale=fr",
- "storybook": "start-storybook -p 6006",
- "build-storybook": "build-storybook"
+ "compodoc": "compodoc -p tsconfig.app.json"
},
"private": false,
"dependencies": {
"@angular/animations": "^9.1.1",
- "@angular/cdk": "^9.2.0",
+ "@angular/cdk": "^9.2.2",
"@angular/common": "^9.0.7",
"@angular/compiler": "^9.0.7",
"@angular/core": "^9.0.7",
@@ -39,13 +35,11 @@
"angular-date-value-accessor": "^1.0.2",
"axios": "^0.19.2",
"bulma": "^0.8.2",
- "chart.js": "^2.8.0",
+ "chart.js": "^2.9.3",
"date-fns": "^2.12.0",
"fork-awesome": "^1.1.7",
- "locale-enum": "^1.1.0",
"ngx-clipboard": "^13.0.0",
"ngx-markdown": "^9.0.0",
- "ngx-toaster": "^1.0.1",
"ngx-webstorage": "^5.0.0",
"primeicons": "^2.0.0",
"primeng": "^9.0.6",
@@ -53,7 +47,7 @@
"rxjs": "^6.5.5",
"rxjs-compat": "^6.5.5",
"tslib": "^1.11.1",
- "uuid": "^7.0.3",
+ "uuid": "^8.0.0",
"zone.js": "^0.10.3"
},
"devDependencies": {
@@ -64,25 +58,19 @@
"@angular/language-service": "^9.0.7",
"@babel/core": "^7.9.0",
"@babel/preset-env": "^7.9.5",
- "@storybook/addon-actions": "^5.3.18",
- "@storybook/addon-links": "^5.3.18",
- "@storybook/addon-notes": "^5.3.18",
- "@storybook/addons": "^5.3.18",
- "@storybook/angular": "^5.3.18",
+ "@babel/preset-typescript": "^7.9.0",
+ "@compodoc/compodoc": "^1.1.11",
"@types/jest": "^25.2.1",
"@types/node": "^13.13.2",
"@types/uuid": "^7.0.2",
"@typescript-eslint/eslint-plugin": "^2.27.0",
"@typescript-eslint/parser": "^2.27.0",
"babel-jest": "^25.4.0",
- "babel-loader": "^8.1.0",
- "babel-polyfill": "^6.26.0",
- "compodoc": "^0.0.41",
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.3",
"husky": "^4.2.5",
- "jest": "^25.4.0",
+ "jest": "^25.5.1",
"jest-environment-jsdom-sixteen": "^1.0.3",
"jest-preset-angular": "^8.1.3",
"lint-staged": "^10.1.7",
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 917948fe..93f2c91c 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,45 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
-import { PageNotFoundComponent } from './core/components/page-not-found/page-not-found.component';
-import { AdminComponent } from './pages/admin/admin.component';
-import { AnswersComponent } from './pages/answers/answers.component';
-import { CreateOrRetrieveComponent } from './pages/create-or-retrieve/create-or-retrieve.component';
-import { DatesComponent } from './pages/dates/dates.component';
-import { EndConfirmationComponent } from './pages/end-confirmation/end-confirmation.component';
-import { BaseComponent } from './pages/example/base-page/base.component';
-import { KindComponent } from './pages/example/kind/kind.component';
-import { PicturesComponent } from './pages/example/pictures/pictures.component';
-import { HomeComponent } from './pages/home/home.component';
-import { PasswordComponent } from './pages/password/password.component';
-import { PollDisplayComponent } from './pages/poll/poll-display/poll-display.component';
-import { PollGraphicComponent } from './pages/poll/poll-graphic/poll-graphic.component';
-import { ResumeComponent } from './pages/resume/resume.component';
-import { VisibilityComponent } from './pages/visibility/visibility.component';
-import { VotingChoiceComponent } from './pages/voting/voting-choice/voting-choice.component';
-import { VotingComponent } from './pages/voting/voting.component';
+import { HomeComponent } from './core/components/home/home.component';
+import { LoginComponent } from './core/components/login/login.component';
+import { PageNotFoundComponent } from './shared/components/page-not-found/page-not-found.component';
const routes: Routes = [
- { path: '', redirectTo: 'step/creation', pathMatch: 'full' },
- { path: 'admin/:token', component: AdminComponent }, // http://localhost:4200/#/admin/srfdgedsTGETHRYJtujTUjTUkTIUKTK
- { path: 'home', component: HomeComponent },
- { path: 'base', component: BaseComponent },
- { path: 'step/base', component: BaseComponent },
- { path: 'step/creation', component: CreateOrRetrieveComponent },
- { path: 'step/date', component: DatesComponent },
- { path: 'step/kind', component: KindComponent },
- { path: 'step/answers', component: AnswersComponent },
- { path: 'step/admin', component: AdminComponent },
- { path: 'step/pictures', component: PicturesComponent },
- { path: 'step/visibility', component: VisibilityComponent },
- { path: 'step/resume', component: ResumeComponent },
- { path: 'step/end', component: EndConfirmationComponent },
- { path: 'graphic/:poll', component: PollGraphicComponent },
- { path: 'vote/poll/id/:poll', component: PollDisplayComponent },
- { path: 'vote/poll/slug/:pollSlug', component: PollDisplayComponent },
- { path: 'votingchoice', component: VotingChoiceComponent },
- { path: 'voting', component: VotingComponent },
- { path: 'step/password', component: PasswordComponent },
+ { path: '', component: HomeComponent },
+ { path: 'login', component: LoginComponent },
{
path: 'administration',
loadChildren: () =>
@@ -49,11 +17,19 @@ const routes: Routes = [
path: 'participation',
loadChildren: () => import('./features/participation/participation.module').then((m) => m.ParticipationModule),
},
+ {
+ path: 'oldstuff',
+ loadChildren: () => import('./features/old-stuff/old-stuff.module').then((m) => m.OldStuffModule),
+ },
{ path: '**', component: PageNotFoundComponent },
];
@NgModule({
- imports: [RouterModule.forRoot(routes, { useHash: true, anchorScrolling: 'enabled' })],
+ imports: [
+ RouterModule.forRoot(routes, {
+ // enableTracing: true, // <-- debugging purposes only
+ }),
+ ],
exports: [RouterModule],
})
export class AppRoutingModule {}
diff --git a/src/app/app.component.html b/src/app/app.component.html
index 30173eef..5fe0ccca 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,42 +1,15 @@
+
+
+
+
+
+
diff --git a/src/app/app.component.scss b/src/app/app.component.scss
index 603699f0..e69de29b 100644
--- a/src/app/app.component.scss
+++ b/src/app/app.component.scss
@@ -1,13 +0,0 @@
-@charset "UTF-8";
-
-.big-header {
- padding: 0.5rem;
-}
-
-i {
- display: block;
-}
-
-.language-selector {
- width: auto;
-}
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index be38d5b2..8cd65e6f 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,14 +1,12 @@
-import { DOCUMENT } from '@angular/common';
-import { Component, Inject, OnInit, OnDestroy } from '@angular/core';
+import { Component, OnDestroy, OnInit } from '@angular/core';
import { Title } from '@angular/platform-browser';
-import { NavigationStart, Router } from '@angular/router';
-import { Observable, Subscription } from 'rxjs';
-import { filter } from 'rxjs/operators';
+import { Subscription } from 'rxjs';
import { environment } from '../environments/environment';
import { Theme } from './core/enums/theme.enum';
+import { UserRole } from './core/enums/user-role.enum';
+import { MockingService } from './core/services/mocking.service';
import { ThemeService } from './core/services/theme.service';
-import { ConfigService } from './services/config.service';
@Component({
selector: 'app-root',
@@ -18,24 +16,19 @@ import { ConfigService } from './services/config.service';
export class AppComponent implements OnInit, OnDestroy {
public appTitle: string = environment.appTitle;
public themeClass: string;
- public isDebugMode = false;
+ public isSidebarOpened = false;
private themeSubscription: Subscription;
- public step: string;
-
constructor(
private titleService: Title,
private themeService: ThemeService,
- public config: ConfigService,
- @Inject(DOCUMENT) private document,
- private router: Router
+ private mockingService: MockingService
) {}
ngOnInit(): void {
if (!environment.production) {
- this.isDebugMode = true;
- this.appTitle += ' | DEV';
- console.info(' ######### framadate | DEV ######### we are NOT in production env, filling with mock values');
+ this.appTitle += ' [DEV]';
+ this.mockingService.loadUser(UserRole.REGISTERED);
}
this.titleService.setTitle(this.appTitle);
this.themeSubscription = this.themeService.theme.subscribe((theme: Theme) => {
@@ -50,8 +43,6 @@ export class AppComponent implements OnInit, OnDestroy {
this.themeClass = 'theme-light-watermelon';
}
});
-
- this.detectCurrentTabOnRouteChange();
}
ngOnDestroy(): void {
@@ -60,30 +51,7 @@ export class AppComponent implements OnInit, OnDestroy {
}
}
- public detectCurrentTabOnRouteChange(): void {
- this.router.events
- .pipe(filter((event) => event instanceof NavigationStart))
- .subscribe((event: NavigationStart) => {
- this.scrollGoToTop();
- this.updateCurrentTab(event);
- // only if there is a poll ID
- this.config.fetchPollFromRoute(event);
- });
- }
-
- public scrollGoToTop(): void {
- this.document.documentElement.scrollTop = 0;
- }
-
- public updateCurrentTab(event): void {
- if (event.url) {
- const tab: string[] = event.url.split('/');
- this.step = tab && tab[2] ? tab[2] : 'home';
- }
- }
-
- public toggleMenu(): void {
- // TODO: move this logic elsewhere, probably in Navbar component
- this.config.menuVisible = !this.config.menuVisible;
+ public toggleSidebar(status: boolean): void {
+ this.isSidebarOpened = status === true;
}
}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index af931889..06a910e4 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -15,48 +15,13 @@ import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { ClipboardModule } from 'ngx-clipboard';
import { MarkdownModule } from 'ngx-markdown';
import { NgxWebstorageModule } from 'ngx-webstorage';
-import { ConfirmationService, MessageModule, MessageService } from 'primeng';
-import { ConfirmDialogModule } from 'primeng/confirmdialog';
-import { DialogModule } from 'primeng/dialog';
-import { ToastModule } from 'primeng/toast';
import { environment } from '../environments/environment';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { CoreModule } from './core/core.module';
-import { DateValueAccessorModule } from './custom-lib/date-value-accessor';
-import { AdminComponent } from './pages/admin/admin.component';
-import { AnswersComponent } from './pages/answers/answers.component';
-import { CreateOrRetrieveComponent } from './pages/create-or-retrieve/create-or-retrieve.component';
-import { DatesComponent } from './pages/dates/dates.component';
-import { EndConfirmationComponent } from './pages/end-confirmation/end-confirmation.component';
-import { BaseComponent } from './pages/example/base-page/base.component';
-import { KindComponent } from './pages/example/kind/kind.component';
-import { PicturesComponent } from './pages/example/pictures/pictures.component';
-import { HomeComponent } from './pages/home/home.component';
-import { PasswordComponent } from './pages/password/password.component';
-import { PollDisplayComponent } from './pages/poll/poll-display/poll-display.component';
-import { PollGraphicComponent } from './pages/poll/poll-graphic/poll-graphic.component';
-import { ResumeComponent } from './pages/resume/resume.component';
-import { VisibilityComponent } from './pages/visibility/visibility.component';
-import { ChoicesListComponent } from './pages/voting/choices-list/choices-list.component';
-import { CommentsListComponent } from './pages/voting/comments-list/comments-list.component';
-import { VotingChoiceComponent } from './pages/voting/voting-choice/voting-choice.component';
-import { VotingCommentComponent } from './pages/voting/voting-comment/voting-comment.component';
-import { VotingGraphComponent } from './pages/voting/voting-graph/voting-graph.component';
-import { VotingNavigationComponent } from './pages/voting/voting-navigation/voting-navigation.component';
-import { VotingSummaryComponent } from './pages/voting/voting-summary/voting-summary.component';
-import { VotingComponent } from './pages/voting/voting.component';
-import { ConfigService } from './services/config.service';
+import { OldStuffModule } from './features/old-stuff/old-stuff.module';
import { SharedModule } from './shared/shared.module';
-import { CopyTextComponent } from './ui/copy-text/copy-text.component';
-import { DebuggerComponent } from './ui/debugger/debugger.component';
-import { ResettableInputDirective } from './ui/directives/resettable-input.directive';
-import { ErasableInputComponent } from './ui/erasable-input/erasable-input.component';
-import { NavigationComponent } from './ui/navigation/navigation.component';
-import { TwoLinksComponent } from './ui/navigation/two-links/two-links.component';
-import { LanguageSelectorComponent } from './ui/selectors/language-selector/language-selector.component';
-import { ThemeSelectorComponent } from './ui/selectors/theme-selector/theme-selector.component';
export class MyMissingTranslationHandler implements MissingTranslationHandler {
public handle(params: MissingTranslationHandlerParams): string {
@@ -69,56 +34,19 @@ export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
}
@NgModule({
- declarations: [
- AdminComponent,
- AnswersComponent,
- AppComponent,
- BaseComponent,
- ChoicesListComponent,
- CommentsListComponent,
- CopyTextComponent,
- CreateOrRetrieveComponent,
- DatesComponent,
- DebuggerComponent,
- EndConfirmationComponent,
- ErasableInputComponent,
- HomeComponent,
- KindComponent,
- NavigationComponent,
- PasswordComponent,
- PicturesComponent,
- PollDisplayComponent,
- PollGraphicComponent,
- ResettableInputDirective,
- ResumeComponent,
- ThemeSelectorComponent,
- TwoLinksComponent,
- VisibilityComponent,
- VotingChoiceComponent,
- VotingGraphComponent,
- VotingComponent,
- VotingCommentComponent,
- VotingSummaryComponent,
- VotingNavigationComponent,
- LanguageSelectorComponent,
- ],
+ declarations: [AppComponent],
imports: [
AppRoutingModule,
BrowserAnimationsModule,
BrowserModule,
ClipboardModule,
CommonModule,
- ConfirmDialogModule,
CoreModule,
- DateValueAccessorModule,
- DialogModule,
FormsModule,
HttpClientModule,
MarkdownModule.forRoot(),
- MessageModule,
NgxWebstorageModule.forRoot({ prefix: environment.localStorage.key }),
SharedModule,
- ToastModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
@@ -131,8 +59,9 @@ export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
},
useDefaultLang: false,
}),
+ OldStuffModule,
],
- providers: [ConfigService, ConfirmationService, MessageService, Title, TranslateService],
+ providers: [Title, TranslateService],
bootstrap: [AppComponent],
})
export class AppModule {}
diff --git a/src/app/core/components/footer/footer.component.html b/src/app/core/components/footer/footer.component.html
index 28c0d7d7..46e0b269 100644
--- a/src/app/core/components/footer/footer.component.html
+++ b/src/app/core/components/footer/footer.component.html
@@ -1 +1,9 @@
-footer works!
+
diff --git a/src/app/core/components/header/header.component.html b/src/app/core/components/header/header.component.html
new file mode 100644
index 00000000..3a3e0b95
--- /dev/null
+++ b/src/app/core/components/header/header.component.html
@@ -0,0 +1,74 @@
+
diff --git a/src/app/core/components/navbar/navbar.component.scss b/src/app/core/components/header/header.component.scss
similarity index 100%
rename from src/app/core/components/navbar/navbar.component.scss
rename to src/app/core/components/header/header.component.scss
diff --git a/src/app/core/components/navbar/navbar.component.spec.ts b/src/app/core/components/header/header.component.spec.ts
similarity index 56%
rename from src/app/core/components/navbar/navbar.component.spec.ts
rename to src/app/core/components/header/header.component.spec.ts
index e5f5deac..9f373039 100644
--- a/src/app/core/components/navbar/navbar.component.spec.ts
+++ b/src/app/core/components/header/header.component.spec.ts
@@ -1,19 +1,19 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { NavbarComponent } from './navbar.component';
+import { HeaderComponent } from './header.component';
-describe('NavbarComponent', () => {
- let component: NavbarComponent;
- let fixture: ComponentFixture;
+describe('HeaderComponent', () => {
+ let component: HeaderComponent;
+ let fixture: ComponentFixture;
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [NavbarComponent],
+ declarations: [HeaderComponent],
}).compileComponents();
}));
beforeEach(() => {
- fixture = TestBed.createComponent(NavbarComponent);
+ fixture = TestBed.createComponent(HeaderComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
diff --git a/src/app/core/components/header/header.component.ts b/src/app/core/components/header/header.component.ts
new file mode 100644
index 00000000..245b95a0
--- /dev/null
+++ b/src/app/core/components/header/header.component.ts
@@ -0,0 +1,16 @@
+import { Component, EventEmitter, Output, Input } from '@angular/core';
+
+@Component({
+ selector: 'app-header',
+ templateUrl: './header.component.html',
+ styleUrls: ['./header.component.scss'],
+})
+export class HeaderComponent {
+ @Input() isSidebarOpened: boolean;
+ @Output() toggleSidebarEE = new EventEmitter();
+
+ public toggleSidebarOpening(): void {
+ this.isSidebarOpened = !this.isSidebarOpened;
+ this.toggleSidebarEE.emit(this.isSidebarOpened);
+ }
+}
diff --git a/src/app/core/components/home/home.component.html b/src/app/core/components/home/home.component.html
new file mode 100644
index 00000000..514e3526
--- /dev/null
+++ b/src/app/core/components/home/home.component.html
@@ -0,0 +1,19 @@
+
+
+
+
+ Bienvenue sur Framasondage
+
+
+ Se consulter simplement pour s’organiser collectivement.
+
+
+
+
+
diff --git a/src/app/pages/home/home.component.scss b/src/app/core/components/home/home.component.scss
similarity index 100%
rename from src/app/pages/home/home.component.scss
rename to src/app/core/components/home/home.component.scss
diff --git a/src/app/pages/home/home.component.spec.ts b/src/app/core/components/home/home.component.spec.ts
similarity index 100%
rename from src/app/pages/home/home.component.spec.ts
rename to src/app/core/components/home/home.component.spec.ts
diff --git a/src/app/core/components/home/home.component.ts b/src/app/core/components/home/home.component.ts
new file mode 100644
index 00000000..4aeb12a4
--- /dev/null
+++ b/src/app/core/components/home/home.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-home',
+ templateUrl: './home.component.html',
+ styleUrls: ['./home.component.scss'],
+})
+export class HomeComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit(): void {}
+}
diff --git a/src/app/core/components/login/login.component.html b/src/app/core/components/login/login.component.html
new file mode 100644
index 00000000..147cfc4f
--- /dev/null
+++ b/src/app/core/components/login/login.component.html
@@ -0,0 +1 @@
+login works!
diff --git a/src/app/core/components/page-not-found/page-not-found.component.scss b/src/app/core/components/login/login.component.scss
similarity index 100%
rename from src/app/core/components/page-not-found/page-not-found.component.scss
rename to src/app/core/components/login/login.component.scss
diff --git a/src/app/ui/debugger/debugger.component.spec.ts b/src/app/core/components/login/login.component.spec.ts
similarity index 54%
rename from src/app/ui/debugger/debugger.component.spec.ts
rename to src/app/core/components/login/login.component.spec.ts
index 16036bd7..486bf2bc 100644
--- a/src/app/ui/debugger/debugger.component.spec.ts
+++ b/src/app/core/components/login/login.component.spec.ts
@@ -1,19 +1,19 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { DebuggerComponent } from './debugger.component';
+import { LoginComponent } from './login.component';
-describe('DebuggerComponent', () => {
- let component: DebuggerComponent;
- let fixture: ComponentFixture;
+describe('LoginComponent', () => {
+ let component: LoginComponent;
+ let fixture: ComponentFixture;
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [DebuggerComponent],
+ declarations: [LoginComponent],
}).compileComponents();
}));
beforeEach(() => {
- fixture = TestBed.createComponent(DebuggerComponent);
+ fixture = TestBed.createComponent(LoginComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
diff --git a/src/app/core/components/login/login.component.ts b/src/app/core/components/login/login.component.ts
new file mode 100644
index 00000000..a062274e
--- /dev/null
+++ b/src/app/core/components/login/login.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-login',
+ templateUrl: './login.component.html',
+ styleUrls: ['./login.component.scss'],
+})
+export class LoginComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit(): void {}
+}
diff --git a/src/app/core/components/logo/logo.component.html b/src/app/core/components/logo/logo.component.html
index ee9476c9..f8ebc8a3 100644
--- a/src/app/core/components/logo/logo.component.html
+++ b/src/app/core/components/logo/logo.component.html
@@ -1,5 +1,5 @@
diff --git a/src/app/pages/voting/voting.component.scss b/src/app/features/old-stuff/pages/answers/answers.component.scss
similarity index 100%
rename from src/app/pages/voting/voting.component.scss
rename to src/app/features/old-stuff/pages/answers/answers.component.scss
diff --git a/src/app/pages/answers/answers.component.spec.ts b/src/app/features/old-stuff/pages/answers/answers.component.spec.ts
similarity index 100%
rename from src/app/pages/answers/answers.component.spec.ts
rename to src/app/features/old-stuff/pages/answers/answers.component.spec.ts
diff --git a/src/app/pages/answers/answers.component.ts b/src/app/features/old-stuff/pages/answers/answers.component.ts
similarity index 99%
rename from src/app/pages/answers/answers.component.ts
rename to src/app/features/old-stuff/pages/answers/answers.component.ts
index 8b939f75..b24acece 100644
--- a/src/app/pages/answers/answers.component.ts
+++ b/src/app/features/old-stuff/pages/answers/answers.component.ts
@@ -22,7 +22,7 @@ export class AnswersComponent extends BaseComponent implements OnInit, AfterView
}
// todo, manage validation of each page in a common way
- ngOnInit() {}
+ ngOnInit(): void {}
ngOnChanges() {
this.checkValidAnswers();
diff --git a/src/app/pages/create-or-retrieve/create-or-retrieve.component.html b/src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.html
similarity index 95%
rename from src/app/pages/create-or-retrieve/create-or-retrieve.component.html
rename to src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.html
index 4207bcfc..aa57eb70 100644
--- a/src/app/pages/create-or-retrieve/create-or-retrieve.component.html
+++ b/src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.html
@@ -9,7 +9,7 @@
{{ 'config.description' | translate }}
-
+
{{ 'config.letsgo' | translate }}
diff --git a/src/app/pages/create-or-retrieve/create-or-retrieve.component.scss b/src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.scss
similarity index 100%
rename from src/app/pages/create-or-retrieve/create-or-retrieve.component.scss
rename to src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.scss
diff --git a/src/app/pages/create-or-retrieve/create-or-retrieve.component.spec.ts b/src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.spec.ts
similarity index 100%
rename from src/app/pages/create-or-retrieve/create-or-retrieve.component.spec.ts
rename to src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.spec.ts
diff --git a/src/app/pages/create-or-retrieve/create-or-retrieve.component.ts b/src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.ts
similarity index 97%
rename from src/app/pages/create-or-retrieve/create-or-retrieve.component.ts
rename to src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.ts
index d1b2ba53..50c3a1a4 100644
--- a/src/app/pages/create-or-retrieve/create-or-retrieve.component.ts
+++ b/src/app/features/old-stuff/pages/create-or-retrieve/create-or-retrieve.component.ts
@@ -14,7 +14,7 @@ export class CreateOrRetrieveComponent extends BaseComponent implements OnInit {
super(config);
}
- ngOnInit() {
+ ngOnInit(): void {
// if (!environment.production) {
// this.findMyPollsByEmail('tktest@tktest.com')
// }
diff --git a/src/app/pages/dates/dates.component.html b/src/app/features/old-stuff/pages/dates/dates.component.html
similarity index 97%
rename from src/app/pages/dates/dates.component.html
rename to src/app/features/old-stuff/pages/dates/dates.component.html
index e970bdf9..4c1253e2 100644
--- a/src/app/pages/dates/dates.component.html
+++ b/src/app/features/old-stuff/pages/dates/dates.component.html
@@ -160,9 +160,9 @@
-
+
C'est parfait!
-
+
Retour
diff --git a/src/app/pages/dates/dates.component.scss b/src/app/features/old-stuff/pages/dates/dates.component.scss
similarity index 100%
rename from src/app/pages/dates/dates.component.scss
rename to src/app/features/old-stuff/pages/dates/dates.component.scss
diff --git a/src/app/pages/dates/dates.component.spec.ts b/src/app/features/old-stuff/pages/dates/dates.component.spec.ts
similarity index 100%
rename from src/app/pages/dates/dates.component.spec.ts
rename to src/app/features/old-stuff/pages/dates/dates.component.spec.ts
diff --git a/src/app/pages/dates/dates.component.ts b/src/app/features/old-stuff/pages/dates/dates.component.ts
similarity index 99%
rename from src/app/pages/dates/dates.component.ts
rename to src/app/features/old-stuff/pages/dates/dates.component.ts
index 4a888794..68fb628f 100644
--- a/src/app/pages/dates/dates.component.ts
+++ b/src/app/features/old-stuff/pages/dates/dates.component.ts
@@ -38,7 +38,7 @@ export class DatesComponent extends BaseComponent implements OnInit {
/**
* set the interval options
*/
- ngOnInit() {
+ ngOnInit(): void {
const dateCurrent = new Date();
const dateJson = dateCurrent.toISOString();
this.startDateInterval = dateJson.substring(0, 10);
diff --git a/src/app/pages/end-confirmation/end-confirmation.component.html b/src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.html
similarity index 100%
rename from src/app/pages/end-confirmation/end-confirmation.component.html
rename to src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.html
diff --git a/src/app/pages/end-confirmation/end-confirmation.component.scss b/src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.scss
similarity index 100%
rename from src/app/pages/end-confirmation/end-confirmation.component.scss
rename to src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.scss
diff --git a/src/app/pages/end-confirmation/end-confirmation.component.spec.ts b/src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.spec.ts
similarity index 100%
rename from src/app/pages/end-confirmation/end-confirmation.component.spec.ts
rename to src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.spec.ts
diff --git a/src/app/pages/end-confirmation/end-confirmation.component.ts b/src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.ts
similarity index 97%
rename from src/app/pages/end-confirmation/end-confirmation.component.ts
rename to src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.ts
index 370cb6a4..c42fa16a 100644
--- a/src/app/pages/end-confirmation/end-confirmation.component.ts
+++ b/src/app/features/old-stuff/pages/end-confirmation/end-confirmation.component.ts
@@ -17,7 +17,7 @@ export class EndConfirmationComponent extends BaseComponent implements OnInit {
this.mailToRecieve = this.config.myEmail;
}
- ngOnInit() {}
+ ngOnInit(): void {}
copyLink(str: any) {
this.messageService.add({
diff --git a/src/app/pages/example/base-page/base.component.html b/src/app/features/old-stuff/pages/example/base-page/base.component.html
similarity index 57%
rename from src/app/pages/example/base-page/base.component.html
rename to src/app/features/old-stuff/pages/example/base-page/base.component.html
index 1571aa12..86001560 100644
--- a/src/app/pages/example/base-page/base.component.html
+++ b/src/app/features/old-stuff/pages/example/base-page/base.component.html
@@ -1,4 +1,4 @@
Ce composant est celui de base pour les pages
-
+
{{ 'config.perfect' | translate }}
diff --git a/src/app/services/progression.service.spec.ts b/src/app/features/old-stuff/pages/example/base-page/base.component.scss
similarity index 100%
rename from src/app/services/progression.service.spec.ts
rename to src/app/features/old-stuff/pages/example/base-page/base.component.scss
diff --git a/src/app/pages/example/base-page/base.component.spec.ts b/src/app/features/old-stuff/pages/example/base-page/base.component.spec.ts
similarity index 100%
rename from src/app/pages/example/base-page/base.component.spec.ts
rename to src/app/features/old-stuff/pages/example/base-page/base.component.spec.ts
diff --git a/src/app/pages/example/base-page/base.component.ts b/src/app/features/old-stuff/pages/example/base-page/base.component.ts
similarity index 100%
rename from src/app/pages/example/base-page/base.component.ts
rename to src/app/features/old-stuff/pages/example/base-page/base.component.ts
diff --git a/src/app/pages/example/kind/kind.component.html b/src/app/features/old-stuff/pages/example/kind/kind.component.html
similarity index 94%
rename from src/app/pages/example/kind/kind.component.html
rename to src/app/features/old-stuff/pages/example/kind/kind.component.html
index 35bb97e1..a1dec45c 100644
--- a/src/app/pages/example/kind/kind.component.html
+++ b/src/app/features/old-stuff/pages/example/kind/kind.component.html
@@ -3,7 +3,7 @@
cette étape est en cours de développement.
S'inspirer de la page de Home pour réaliser d'autres pages
-C'est parfait!
+C'est parfait!
Atoms
@@ -17,14 +17,14 @@
Links
-
+
C'est parti !
@@ -47,7 +47,7 @@
-
+
primary - outline - default
@@ -192,7 +192,7 @@
Align right
-
+
Continuer
-
+
Continuer
-
+
Retour
diff --git a/src/app/ui/debugger/debugger.component.scss b/src/app/features/old-stuff/pages/home/home.component.scss
similarity index 100%
rename from src/app/ui/debugger/debugger.component.scss
rename to src/app/features/old-stuff/pages/home/home.component.scss
diff --git a/src/app/features/old-stuff/pages/home/home.component.spec.ts b/src/app/features/old-stuff/pages/home/home.component.spec.ts
new file mode 100644
index 00000000..85666544
--- /dev/null
+++ b/src/app/features/old-stuff/pages/home/home.component.spec.ts
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { HomeComponent } from './home.component';
+
+describe('HomeComponent', () => {
+ let component: HomeComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [HomeComponent],
+ }).compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(HomeComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/pages/home/home.component.ts b/src/app/features/old-stuff/pages/home/home.component.ts
similarity index 95%
rename from src/app/pages/home/home.component.ts
rename to src/app/features/old-stuff/pages/home/home.component.ts
index 49dd54fc..6cb3d1fc 100644
--- a/src/app/pages/home/home.component.ts
+++ b/src/app/features/old-stuff/pages/home/home.component.ts
@@ -13,5 +13,5 @@ export class HomeComponent extends BaseComponent implements OnInit {
super(config);
}
- ngOnInit() {}
+ ngOnInit(): void {}
}
diff --git a/src/app/pages/password/password.component.html b/src/app/features/old-stuff/pages/password/password.component.html
similarity index 100%
rename from src/app/pages/password/password.component.html
rename to src/app/features/old-stuff/pages/password/password.component.html
diff --git a/src/app/pages/password/password.component.scss b/src/app/features/old-stuff/pages/password/password.component.scss
similarity index 100%
rename from src/app/pages/password/password.component.scss
rename to src/app/features/old-stuff/pages/password/password.component.scss
diff --git a/src/app/pages/password/password.component.spec.ts b/src/app/features/old-stuff/pages/password/password.component.spec.ts
similarity index 100%
rename from src/app/pages/password/password.component.spec.ts
rename to src/app/features/old-stuff/pages/password/password.component.spec.ts
diff --git a/src/app/pages/password/password.component.ts b/src/app/features/old-stuff/pages/password/password.component.ts
similarity index 95%
rename from src/app/pages/password/password.component.ts
rename to src/app/features/old-stuff/pages/password/password.component.ts
index ccc1bc58..b8bca6e8 100644
--- a/src/app/pages/password/password.component.ts
+++ b/src/app/features/old-stuff/pages/password/password.component.ts
@@ -12,5 +12,5 @@ export class PasswordComponent extends BaseComponent implements OnInit {
super(config);
}
- ngOnInit() {}
+ ngOnInit(): void {}
}
diff --git a/src/app/pages/poll/poll-display/poll-display.component.html b/src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.html
similarity index 100%
rename from src/app/pages/poll/poll-display/poll-display.component.html
rename to src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.html
diff --git a/src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.scss b/src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.scss
new file mode 100644
index 00000000..5ab410dc
--- /dev/null
+++ b/src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.scss
@@ -0,0 +1 @@
+@import '../../../../../../styles/variables';
diff --git a/src/app/pages/poll/poll-display/poll-display.component.spec.ts b/src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.spec.ts
similarity index 100%
rename from src/app/pages/poll/poll-display/poll-display.component.spec.ts
rename to src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.spec.ts
diff --git a/src/app/pages/poll/poll-display/poll-display.component.ts b/src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.ts
similarity index 89%
rename from src/app/pages/poll/poll-display/poll-display.component.ts
rename to src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.ts
index 683b84ef..d78f0337 100644
--- a/src/app/pages/poll/poll-display/poll-display.component.ts
+++ b/src/app/features/old-stuff/pages/poll/poll-display/poll-display.component.ts
@@ -1,10 +1,10 @@
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../../example/base-page/base.component';
import { ConfigService } from '../../../services/config.service';
-import { mockComments } from '../../../mocks/mock-comments';
+import { mockComments } from '../../../../../mocks/mock-comments';
import { ActivatedRoute, Router } from '@angular/router';
-import { environment } from '../../../../environments/environment';
-import { mockPoll3 } from '../../../mocks/mock-poll3';
+import { environment } from '../../../../../../environments/environment';
+import { mockPoll3 } from '../../../../../mocks/mock-poll3';
@Component({
selector: 'app-poll-display',
@@ -26,7 +26,7 @@ export class PollDisplayComponent extends BaseComponent implements OnInit {
});
}
- ngOnInit() {}
+ ngOnInit(): void {}
// fetch poll with its ID or slug.
fetchPoll() {
diff --git a/src/app/pages/poll/poll-graphic/poll-graphic.component.html b/src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.html
similarity index 100%
rename from src/app/pages/poll/poll-graphic/poll-graphic.component.html
rename to src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.html
diff --git a/src/app/pages/poll/poll-graphic/poll-graphic.component.scss b/src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.scss
similarity index 100%
rename from src/app/pages/poll/poll-graphic/poll-graphic.component.scss
rename to src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.scss
diff --git a/src/app/pages/poll/poll-graphic/poll-graphic.component.spec.ts b/src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.spec.ts
similarity index 100%
rename from src/app/pages/poll/poll-graphic/poll-graphic.component.spec.ts
rename to src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.spec.ts
diff --git a/src/app/pages/poll/poll-graphic/poll-graphic.component.ts b/src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.ts
similarity index 95%
rename from src/app/pages/poll/poll-graphic/poll-graphic.component.ts
rename to src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.ts
index 01b2c5df..a68cefcb 100644
--- a/src/app/pages/poll/poll-graphic/poll-graphic.component.ts
+++ b/src/app/features/old-stuff/pages/poll/poll-graphic/poll-graphic.component.ts
@@ -1,9 +1,9 @@
import { Component, Inject, OnInit } from '@angular/core';
import { Chart } from 'chart.js';
import { DOCUMENT } from '@angular/common';
-import { mockGraphConfig } from '../../../mocks/mock-graph';
+import { mockGraphConfig } from '../../../../../mocks/mock-graph';
import { ConfigService } from '../../../services/config.service';
-import { mockPoll3 } from '../../../mocks/mock-poll3';
+import { mockPoll3 } from '../../../../../mocks/mock-poll3';
@Component({
selector: 'app-poll-graphic',
diff --git a/src/app/pages/resume/resume.component.html b/src/app/features/old-stuff/pages/resume/resume.component.html
similarity index 87%
rename from src/app/pages/resume/resume.component.html
rename to src/app/features/old-stuff/pages/resume/resume.component.html
index 5a9f2025..6188de00 100644
--- a/src/app/pages/resume/resume.component.html
+++ b/src/app/features/old-stuff/pages/resume/resume.component.html
@@ -1,6 +1,4 @@
-
- Récapitulatif
-
+Aperçu
{{ config.title }}
@@ -57,15 +55,15 @@
-
+
C'est parfait!
diff --git a/src/app/pages/resume/resume.component.scss b/src/app/features/old-stuff/pages/resume/resume.component.scss
similarity index 100%
rename from src/app/pages/resume/resume.component.scss
rename to src/app/features/old-stuff/pages/resume/resume.component.scss
diff --git a/src/app/pages/resume/resume.component.spec.ts b/src/app/features/old-stuff/pages/resume/resume.component.spec.ts
similarity index 100%
rename from src/app/pages/resume/resume.component.spec.ts
rename to src/app/features/old-stuff/pages/resume/resume.component.spec.ts
diff --git a/src/app/pages/resume/resume.component.ts b/src/app/features/old-stuff/pages/resume/resume.component.ts
similarity index 100%
rename from src/app/pages/resume/resume.component.ts
rename to src/app/features/old-stuff/pages/resume/resume.component.ts
diff --git a/src/app/pages/visibility/visibility.component.html b/src/app/features/old-stuff/pages/visibility/visibility.component.html
similarity index 96%
rename from src/app/pages/visibility/visibility.component.html
rename to src/app/features/old-stuff/pages/visibility/visibility.component.html
index b374e68b..b59e98b1 100644
--- a/src/app/pages/visibility/visibility.component.html
+++ b/src/app/features/old-stuff/pages/visibility/visibility.component.html
@@ -102,8 +102,8 @@
{{ 'visibility.access_instructions' | translate }}
@@ -159,7 +159,7 @@
diff --git a/src/app/pages/visibility/visibility.component.scss b/src/app/features/old-stuff/pages/visibility/visibility.component.scss
similarity index 100%
rename from src/app/pages/visibility/visibility.component.scss
rename to src/app/features/old-stuff/pages/visibility/visibility.component.scss
diff --git a/src/app/pages/visibility/visibility.component.spec.ts b/src/app/features/old-stuff/pages/visibility/visibility.component.spec.ts
similarity index 100%
rename from src/app/pages/visibility/visibility.component.spec.ts
rename to src/app/features/old-stuff/pages/visibility/visibility.component.spec.ts
diff --git a/src/app/pages/visibility/visibility.component.ts b/src/app/features/old-stuff/pages/visibility/visibility.component.ts
similarity index 93%
rename from src/app/pages/visibility/visibility.component.ts
rename to src/app/features/old-stuff/pages/visibility/visibility.component.ts
index a1d1859c..600be9df 100644
--- a/src/app/pages/visibility/visibility.component.ts
+++ b/src/app/features/old-stuff/pages/visibility/visibility.component.ts
@@ -1,7 +1,7 @@
import { Location } from '@angular/common';
import { Component, OnInit } from '@angular/core';
-import { environment } from '../../../environments/environment';
+import { environment } from '../../../../../environments/environment';
import { PollUtilities } from '../../config/PollUtilities';
import { ConfigService } from '../../services/config.service';
import { BaseComponent } from '../example/base-page/base.component';
diff --git a/src/app/pages/voting/choices-list/choices-list.component.html b/src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.html
similarity index 100%
rename from src/app/pages/voting/choices-list/choices-list.component.html
rename to src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.html
diff --git a/src/app/ui/erasable-input/erasable-input.component.scss b/src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.scss
similarity index 100%
rename from src/app/ui/erasable-input/erasable-input.component.scss
rename to src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.scss
diff --git a/src/app/pages/voting/choices-list/choices-list.component.spec.ts b/src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.spec.ts
similarity index 100%
rename from src/app/pages/voting/choices-list/choices-list.component.spec.ts
rename to src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.spec.ts
diff --git a/src/app/pages/voting/choices-list/choices-list.component.ts b/src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.ts
similarity index 100%
rename from src/app/pages/voting/choices-list/choices-list.component.ts
rename to src/app/features/old-stuff/pages/voting/choices-list/choices-list.component.ts
diff --git a/src/app/pages/voting/comments-list/comments-list.component.html b/src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.html
similarity index 100%
rename from src/app/pages/voting/comments-list/comments-list.component.html
rename to src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.html
diff --git a/src/app/ui/navigation/two-links/two-links.component.scss b/src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.scss
similarity index 100%
rename from src/app/ui/navigation/two-links/two-links.component.scss
rename to src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.scss
diff --git a/src/app/pages/voting/comments-list/comments-list.component.spec.ts b/src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.spec.ts
similarity index 100%
rename from src/app/pages/voting/comments-list/comments-list.component.spec.ts
rename to src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.spec.ts
diff --git a/src/app/pages/voting/comments-list/comments-list.component.ts b/src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.ts
similarity index 100%
rename from src/app/pages/voting/comments-list/comments-list.component.ts
rename to src/app/features/old-stuff/pages/voting/comments-list/comments-list.component.ts
diff --git a/src/app/pages/voting/voting-choice/voting-choice.component.html b/src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.html
similarity index 100%
rename from src/app/pages/voting/voting-choice/voting-choice.component.html
rename to src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.html
diff --git a/src/app/pages/voting/voting-choice/voting-choice.component.scss b/src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.scss
similarity index 99%
rename from src/app/pages/voting/voting-choice/voting-choice.component.scss
rename to src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.scss
index 00028e40..4b2f821e 100644
--- a/src/app/pages/voting/voting-choice/voting-choice.component.scss
+++ b/src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.scss
@@ -5,7 +5,7 @@
// -- IMPORTS
// ----------------------------
-@import '../../../../styles/variables';
+@import '../../../../../../styles/variables';
// -- VARIABLES
// ----------------------------
diff --git a/src/app/pages/voting/voting-choice/voting-choice.component.spec.ts b/src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.spec.ts
similarity index 95%
rename from src/app/pages/voting/voting-choice/voting-choice.component.spec.ts
rename to src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.spec.ts
index 0df40949..9370c38a 100644
--- a/src/app/pages/voting/voting-choice/voting-choice.component.spec.ts
+++ b/src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.spec.ts
@@ -7,8 +7,8 @@ import { ConfirmationService, MessageService } from 'primeng';
import { Router } from '@angular/router';
import { ConfigService } from '../../../services/config.service';
import { VotingChoiceComponent } from './voting-choice.component';
-import { mockChoice } from '../../../mocks/choice';
-import { mockPoll3 } from '../../../mocks/mock-poll3';
+import { mockChoice } from '../../../../../mocks/choice';
+import { mockPoll3 } from '../../../../../mocks/mock-poll3';
const routerSpy = jest.fn({ navigateByUrl: jest.fn() });
diff --git a/src/app/pages/voting/voting-choice/voting-choice.component.ts b/src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.ts
similarity index 100%
rename from src/app/pages/voting/voting-choice/voting-choice.component.ts
rename to src/app/features/old-stuff/pages/voting/voting-choice/voting-choice.component.ts
diff --git a/src/app/pages/voting/voting-comment/voting-comment.component.html b/src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.html
similarity index 100%
rename from src/app/pages/voting/voting-comment/voting-comment.component.html
rename to src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.html
diff --git a/src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.scss b/src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.scss
new file mode 100644
index 00000000..e69de29b
diff --git a/src/app/pages/voting/voting-comment/voting-comment.component.spec.ts b/src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.spec.ts
similarity index 100%
rename from src/app/pages/voting/voting-comment/voting-comment.component.spec.ts
rename to src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.spec.ts
diff --git a/src/app/pages/voting/voting-comment/voting-comment.component.ts b/src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.ts
similarity index 78%
rename from src/app/pages/voting/voting-comment/voting-comment.component.ts
rename to src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.ts
index 37691dda..8c3bdc6a 100644
--- a/src/app/pages/voting/voting-comment/voting-comment.component.ts
+++ b/src/app/features/old-stuff/pages/voting/voting-comment/voting-comment.component.ts
@@ -1,5 +1,5 @@
import { Component, Input, OnInit } from '@angular/core';
-import { mockComments } from '../../../mocks/mock-comments';
+import { mockComments } from '../../../../../mocks/mock-comments';
@Component({
selector: 'app-voting-comment',
@@ -11,5 +11,5 @@ export class VotingCommentComponent implements OnInit {
constructor() {}
- ngOnInit() {}
+ ngOnInit(): void {}
}
diff --git a/src/app/pages/voting/voting-graph/voting-graph.component.html b/src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.html
similarity index 100%
rename from src/app/pages/voting/voting-graph/voting-graph.component.html
rename to src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.html
diff --git a/src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.scss b/src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.scss
new file mode 100644
index 00000000..e69de29b
diff --git a/src/app/pages/voting/voting-graph/voting-graph.component.spec.ts b/src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.spec.ts
similarity index 100%
rename from src/app/pages/voting/voting-graph/voting-graph.component.spec.ts
rename to src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.spec.ts
diff --git a/src/app/pages/voting/voting-graph/voting-graph.component.ts b/src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.ts
similarity index 95%
rename from src/app/pages/voting/voting-graph/voting-graph.component.ts
rename to src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.ts
index 92916dee..c0798ef5 100644
--- a/src/app/pages/voting/voting-graph/voting-graph.component.ts
+++ b/src/app/features/old-stuff/pages/voting/voting-graph/voting-graph.component.ts
@@ -12,5 +12,5 @@ export class VotingGraphComponent extends BaseComponent implements OnInit {
super(config);
}
- ngOnInit() {}
+ ngOnInit(): void {}
}
diff --git a/src/app/pages/voting/voting-navigation/voting-navigation.component.html b/src/app/features/old-stuff/pages/voting/voting-navigation/voting-navigation.component.html
similarity index 84%
rename from src/app/pages/voting/voting-navigation/voting-navigation.component.html
rename to src/app/features/old-stuff/pages/voting/voting-navigation/voting-navigation.component.html
index b1612ea1..a0ad3065 100644
--- a/src/app/pages/voting/voting-navigation/voting-navigation.component.html
+++ b/src/app/features/old-stuff/pages/voting/voting-navigation/voting-navigation.component.html
@@ -2,23 +2,23 @@