diff --git a/popup/popup.html b/popup/popup.html new file mode 100644 index 0000000..090b111 --- /dev/null +++ b/popup/popup.html @@ -0,0 +1,41 @@ + + + + + + Random Password Genarator + + + +
+
+ + +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ + +
+ +
+

+ +
+ +
+ + + \ No newline at end of file diff --git a/popup/script.js b/popup/script.js new file mode 100644 index 0000000..df76837 --- /dev/null +++ b/popup/script.js @@ -0,0 +1,72 @@ + const pwEl = document.getElementById("pword"); + const copyEl = document.getElementById("copy"); + const lenEl = document.getElementById("len"); + const upperEl = document.getElementById("upper"); + const lowerEl = document.getElementById("lower"); + const numberEl = document.getElementById("number"); + const symbolEl = document.getElementById("symbol"); + const generateEl = document.getElementById("generate"); + + const upperLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + const lowerLetters = "abcdefghijklmnopqrstuvwxyz"; + const numbers = "0123456789"; + const symbols = "!@#$%^&*()_+=[]"; + + function getLowercase() { + return lowerLetters[Math.floor(Math.random() * lowerLetters.length)]; + } + + function getUppercase() { + return upperLetters[Math.floor(Math.random() * upperLetters.length)]; + } + + function getNumber() { + return numbers[Math.floor(Math.random() * numbers.length)]; + } + + function getSymbol() { + return symbols[Math.floor(Math.random() * symbols.length)]; + } + + function generatePassword() { + const len = lenEl.value; + let password = ""; + + for (let i = 0; i < len; i++) { + const x = generateX(); + password += x; + } + + pwEl.innerText = password; + } + + function generateX() { + const xs = []; + upperEl.checked && xs.push(getUppercase()); + lowerEl.checked && xs.push(getLowercase()); + numberEl.checked && xs.push(getNumber()); + symbolEl.checked && xs.push(getSymbol()); + + if (xs.length === 0) + return ""; + + return xs[Math.floor(Math.random() * xs.length)]; + } + + generateEl.addEventListener("click", generatePassword); + + copyEl.addEventListener("click", () => { + const textarea = document.createElement("textarea"); + const password = pwEl.innerText; + + if (!password) { + return; + } + + textarea.value = password; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand("copy"); + textarea.remove(); + alert("Password copied to clipboard"); + }); \ No newline at end of file diff --git a/popup/style.css b/popup/style.css new file mode 100644 index 0000000..db859b3 --- /dev/null +++ b/popup/style.css @@ -0,0 +1,33 @@ +