git subrepo clone --branch=master /home/cloud/Code/pinski-plugins/elemjs src/site/html/static/js/elemjs

subrepo:
  subdir:   "src/site/html/static/js/elemjs"
  merged:   "20ef654"
upstream:
  origin:   "/home/cloud/Code/pinski-plugins/elemjs"
  branch:   "master"
  commit:   "20ef654"
git-subrepo:
  version:  "0.4.0"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "5d6aba9"
This commit is contained in:
Cadence Fish 2020-01-12 22:38:21 +13:00
parent dce68b9707
commit 32e4f3d854
No known key found for this signature in database
GPG Key ID: 81015DF9AA8607E1
2 changed files with 93 additions and 0 deletions

View File

@ -0,0 +1,12 @@
; DO NOT EDIT (unless you know what you are doing)
;
; This subdirectory is a git "subrepo", and this file is maintained by the
; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
;
[subrepo]
remote = /home/cloud/Code/pinski-plugins/elemjs
branch = master
commit = 20ef654b4c572cfdb6ca7fa27e04326e7eab1be2
parent = dce68b9707f1c0a04d828dac549666c70583e624
method = merge
cmdver = 0.4.0

View File

@ -0,0 +1,81 @@
/** @returns {HTMLElement} */
function q(s) {
return document.querySelector(s)
}
class ElemJS {
constructor(type) {
if (type instanceof HTMLElement) this.bind(type)
else this.bind(document.createElement(type))
this.children = [];
}
bind(element) {
/** @type {HTMLElement} */
this.element = element
// @ts-ignore
this.element.js = this
this.element.setAttribute("data-elemjs", "")
return this
}
class() {
for (let name of arguments) if (name) this.element.classList.add(name);
return this;
}
removeClass() {
for (let name of arguments) if (name) this.element.classList.remove(name);
return this;
}
direct(name, value) {
if (name) this.element[name] = value;
return this;
}
attribute(name, value) {
if (name) this.element.setAttribute(name, value);
return this;
}
style(name, value) {
if (name) this.element.style[name] = value;
return this;
}
id(name) {
if (name) this.element.id = name;
return this;
}
text(name) {
this.element.innerText = name;
return this;
}
addText(name) {
const node = document.createTextNode(name)
this.element.appendChild(node)
return this
}
html(name) {
this.element.innerHTML = name;
return this;
}
event(name, callback) {
this.element.addEventListener(name, event => callback(event))
}
child(toAdd, position) {
if (typeof(toAdd) == "object") {
toAdd.parent = this;
if (typeof(position) == "number" && position >= 0) {
this.element.insertBefore(toAdd.element, this.element.children[position]);
this.children.splice(position, 0, toAdd);
} else {
this.element.appendChild(toAdd.element);
this.children.push(toAdd);
}
} else if (typeof toAdd === "string") {
this.text(toAdd)
}
return this;
}
clearChildren() {
this.children.length = 0;
while (this.element.lastChild) this.element.removeChild(this.element.lastChild);
}
}
export {q, ElemJS}