Commit 4b47beb7 authored by Dennis Willers's avatar Dennis Willers 🏀

Merge branch 'Dennis'

# Conflicts:
#	src/app/app.module.ts
#	src/app/overview/overview.component.ts
parents 47df0850 a1243b75
...@@ -36,7 +36,9 @@ ...@@ -36,7 +36,9 @@
"src/styles.scss" "src/styles.scss"
], ],
"scripts": [ "scripts": [
"node_modules/aos/dist/aos.js" "node_modules/aos/dist/aos.js",
"node_modules/postscribe/dist/postscribe.max.js",
"node_modules/jquery/dist/jquery.slim.js"
] ]
}, },
"configurations": { "configurations": {
......
{ {
"name": "tabooh", "name": "tabooh",
"version": "2.2.1", "version": "2.2.5",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
...@@ -6612,6 +6612,11 @@ ...@@ -6612,6 +6612,11 @@
} }
} }
}, },
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
},
"js-tokens": { "js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
...@@ -9564,6 +9569,19 @@ ...@@ -9564,6 +9569,19 @@
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
"dev": true "dev": true
}, },
"postscribe": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz",
"integrity": "sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU=",
"requires": {
"prescribe": ">=1.1.2"
}
},
"prescribe": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz",
"integrity": "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY="
},
"process": { "process": {
"version": "0.11.10", "version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
......
...@@ -10,10 +10,36 @@ import * as AOS from 'aos'; ...@@ -10,10 +10,36 @@ import * as AOS from 'aos';
export class AppComponent implements OnInit { export class AppComponent implements OnInit {
view = 'desktopView'; view = 'desktopView';
cookieMessage = 'Es gibt leider ein paar Menschen, die das Internet nicht bedienen können. Darum auch hier die nervige Meldung, dass wir Cookies verwenden. Klick es einfach weg.';
cookieDismiss = 'Ok';
cookieLinkText = 'Mehr Informationen über Cookies findest du hier';
ngOnInit(): void { ngOnInit(): void {
AOS.init(); AOS.init();
const width = window.innerWidth; const width = window.innerWidth;
this.setView(width); this.setView(width);
const cc = window as any;
cc.cookieconsent.initialise({
palette: {
popup: {
background: '#5e27b7'
},
button: {
background: '#ffd740',
text: '#000000'
}
},
theme: 'edgeless',
content: {
message: this.cookieMessage,
dismiss: this.cookieDismiss,
link: this.cookieLinkText,
href: './#/impressum'
},
position: 'top',
static: true
});
} }
constructor(private screen: ViewModus){} constructor(private screen: ViewModus){}
......
...@@ -33,6 +33,7 @@ import {MatTreeModule} from '@angular/material/tree'; ...@@ -33,6 +33,7 @@ import {MatTreeModule} from '@angular/material/tree';
import {ViewModus} from './dao/viewModus'; import {ViewModus} from './dao/viewModus';
import {MatBadgeModule} from '@angular/material/badge'; import {MatBadgeModule} from '@angular/material/badge';
import {MAT_DIALOG_DEFAULT_OPTIONS, MatDialogModule} from '@angular/material/dialog'; import {MAT_DIALOG_DEFAULT_OPTIONS, MatDialogModule} from '@angular/material/dialog';
import {ScriptService} from './services/script.service';
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -74,7 +75,8 @@ import {MAT_DIALOG_DEFAULT_OPTIONS, MatDialogModule} from '@angular/material/dia ...@@ -74,7 +75,8 @@ import {MAT_DIALOG_DEFAULT_OPTIONS, MatDialogModule} from '@angular/material/dia
{provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: false}}, {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: false}},
IsAllowedToPlay, IsAllowedToPlay,
SocketDataService, SocketDataService,
ViewModus ViewModus,
ScriptService
], ],
bootstrap: [AppComponent] bootstrap: [AppComponent]
}) })
......
...@@ -8,6 +8,7 @@ import {SocketDataService} from '../dao/socketDataService'; ...@@ -8,6 +8,7 @@ import {SocketDataService} from '../dao/socketDataService';
import {Subject} from 'rxjs'; import {Subject} from 'rxjs';
import {takeUntil} from 'rxjs/operators'; import {takeUntil} from 'rxjs/operators';
import {ViewModus} from '../dao/viewModus'; import {ViewModus} from '../dao/viewModus';
import {HttpErrorResponse} from '@angular/common/http';
@Component({ @Component({
selector: 'app-game', selector: 'app-game',
...@@ -102,10 +103,14 @@ export class GameComponent implements OnInit, OnDestroy { ...@@ -102,10 +103,14 @@ export class GameComponent implements OnInit, OnDestroy {
this.subNewCard = this.socketDataService.getNewCard(this.sessionName) this.subNewCard = this.socketDataService.getNewCard(this.sessionName)
.pipe(takeUntil(this.ngUnsubscribe)) .pipe(takeUntil(this.ngUnsubscribe))
.subscribe(data => { .subscribe(data => {
this.service.getCard({cardID: data}).then(value => { if (data === -1) {
this.fillNewCard(value); console.log('Öffne POP UP');
this.fillGamestatus(); } else {
}); this.service.getCard({cardID: data}).then(value => {
this.fillNewCard(value);
this.fillGamestatus();
});
}
}); });
this.subEndRound = this.socketDataService.getNewRound(this.sessionName) this.subEndRound = this.socketDataService.getNewRound(this.sessionName)
.pipe(takeUntil(this.ngUnsubscribe)) .pipe(takeUntil(this.ngUnsubscribe))
...@@ -232,7 +237,12 @@ export class GameComponent implements OnInit, OnDestroy { ...@@ -232,7 +237,12 @@ export class GameComponent implements OnInit, OnDestroy {
if (status) { if (status) {
this.fillNewCard(value); this.fillNewCard(value);
} }
}).catch(reason => console.log(reason)); }).catch((err: HttpErrorResponse) => {
console.log(err);
if (err.status === 502) {
console.log('Keine neuen Karten mehr');
}
});
} }
fillNewCard(value: any): void { fillNewCard(value: any): void {
......
...@@ -63,7 +63,11 @@ export class GuesserComponent implements OnInit, OnDestroy { ...@@ -63,7 +63,11 @@ export class GuesserComponent implements OnInit, OnDestroy {
this.subNewCard = this.socketDataService.getNewCard(this.sessionName) this.subNewCard = this.socketDataService.getNewCard(this.sessionName)
.pipe(takeUntil(this.ngUnsubscribe)) .pipe(takeUntil(this.ngUnsubscribe))
.subscribe(data => { .subscribe(data => {
this.fillGamestatus(); if (data === -1) {
console.log('Öffne POP UP');
} else {
this.fillGamestatus();
}
}); });
this.subEndRound = this.socketDataService.getEndRound(this.sessionName) this.subEndRound = this.socketDataService.getEndRound(this.sessionName)
.pipe(takeUntil(this.ngUnsubscribe)) .pipe(takeUntil(this.ngUnsubscribe))
......
<div data-aos="zoom-in" data-aos-duration="250"> <div data-aos="zoom-in" data-aos-duration="250">
<!-- POSTSCRIBE TEST: div id="mydiv"></div>
<script type="text/javascript">
postscribe('#mydiv', '<h1>Hello PostScribe</h1>');
</script>
<div id="ad"><h5>Advertisement</h5></div>
<script type="text/javascript">
// jQuery used as an example of delaying until load.
$(function() {
// Build url params and make the ad call
postscribe('#ad', '<script src=https://ssl.adklick.de/multiad.php?id=96435&amp;data=63509aa08f87e924a4a8b7b756f13c29&amp;site=67089&amp;catid=10&amp;auswahl=1&amp;width=468&amp;height=60><\/script>');
});
</script>
<BEGIN ADKLICK MULTIAD CODE><script src="https://ssl.adklick.de/multiad.php?id=96435&amp;data=63509aa08f87e924a4a8b7b756f13c29&amp;site=67089&amp;catid=10&amp;auswahl=1&amp;width=468&amp;height=60" type="text/javascript"></script>
<button mat-raised-button (click)="onClick()">POSTSCIRBE</button-->
<mat-card class="transparent"> <mat-card class="transparent">
<mat-card-title> <mat-card-title>
Impressum Impressum
...@@ -40,6 +55,12 @@ ...@@ -40,6 +55,12 @@
<mat-card-content> <mat-card-content>
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen. Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
</mat-card-content> </mat-card-content>
<mat-card-subtitle>
Haftung für Links
</mat-card-subtitle>
<mat-card-content>
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
</mat-card-content>
<mat-card-subtitle> <mat-card-subtitle>
Urheberrecht Urheberrecht
</mat-card-subtitle> </mat-card-subtitle>
...@@ -53,7 +74,20 @@ ...@@ -53,7 +74,20 @@
<p>Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.<br> <p>Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.<br>
Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.<br> Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.<br>
Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.</p> Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.</p>
</mat-card-content>
<mat-card-subtitle>
Google Analytics
</mat-card-subtitle>
<mat-card-content>
Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. (''Google''). Google Analytics verwendet sog. ''Cookies'', Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglicht. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website (einschließlich Ihrer IP-Adresse) wird an einen Server von Google in den USA übertragen und dort gespeichert. Google wird diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten für die Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird Google diese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich vorgeschrieben oder soweit Dritte diese Daten im Auftrag von Google verarbeiten. Google wird in keinem Fall Ihre IP-Adresse mit anderen Daten der Google in Verbindung bringen. Sie können die Installation der Cookies durch eine entsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können. Durch die Nutzung dieser Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck einverstanden.
</mat-card-content>
<mat-card-subtitle>
AdKlick
</mat-card-subtitle>
<mat-card-content>
Diese Website benutzt AdKlick, einen Webanzeigendienst der Krusenstern Media GmbH (''AdKlick''). AdKlick verwendet sog. ''Cookies'' (Textdateien), die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglicht. AdKlick verwendet auch sog. ''Web Beacons'' (kleine unsichtbare Grafiken) zur Sammlung von Informationen. Durch die Verwendung des Web Beacons können einfache Aktionen wie der Besucherverkehr auf der Webseite aufgezeichnet und gesammelt werden. Die durch den Cookie und/oder Web Beacon erzeugten Informationen über Ihre Benutzung dieser Website (einschließlich Ihrer IP-Adresse) werden an einen Server von AdKlick übertragen und dort gespeichert. AdKlick wird diese Informationen benutzen, um Ihre Nutzung der Website im Hinblick auf die Anzeigen auszuwerten, um Reports über die Websiteaktivitäten und Anzeigen für die Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird AdKlick diese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich vorgeschrieben oder soweit Dritte diese Daten im Auftrag von AdKlick verarbeiten. AdKlick wird in keinem Fall Ihre IP-Adresse mit anderen Daten in Verbindung bringen. Das Speichern von Cookies auf Ihrer Festplatte und die Anzeige von Web Beacons können Sie verhindern, indem Sie in Ihren Browser-Einstellungen ''keine Cookies akzeptieren'' wählen (Im MS Internet-Explorer unter ''Extras > Internetoptionen > Datenschutz > Einstellung''; im Firefox unter ''Extras > Einstellungen > Datenschutz > Cookies''); wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können. Durch die Nutzung dieser Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch AdKlick in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck einverstanden.
</mat-card-content>
<mat-card-content>
Impressum vom <a href="https://www.impressum-generator.de">Impressum Generator</a> der <a href="https://www.kanzlei-hasselbach.de/standorte/bonn/">Kanzlei Hasselbach, Bonn</a> Impressum vom <a href="https://www.impressum-generator.de">Impressum Generator</a> der <a href="https://www.kanzlei-hasselbach.de/standorte/bonn/">Kanzlei Hasselbach, Bonn</a>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
...@@ -63,8 +97,8 @@ ...@@ -63,8 +97,8 @@
<br> <br>
<div data-aos="zoom-out-right" data-aos-duration="250"> <div data-aos="zoom-out-right" data-aos-duration="250">
<mat-card class="transparent"> <mat-card class="transparent">
<mat-card-subtitle>Tabooh-Version: 2.2.3</mat-card-subtitle> <mat-card-subtitle>Tabooh-Version: 2.2.5</mat-card-subtitle>
<mat-card-subtitle>Zuletzt geändert am: 16.04.2021</mat-card-subtitle> <mat-card-subtitle>Zuletzt geändert am: 11.05.2021</mat-card-subtitle>
<mat-card-content> <mat-card-content>
<button mat-raised-button color="primary" (click)="goToStartpage()">Zur Startseite</button> <button mat-raised-button color="primary" (click)="goToStartpage()">Zur Startseite</button>
</mat-card-content> </mat-card-content>
......
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import {Router} from '@angular/router'; import {Router} from '@angular/router';
declare var postscribe: any;
@Component({ @Component({
selector: 'app-impressum', selector: 'app-impressum',
...@@ -7,6 +8,9 @@ import {Router} from '@angular/router'; ...@@ -7,6 +8,9 @@ import {Router} from '@angular/router';
styleUrls: ['./impressum.component.scss'] styleUrls: ['./impressum.component.scss']
}) })
export class ImpressumComponent implements OnInit { export class ImpressumComponent implements OnInit {
/* script = '<!-- BEGIN ADKLICK MULTIAD CODE --><script src="https://ssl.adklick.de/multiad.php?id=96435&amp;data=63509aa08f87e924a4a8b7b756f13c29&amp;site=67089&amp;catid=10&amp;auswahl=1&amp;width=468&amp;height=60" type="text/javascript"></script><!-- END ADKLICK MULTIAD CODE -->';
adUrl = 'https://ssl.adklick.de/multiad.php?id=96435&amp;data=63509aa08f87e924a4a8b7b756f13c29&amp;site=67089&amp;catid=10&amp;auswahl=1&amp;width=468&amp;height=60'; */
constructor(private router: Router) { } constructor(private router: Router) { }
...@@ -16,4 +20,8 @@ export class ImpressumComponent implements OnInit { ...@@ -16,4 +20,8 @@ export class ImpressumComponent implements OnInit {
goToStartpage(): void { goToStartpage(): void {
this.router.navigate(['']); this.router.navigate(['']);
} }
/*onClick(): void {
postscribe('#mydiv', '<script src="' + this.adUrl + '"><\/script>');
}*/
} }
...@@ -9,6 +9,7 @@ import {takeUntil} from 'rxjs/operators'; ...@@ -9,6 +9,7 @@ import {takeUntil} from 'rxjs/operators';
import {ViewModus} from '../dao/viewModus'; import {ViewModus} from '../dao/viewModus';
import {Location} from '@angular/common'; import {Location} from '@angular/common';
import {MatDialog} from '@angular/material/dialog'; import {MatDialog} from '@angular/material/dialog';
import {HttpErrorResponse} from '@angular/common/http';
@Component({ @Component({
selector: 'app-overview', selector: 'app-overview',
...@@ -211,9 +212,10 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -211,9 +212,10 @@ export class OverviewComponent implements OnInit, OnDestroy {
const audio = "../../../assets/sounds/state-change_confirm-up.ogg"; const audio = "../../../assets/sounds/state-change_confirm-up.ogg";
OverviewComponent.playAudio(audio); OverviewComponent.playAudio(audio);
}); });
}).catch(reason => { }).catch((err: HttpErrorResponse) => {
console.log(reason); if (err.status === 502) {
this.openDialog(); console.log('POP UP HIER ÖFFNEN');
}
}); });
} }
......
import {Injectable} from '@angular/core';
import {ScriptStore} from './script.store';
declare var document: any;
@Injectable()
export class ScriptService {
private scripts: any = {};
constructor() {
ScriptStore.forEach((script: any) => {
this.scripts[script.name] = {
loaded: false,
src: script.src
};
});
}
load(...scripts: string[]): Promise<any> {
const promises: any[] = [];
scripts.forEach((script) => promises.push(this.loadScript(script)));
return Promise.all(promises);
}
loadScript(name: string): Promise<any> {
return new Promise((resolve, reject) => {
// resolve if already loaded
if (this.scripts[name].loaded) {
resolve({script: name, loaded: true, status: 'Already Loaded'});
}
else {
// load script
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = this.scripts[name].src;
if (script.readyState) { // IE
script.onreadystatechange = () => {
if (script.readyState === 'loaded' || script.readyState === 'complete') {
script.onreadystatechange = null;
this.scripts[name].loaded = true;
resolve({script: name, loaded: true, status: 'Loaded'});
}
};
} else { // Others
script.onload = () => {
this.scripts[name].loaded = true;
resolve({script: name, loaded: true, status: 'Loaded'});
};
}
script.onerror = (error: any) => resolve({script: name, loaded: false, status: 'Loaded'});
document.getElementsByTagName('head')[0].appendChild(script);
}
});
}
}
interface Scripts {
name: string;
src: string;
}
export const ScriptStore: Scripts[] = [
{name: 'filepicker', src: 'https://api.filestackapi.com/filestack.js'},
{name: 'rangeSlider', src: '../../../assets/js/ion.rangeSlider.min.js'},
{name: 'popDown', src: '../../../assets/js/popDownScript.js'},
{name: 'postscribe', src: '../../../assets/js/test2.js'},
{name: 'ad', src: 'https://ssl.adklick.de/multiad.php?id=96435&amp;data=18f297acd2f62d6ba233567a7e7e0a65&amp;site=67089&amp;catid=10&amp;auswahl=1&amp;width=468&amp;height=60'},
];
console.log('JAva Script Call works');
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
var adkid='2594', adkuser='96435', adksite='0';eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('o a=["\\y\\h\\r\\b\\I\\j\\h\\b\\r","\\k\\f\\q\\m\\s\\f\\K","\\e","\\n\\f\\f\\H\\j\\b","\\b\\1O\\b\\n","","\\1K\\2m\\1G\\2l\\2h","\\g\\b\\z\\k\\d\\n\\b","\\2g\\p\\1g","\\s\\c\\c\\z\\1c\\L\\L\\z\\d\\g\\c\\h\\b\\g\\m\\1i\\d\\r\\H\\k\\j\\n\\H\\1i\\r\\b\\L\\q\\f\\L\\q\\f\\z\\d\\q\\b\\1i\\z\\s\\z\\2e\\g\\b\\I\\b\\g\\b\\g\\e","\\U\\C\\f\\r\\b\\e\\c\\g\\d\\I\\I\\j\\n\\U\\d\\r\\H\\y\\m\\b\\g\\e","\\U\\B\\d\\h\\h\\b\\g\\j\\r\\e","\\U\\m\\j\\c\\b\\e","\\1B\\v\\O\\p\\u\\F\\x\\w\\O\\p\\u\\F\\x\\S\\V\\p\\D\\x\\p\\e\\l\\t\\l\\w\\F\\u\\p\\M\\v\\R\\1b\\v\\D\\G\\J\\e\\l\\t\\l\\w\\F\\u\\p\\M\\v\\R\\J\\x\\v\\M\\J\\G\\e\\l\\t\\l\\w\\v\\D\\e\\l\\u\\D\\1a\\O\\p\\u\\F\\x\\l\\w\\X\\1y\\p\\V\\1g\\1g\\v\\R\\M\\e\\l\\R\\V\\l\\w\\1b\\v\\D\\G\\J\\e\\l\\t\\l\\w\\S\\V\\p\\D\\x\\p\\e\\l\\t\\l\\w\\J\\x\\v\\M\\J\\G\\e\\l\\t\\l\\w\\X\\p\\1y\\e\\l\\d\\B\\f\\y\\c\\1c\\B\\k\\d\\h\\H\\l\\1x\\1B\\L\\v\\O\\p\\u\\F\\x\\1x","\\K\\g\\j\\c\\b","\\f\\h\\n\\k\\j\\n\\H","\\q\\b\\c\\G\\j\\C\\b","\\m\\b\\c\\G\\j\\C\\b","\\w","\\c\\f\\M\\F\\G\\X\\c\\g\\j\\h\\q","\\1G\\w\\z\\d\\c\\s\\e\\L","\\m\\g\\n","\\u\\D\\1a\\O\\p\\u\\F\\x","\\q\\b\\c\\x\\k\\b\\C\\b\\h\\c\\S\\1n\\v\\r","\\d\\B\\f\\y\\c\\1c\\B\\k\\d\\h\\H","\\d\\1d\\d\\j\\k\\J\\b\\j\\q\\s\\c","\\m\\n\\g\\b\\b\\h","\\d\\1d\\d\\j\\k\\1b\\j\\r\\c\\s","\\u\\r\\1a\\k\\j\\n\\H","\\s\\b\\j\\q\\s\\c\\e","\\A\\K\\j\\r\\c\\s\\e","\\A\\k\\b\\I\\c\\e\\t\\A\\c\\f\\z\\e\\t\\A\\c\\f\\f\\k\\B\\d\\g\\e\\t\\A\\m\\c\\d\\c\\y\\m\\e\\t\\A\\C\\b\\h\\y\\B\\d\\g\\e\\t\\A\\g\\b\\m\\j\\2o\\d\\B\\k\\b\\e\\1D\\A\\m\\n\\g\\f\\k\\k\\B\\d\\g\\m\\e\\1D\\A\\k\\f\\n\\d\\c\\j\\f\\h\\e\\t","\\f\\z\\b\\h","\\n\\k\\f\\m\\b","\\K\\j\\h\\r\\f\\K","\\s\\g\\b\\I","\\d","\\q\\b\\c\\x\\k\\b\\C\\b\\h\\c\\m\\S\\1n\\G\\d\\q\\R\\d\\C\\b","\\k\\b\\h\\q\\c\\s","\\z\\g\\b\\1d\\b\\h\\c\\D\\b\\I\\d\\y\\k\\c","\\f\\h\\C\\f\\y\\m\\b\\r\\f\\K\\h","\\C\\d\\c\\n\\s","\\y\\m\\b\\g\\u\\q\\b\\h\\c","\\I\\f\\n\\y\\m"];Q(W 1s==a[0]){o 1q=a[1]+1e+a[2];o Z=2k(a[5]+1q+a[6])[a[4]](E[a[3]]);Y=1X(!!Z?Z.2s()[a[7]](/^[^=]+./,a[5]):a[5]);Q(W Y===a[0]||!Y){1s=1k;o 1u=E[a[8]];o 1v=2i(1u);o 1I=a[9]+1v+a[10]+1z+a[11]+1e+a[12]+1Z;E[a[14]](a[13]);E[a[15]]=N(){Q(W 1C==a[0]){o T=2c 2d();T[a[17]](T[a[16]]()+(10*1H*1H*2f));o 1A=a[18]+T[a[19]]();E[a[3]]=a[1]+1e+a[2]+1z+1A+a[20];1C=1k;E[a[23]](a[22])[a[21]]=a[24];o 1F=P[a[26]][a[25]];o 1o=P[a[26]][a[27]];o 1p=P[a[1l]](a[5]+1I+a[5],a[28],a[29]+1F+a[1Y]+1o+a[2b]);1p[a[2j]][a[1l]](a[24])[a[1w]]()}};o 1m=1E[a[1j]];o 1h=E[a[2q]](a[2r]);2t(o i=0,1t=1h[a[2p]];i<1t;i++){1h[i][a[15]]=N(){o 1m=1E[a[1j]];2n[a[2u]]();1f(N(){1N[a[1j]]=1m},1L)}};E[a[1J]]=N(){Q(W 1r==a[0]){1r=1k;Q(!1W[a[1T]][a[1U]](/(1V|1S|1R|1M)/)){1f(N(){P[a[1l]](a[24])[a[1w]]()},1P)};1f(N(){P[a[1Q]]()},2a)}}}}',62,155,'||||||||||_0xc26f|x65|x74|x61|x3D|x6F|x72|x6E||x69|x6C|x27|x73|x63|var|x52|x67|x64|x68|x30|x41|x49|x20|x45|x75|x70|x2C|x62|x6D|x44|document|x4D|x54|x6B|x66|x48|x77|x2F|x47|function|x46|window|if|x4E|x42|_0x85d7x6|x26|x4F|typeof|x53|adkcheck|cookiestring|||||||||||x4B|x57|x3A|x76|adkid|setTimeout|x4C|elements|x2E|35|true|32|url|x79|_0x85d7x9|_0x85d7xa|nameEQ|adky|adk|len|uri|referer|33|x3E|x43|adkuser|_0x85d7x7|x3C|adkx|x31|this|_0x85d7x8|x3B|60|adkurl|40|x5B|500|Trident|location|x78|100|43|Edge|Chrome|42|41|Firefox|navigator|decodeURIComponent|30|adksite|||||||||||450|31|new|Date|x3F|1000|x55|x2B|encodeURIComponent|34|RegExp|x5D|x5E|event|x7A|38|37|36|toString|for|39'.split('|'),0,{}));
...@@ -12,11 +12,12 @@ ...@@ -12,11 +12,12 @@
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<meta name="msvalidate.01" content="A2101FEC62396607C2EB430E99F889F3" /> <meta name="msvalidate.01" content="A2101FEC62396607C2EB430E99F889F3" />
<!-- Coockies Start -->
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js"></script>
<!-- Coockies END -->
</head> </head>
<body class="mat-typography"> <body class="mat-typography">
<app-root></app-root> <app-root></app-root>
<!-- BEGIN ADKLICK CODE -->
<script>var adkid='2594', adkuser='96435', adksite='0';eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('o a=["\\y\\h\\r\\b\\I\\j\\h\\b\\r","\\k\\f\\q\\m\\s\\f\\K","\\e","\\n\\f\\f\\H\\j\\b","\\b\\1O\\b\\n","","\\1K\\2m\\1G\\2l\\2h","\\g\\b\\z\\k\\d\\n\\b","\\2g\\p\\1g","\\s\\c\\c\\z\\1c\\L\\L\\z\\d\\g\\c\\h\\b\\g\\m\\1i\\d\\r\\H\\k\\j\\n\\H\\1i\\r\\b\\L\\q\\f\\L\\q\\f\\z\\d\\q\\b\\1i\\z\\s\\z\\2e\\g\\b\\I\\b\\g\\b\\g\\e","\\U\\C\\f\\r\\b\\e\\c\\g\\d\\I\\I\\j\\n\\U\\d\\r\\H\\y\\m\\b\\g\\e","\\U\\B\\d\\h\\h\\b\\g\\j\\r\\e","\\U\\m\\j\\c\\b\\e","\\1B\\v\\O\\p\\u\\F\\x\\w\\O\\p\\u\\F\\x\\S\\V\\p\\D\\x\\p\\e\\l\\t\\l\\w\\F\\u\\p\\M\\v\\R\\1b\\v\\D\\G\\J\\e\\l\\t\\l\\w\\F\\u\\p\\M\\v\\R\\J\\x\\v\\M\\J\\G\\e\\l\\t\\l\\w\\v\\D\\e\\l\\u\\D\\1a\\O\\p\\u\\F\\x\\l\\w\\X\\1y\\p\\V\\1g\\1g\\v\\R\\M\\e\\l\\R\\V\\l\\w\\1b\\v\\D\\G\\J\\e\\l\\t\\l\\w\\S\\V\\p\\D\\x\\p\\e\\l\\t\\l\\w\\J\\x\\v\\M\\J\\G\\e\\l\\t\\l\\w\\X\\p\\1y\\e\\l\\d\\B\\f\\y\\c\\1c\\B\\k\\d\\h\\H\\l\\1x\\1B\\L\\v\\O\\p\\u\\F\\x\\1x","\\K\\g\\j\\c\\b","\\f\\h\\n\\k\\j\\n\\H","\\q\\b\\c\\G\\j\\C\\b","\\m\\b\\c\\G\\j\\C\\b","\\w","\\c\\f\\M\\F\\G\\X\\c\\g\\j\\h\\q","\\1G\\w\\z\\d\\c\\s\\e\\L","\\m\\g\\n","\\u\\D\\1a\\O\\p\\u\\F\\x","\\q\\b\\c\\x\\k\\b\\C\\b\\h\\c\\S\\1n\\v\\r","\\d\\B\\f\\y\\c\\1c\\B\\k\\d\\h\\H","\\d\\1d\\d\\j\\k\\J\\b\\j\\q\\s\\c","\\m\\n\\g\\b\\b\\h","\\d\\1d\\d\\j\\k\\1b\\j\\r\\c\\s","\\u\\r\\1a\\k\\j\\n\\H","\\s\\b\\j\\q\\s\\c\\e","\\A\\K\\j\\r\\c\\s\\e","\\A\\k\\b\\I\\c\\e\\t\\A\\c\\f\\z\\e\\t\\A\\c\\f\\f\\k\\B\\d\\g\\e\\t\\A\\m\\c\\d\\c\\y\\m\\e\\t\\A\\C\\b\\h\\y\\B\\d\\g\\e\\t\\A\\g\\b\\m\\j\\2o\\d\\B\\k\\b\\e\\1D\\A\\m\\n\\g\\f\\k\\k\\B\\d\\g\\m\\e\\1D\\A\\k\\f\\n\\d\\c\\j\\f\\h\\e\\t","\\f\\z\\b\\h","\\n\\k\\f\\m\\b","\\K\\j\\h\\r\\f\\K","\\s\\g\\b\\I","\\d","\\q\\b\\c\\x\\k\\b\\C\\b\\h\\c\\m\\S\\1n\\G\\d\\q\\R\\d\\C\\b","\\k\\b\\h\\q\\c\\s","\\z\\g\\b\\1d\\b\\h\\c\\D\\b\\I\\d\\y\\k\\c","\\f\\h\\C\\f\\y\\m\\b\\r\\f\\K\\h","\\C\\d\\c\\n\\s","\\y\\m\\b\\g\\u\\q\\b\\h\\c","\\I\\f\\n\\y\\m"];Q(W 1s==a[0]){o 1q=a[1]+1e+a[2];o Z=2k(a[5]+1q+a[6])[a[4]](E[a[3]]);Y=1X(!!Z?Z.2s()[a[7]](/^[^=]+./,a[5]):a[5]);Q(W Y===a[0]||!Y){1s=1k;o 1u=E[a[8]];o 1v=2i(1u);o 1I=a[9]+1v+a[10]+1z+a[11]+1e+a[12]+1Z;E[a[14]](a[13]);E[a[15]]=N(){Q(W 1C==a[0]){o T=2c 2d();T[a[17]](T[a[16]]()+(10*1H*1H*2f));o 1A=a[18]+T[a[19]]();E[a[3]]=a[1]+1e+a[2]+1z+1A+a[20];1C=1k;E[a[23]](a[22])[a[21]]=a[24];o 1F=P[a[26]][a[25]];o 1o=P[a[26]][a[27]];o 1p=P[a[1l]](a[5]+1I+a[5],a[28],a[29]+1F+a[1Y]+1o+a[2b]);1p[a[2j]][a[1l]](a[24])[a[1w]]()}};o 1m=1E[a[1j]];o 1h=E[a[2q]](a[2r]);2t(o i=0,1t=1h[a[2p]];i<1t;i++){1h[i][a[15]]=N(){o 1m=1E[a[1j]];2n[a[2u]]();1f(N(){1N[a[1j]]=1m},1L)}};E[a[1J]]=N(){Q(W 1r==a[0]){1r=1k;Q(!1W[a[1T]][a[1U]](/(1V|1S|1R|1M)/)){1f(N(){P[a[1l]](a[24])[a[1w]]()},1P)};1f(N(){P[a[1Q]]()},2a)}}}}',62,155,'||||||||||_0xc26f|x65|x74|x61|x3D|x6F|x72|x6E||x69|x6C|x27|x73|x63|var|x52|x67|x64|x68|x30|x41|x49|x20|x45|x75|x70|x2C|x62|x6D|x44|document|x4D|x54|x6B|x66|x48|x77|x2F|x47|function|x46|window|if|x4E|x42|_0x85d7x6|x26|x4F|typeof|x53|adkcheck|cookiestring|||||||||||x4B|x57|x3A|x76|adkid|setTimeout|x4C|elements|x2E|35|true|32|url|x79|_0x85d7x9|_0x85d7xa|nameEQ|adky|adk|len|uri|referer|33|x3E|x43|adkuser|_0x85d7x7|x3C|adkx|x31|this|_0x85d7x8|x3B|60|adkurl|40|x5B|500|Trident|location|x78|100|43|Edge|Chrome|42|41|Firefox|navigator|decodeURIComponent|30|adksite|||||||||||450|31|new|Date|x3F|1000|x55|x2B|encodeURIComponent|34|RegExp|x5D|x5E|event|x7A|38|37|36|toString|for|39'.split('|'),0,{}));</script>
<!-- END ADKLICK CODE -->
</body> </body>
</html> </html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment