victorwesterlund.com/public/assets/js/modules/Components.mjs
Victor Westerlund 5c07d93535
Version 9.0 (#17)
Release of version 9.0.0
2021-09-20 11:37:36 +02:00

51 lines
No EOL
1,018 B
JavaScript

// Victor Westerlund - www.victorwesterlund.com
// UI component constructor
class Component {
constructor(tag) {
this.element = document.createElement(tag); // Root element
}
}
// ⬇ UI Components ⬇
export class Button extends Component {
constructor(properties) {
super("div");
this.properties = properties;
this.element.classList.add("button");
this.setText();
this.setAction();
this.setType();
}
setText() {
if(!this.properties.text) {
return false;
}
const textElement = document.createElement("p");
textElement.innerText = this.properties.text;
this.element.appendChild(textElement);
}
setAction() {
if(!this.properties.action) {
return false;
}
this.element.setAttribute("data-action",this.properties.action);
}
setType() {
const types = [
"solid",
"phantom"
];
const type = types.includes(this.properties.type) ? this.properties.type : false;
if(!this.properties.type || !type) {
return false;
}
this.element.classList.add(type);
}
}