Skip to content

Commit bd2f1ec

Browse files
committed
Update config.ts
1 parent 5cec6a8 commit bd2f1ec

File tree

1 file changed

+58
-2
lines changed

1 file changed

+58
-2
lines changed

src/config.ts

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,68 @@
1+
interface WidgetDefinition {
2+
type: string;
3+
text: string;
4+
}
5+
16
export class ConfigClass {
27
file: object;
3-
widgets: object = {};
8+
widgets: Array<WidgetDefinition> = [];
49

510
constructor(config_object: object) {
611
this.file = config_object;
12+
this.widgets = this.file.config.widgets;
713
}
814

915
public get_widgets() {
10-
return this.file.config.widgets;
16+
let html_widgets: Array<DocumentFragment> = [];
17+
18+
this.widgets.forEach(element => {
19+
const type = element.type;
20+
21+
let template = document.getElementById("text-widget-template") as HTMLTemplateElement;
22+
23+
// Get correct template
24+
switch (type) {
25+
case "heading":
26+
template = document.getElementById("title-widget-template") as HTMLTemplateElement;
27+
break;
28+
case "title":
29+
template = document.getElementById("title-widget-template") as HTMLTemplateElement;
30+
break;
31+
case "text":
32+
template = document.getElementById("text-widget-template") as HTMLTemplateElement;
33+
break;
34+
case "image":
35+
template = document.getElementById("image-widget-template") as HTMLTemplateElement;
36+
break;
37+
case "switch":
38+
template = document.getElementById("switch-widget-template") as HTMLTemplateElement;
39+
break;
40+
case "number":
41+
template = document.getElementById("number-widget-template") as HTMLTemplateElement;
42+
break;
43+
case "slider":
44+
template = document.getElementById("slider-widget-template") as HTMLTemplateElement;
45+
break;
46+
}
47+
48+
// Create the thing
49+
let clone = template.content.cloneNode(true) as DocumentFragment;
50+
(clone.querySelector(".widget-text") as HTMLElement).innerText = element.text;
51+
52+
if (type == "switch") {
53+
if (element.default == "disabled") {
54+
(clone.querySelector(".widget-switch-input") as HTMLInputElement).checked = false;
55+
}
56+
else if (element.default == "enabled") {
57+
(clone.querySelector(".widget-switch-input") as HTMLInputElement).checked = true;
58+
}
59+
}
60+
61+
html_widgets.push(clone);
62+
63+
});
64+
65+
// Return array of HTML elements
66+
return html_widgets;
1167
}
1268
}

0 commit comments

Comments
 (0)