import { Component, ViewChild, AfterViewChecked } from '@angular/core';
import { SafeUrl } from '@angular/platform-browser';
+import { Observable } from 'rxjs';
import { ITitle } from './ititle';
import { ISubtitle } from './isubtitle';
import { IFood } from './ifood';
public exportJson(): void
{
- let observ = this.jsonFileService.exportJson(this.foodcard);
+ let observ: Observable<SafeUrl> = this.jsonFileService.exportJson(this.foodcard);
observ.subscribe((next) => {
this.downloadJsonHref = next;
});
public exportHtml(): void
{
- let observ = this.htmlExportService.exportHtml(this.foodcard);
+ let observ: Observable<SafeUrl> = this.htmlExportService.exportHtml(this.foodcard);
observ.subscribe((next) => {
this.downloadHtmlHref = next;
});
public fileEvent(event: any): void
{
- let importobserv = this.jsonFileService.importJson(event);
+ let importobserv: Observable<IFoodCard> = this.jsonFileService.importJson(event);
importobserv.subscribe((next) => {
this.foodcard = next;
});
this.foodcard.Titles.push({ Title: "", Subtitles: [] });
}
- public ngAfterViewChecked()
+ public ngAfterViewChecked(): void
{
if (this.downloadJsonHref !== "") {
- let link = document.getElementById("exportJsonLink");
+ let link: HTMLElement | null = document.getElementById("exportJsonLink");
link?.click();
Promise.resolve().then(() => this.downloadJsonHref = "");
}
if (this.downloadHtmlHref !== "") {
- let link = document.getElementById("exportHtmlLink");
+ let link: HTMLElement | null = document.getElementById("exportHtmlLink");
link?.click();
Promise.resolve().then(() => this.downloadHtmlHref = "");
}
constructor(private sanitizer: DomSanitizer,
private httpclient: HttpClient)
{
- let loadcss = this.loadCssFile("assets/htmlexport.css");
+ let loadcss: Observable<SafeUrl> = this.loadCssFile("assets/htmlexport.css");
loadcss.subscribe((content: any) => {
this.cssExportContent = content as string; });
loadcss = this.loadCssFile("assets/htmlprintexport.css");
public exportHtml(foodcard: IFoodCard): Observable<SafeUrl>
{
- let observ = new Observable<SafeUrl>((observ) => {
- let doctype = "<!DOCTYPE html>";
- let doc = document.implementation.createHTMLDocument();
+ let observ: Observable<SafeUrl> = new Observable<SafeUrl>((observ) => {
+ let doctype: string = "<!DOCTYPE html>";
+ let doc: HTMLDocument = document.implementation.createHTMLDocument();
doc.documentElement.lang = "de";
doc.title = "Speisekarte";
- let element = document.createElement("meta");
+ let element: HTMLMetaElement = document.createElement("meta");
element.setAttribute("charset", "utf-8");
doc.head.appendChild(element);
element.setAttribute("content", "width=device-width, initial-scale=1");
doc.head.appendChild(element);
- let styleElement = document.createElement("style");
+ let styleElement: HTMLStyleElement = document.createElement("style");
styleElement.setAttribute("type", "text/css");
styleElement.setAttribute("media", "screen");
styleElement.innerHTML = this.cssExportContent;
styleElement.innerHTML = this.cssPrintExportContent;
doc.head.appendChild(styleElement);
- let divElement = document.createElement("div");
+ let divElement: HTMLDivElement = document.createElement("div");
divElement.classList.add("foodcard");
divElement.appendChild(this.createHtmlTitles(foodcard.Titles));
doc.body.appendChild(divElement);
- let pElement = document.createElement("p");
+ let pElement: HTMLElement = document.createElement("p");
pElement.innerText = "Fragen zu Allergenen beantwortet Ihnen gerne unser Servicepersonal";
doc.body.appendChild(pElement);
- let result = this.sanitizer.bypassSecurityTrustUrl("data:text/html;charset=UTF-8," + doctype + doc.documentElement.outerHTML);
+ let result: SafeUrl = this.sanitizer.bypassSecurityTrustUrl("data:text/html;charset=UTF-8," + doctype + doc.documentElement.outerHTML);
observ.next(result);
});
private createHtmlTitles(titles: ITitle[]): HTMLDivElement
{
- let divElement = document.createElement("div");
+ let divElement: HTMLDivElement = document.createElement("div");
divElement.classList.add("title");
- let element = document.createElement("h1");
+ let element: HTMLDivElement = document.createElement("h1");
for (let i = 0; i < titles.length; i++) {
element = document.createElement("h1");
element.innerText = titles[i].Title;
private createHtmlSubtitles(subtitles: ISubtitle[]): HTMLDivElement
{
- let divElement = document.createElement("div");
+ let divElement: HTMLDivElement = document.createElement("div");
divElement.classList.add("subtitle");
- let element = document.createElement("h2");
+ let element: HTMLElement = document.createElement("h2");
for (let i = 0; i < subtitles.length; i++) {
element = document.createElement("h2");
element.innerText = subtitles[i].Subtitle;
private createHtmlFoods(foods: IFood[]): HTMLDivElement
{
- let divElement = document.createElement("div");
+ let divElement: HTMLDivElement = document.createElement("div");
divElement.classList.add("foods");
- let divSubElement = document.createElement("div");
- let divFoodElement = document.createElement("div");
+ let divSubElement: HTMLDivElement = document.createElement("div");
+ let divFoodElement: HTMLDivElement = document.createElement("div");
for (let i = 0; i < foods.length; i++) {
divSubElement = document.createElement("div");
divSubElement.classList.add("grid");
public exportJson(foodcard: IFoodCard): Observable<SafeUrl>
{
- let observ = new Observable<SafeUrl>((observ) => {
- let json = JSON.stringify(foodcard);
- let result = this.sanitizer.bypassSecurityTrustUrl("data:text/json;charset=UTF-8," + json);
+ let observ: Observable<SafeUrl> = new Observable<SafeUrl>((observ) => {
+ let json: string = JSON.stringify(foodcard);
+ let result: SafeUrl = this.sanitizer.bypassSecurityTrustUrl("data:text/json;charset=UTF-8," + json);
observ.next(result);
});
public importJson(event: any): Observable<IFoodCard>
{
- let observ = new Observable<IFoodCard>((observ) => {
+ let observ: Observable<IFoodCard> = new Observable<IFoodCard>((observ) => {
let foodcard: IFoodCard = { Titles: [] };
- const reader = new FileReader();
+ const reader: FileReader = new FileReader();
reader.onload = (e: any) => {
observ.next(JSON.parse(e.target.result));
}