summary refs log tree commit diff
path: root/lib/htmlbuilder.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlbuilder.js')
-rw-r--r--lib/htmlbuilder.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/htmlbuilder.js b/lib/htmlbuilder.js
new file mode 100644
index 0000000..7343116
--- /dev/null
+++ b/lib/htmlbuilder.js
@@ -0,0 +1,46 @@
+function makeSigmaHtmlPlusElement(elem) {
+    elem.child = function (type) {
+        let childElem = makeSigmaHtmlPlusElement(document.createElement(type));
+        elem.appendChild(childElem)
+        return childElem;
+    }
+    elem.html = function (html) {
+        elem.innerHTML = html;
+        return elem;
+    }
+    elem.text = function (text) {
+        elem.innerText = text;
+        return elem;
+    }
+    elem.attr = function (attribute, value) {
+        elem.setAttribute(attribute, value);
+        return elem;
+    }
+    elem.class = function (className) {
+        elem.classList.add(className)
+        return elem;
+    }
+    elem.do = function (a, params) {
+        elem.a(...params)
+        return elem;
+    }
+    elem.ev = function (event, listener) {
+        elem.addEventListener(event, listener)
+        return elem;
+    }
+    elem.up = function () {
+        return elem.parentElement
+    }
+    elem.for = function (array, func) {
+        array.forEach(element => elem.appendChild(func(element)));
+        return elem
+    }
+    return elem;
+}
+
+/**
+ * @param {String} type HTML element type
+ */
+export default function make(type) {
+    return makeSigmaHtmlPlusElement(document.createElement(type));
+}
\ No newline at end of file