-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
93 lines (63 loc) · 2.51 KB
/
script.js
File metadata and controls
93 lines (63 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
let lengthSlider = document.getElementById('lengthSlider')
let sliderValue = document.getElementById('sliderValue')
sliderValue.textContent = lengthSlider.value
lengthSlider.addEventListener("input", ()=>{
sliderValue.textContent = lengthSlider.value
})
let checkboxes = document.querySelectorAll('.checkbox')
Array.from(checkboxes).forEach(Element=>{
Element.addEventListener('click',(e)=>{
if(e.target.innerText == 'radio_button_unchecked'){
e.target.innerText = 'task_alt'
e.target.nextElementSibling.nextElementSibling.checked = true
}
else{
e.target.innerText = 'radio_button_unchecked'
e.target.nextElementSibling.nextElementSibling.checked = false
}
})
})
let includeLabels = document.querySelectorAll('.row label')
Array.from(includeLabels).forEach(Element=>{
Element.addEventListener('click',(e)=>{
if(e.target.previousElementSibling.innerText == 'radio_button_unchecked'){
e.target.previousElementSibling.innerText = 'task_alt'
}
else{
e.target.previousElementSibling.innerText = 'radio_button_unchecked'
}
})
})
let generateBtn = document.getElementById('generateBtn')
let password = document.getElementById('password')
generateBtn.addEventListener('click', function(){
let length = lengthSlider.value
let uppercase = document.getElementById('uppercase').checked
let lowercase = document.getElementById('lowercase').checked
let symbols = document.getElementById('symbols').checked
let numbers = document.getElementById('numbers').checked
let password_generated = generatePassword(length, uppercase, lowercase, symbols, numbers)
password.value = password_generated
})
function generatePassword(length, uppercase, lowercase, symbols, numbers){
let charset = ""
let string = ""
if(uppercase) charset += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(lowercase) charset += "abcdefghijklmnopqrstuvwxyz";
if(symbols) charset += "!@#$%^&*()";
if(numbers) charset += "0123456789";
for(let i=0; i<length; i++){
string += charset.charAt(Math.floor(Math.random()*charset.length))
}
return string;
}
let copyIcon = document.getElementById('copyIcon')
copyIcon.addEventListener('click', ()=>{
if(password.value !=""){
navigator.clipboard.writeText(password.value)
copyIcon.innerText = 'check'
setTimeout(()=>{
copyIcon.innerText='content_copy'
}, 3000)
}
})