Files
LNXSDK/leenkx/Sources/leenkx/logicnode/CreateElementNode.hx
2025-01-22 16:18:30 +01:00

108 lines
3.2 KiB
Haxe

package leenkx.logicnode;
class CreateElementNode extends LogicNode {
public var property0: String;
public var element: Dynamic;
public var html: String;
public function new(tree:LogicTree) {
super(tree);
}
override function get(from: Int): Dynamic {
return switch (from) {
case 0:
switch (property0) {
#if js
case "a":
var element:Dynamic = js.Browser.document.createElement(property0);
element.id = inputs[1].get();
var classes: Array<String> = inputs[2].get().split(" ");
if(classes.length > 0){
for (i in 0...classes.length){
if(classes[i].length > 0){
element.classList.add(classes[i]);
}
}
}
element.href = inputs[2].get();
element.innerHTML = inputs[0].get();
element;
case "link":
var element:Dynamic = js.Browser.document.createElement(property0);
element.href = inputs[4].get();
element.type = "text/css";
element;
case "script":
var element:Dynamic = js.Browser.document.createElement(property0);
element.src = inputs[5].get();
element;
case "img":
var element:Dynamic = js.Browser.document.createElement(property0);
element.id = inputs[1].get();
var classes: Array<String> = inputs[2].get().split(" ");
if(classes.length > 0){
for (i in 0...classes.length){
if(classes[i].length > 0){
element.classList.add(classes[i]);
}
}
}
element.src = inputs[4].get();
element.innerHTML = inputs[0].get();
element;
default:
var element:Dynamic = js.Browser.document.createElement(property0);
element.id = inputs[1].get();
var classes: Array<String> = inputs[2].get().split(" ");
if(classes.length > 0){
for (i in 0...classes.length){
if(classes[i].length > 0){
element.classList.add(classes[i]);
}
}
}
if(inputs[3].get() != null){
trace("Inline data is only for html type for now.");
}
element.innerHTML = inputs[0].get();
element;
#else
default: null;
#end
}
case 1:
switch (property0) {
case "a":
var id = inputs[1].get();
var cls = inputs[2].get();
var href = inputs[4].get();
var content = inputs[0].get();
html = "<" + property0 + " id='" + id + "' class='" + cls + "' href='" + href + "'>" + content + "</" + property0 + ">";
html;
case "script":
var src = inputs[5].get();
html = "<" + property0 + " src='" + src + "' type='text/javascript'>";
html;
case "img":
var id = inputs[0].get();
var src = inputs[1].get();
var cls = inputs[2].get();
var inl = inputs[3].get();
html = "<" + property0 + " id='" + id + "' class='" + cls + "' src='" + src + "' " + inl + ">";
html;
default:
var id = inputs[1].get();
var cls = inputs[2].get();
var inl = inputs[3].get();
var content = inputs[0].get();
html = "<" + property0 + " id='" + id + "' class='" + cls + "' style='" + inl + "'>" + content + "</" + property0 + ">";
html;
}
default: html;
}
}
}