diff --git a/patek-logo.js b/patek-logo.js index 6ff5527..bad71d1 100644 --- a/patek-logo.js +++ b/patek-logo.js @@ -69,8 +69,16 @@ template.innerHTML = ` class PatekLogo extends HTMLElement { calculateCircles() { - const inputValue = typeof this.attributes.title !== "undefined" ? this.attributes.title.value : "Pátek"; + const inputValue = typeof this.attributes.title !== "undefined" && this.attributes.title.value !== "" ? this.attributes.title.value : "Pátek"; + const opacities = PatekLogo.calculateBinary(inputValue); + + for (let i = 0; i < 7; i++) { + this.shadow.getElementById("circle" + i.toString()).style.fillOpacity = opacities[i]; + } + } + + static calculateBinary(inputValue) { /* eslint no-control-regex: "off", "unicorn/no-hex-escape": off */ const normalizedInputValue = inputValue.normalize("NFD").replace(/[^\x00-\x7F]/g, ""); @@ -79,15 +87,9 @@ class PatekLogo extends HTMLElement { outputChar ^= normalizedInputValue[i].charCodeAt(0); } - const opacities = outputChar.toString(2); + const outputString = outputChar.toString(2); - this.shadow.getElementById("circle0").style.fillOpacity = opacities[0]; - this.shadow.getElementById("circle1").style.fillOpacity = opacities[1]; - this.shadow.getElementById("circle2").style.fillOpacity = opacities[2]; - this.shadow.getElementById("circle3").style.fillOpacity = opacities[3]; - this.shadow.getElementById("circle4").style.fillOpacity = opacities[4]; - this.shadow.getElementById("circle5").style.fillOpacity = opacities[5]; - this.shadow.getElementById("circle6").style.fillOpacity = opacities[6]; + return "0".repeat(7 - outputString.length) + outputString; } constructor() {