graviton-plugin-sdk
Version:
Gravtion plugin Dev Kit
47 lines (43 loc) • 1.23 kB
JavaScript
/*
########################################
MIT License
Copyright (c) 2019 Marc Espin Sanz
License > https://github.com/Graviton-Code-Editor/Graviton-App/blob/master/LICENSE.md
#########################################
*/
;
/**
*
* @desc This is a web component for making switches
*
*/
module.exports = class Switch extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
this.innerHTML = `
<div class="${this.getAttribute("class")} switch">
<div></div>
</div>`;
this.addEventListener("click", function() {
const dot = this.children[0];
if (this.classList.contains("disabled") === false) {
if (this.getState()) {
this.classList.replace("activated", "desactivated");
dot.classList.replace("activated", "desactivated");
} else {
this.classList.replace("desactivated", "activated");
dot.classList.replace("desactivated", "activated");
}
}
});
}
getState() {
if (this.classList.contains("disabled")) {
return "disabled";
} else {
return this.classList.contains("activated");
}
}
};