-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
93 lines (71 loc) · 1.95 KB
/
main.js
File metadata and controls
93 lines (71 loc) · 1.95 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
const list = [
"HTML 5",
"CSS3",
"Angular 2",
"React",
"Node.js",
"Vue.js",
"PHP",
"JavaScript",
"Bootstrap",
];
// Get Elements from DOM and store them in constants
const output = document.querySelector(".output");
const search = document.querySelector(".filter-input");
const sortBtn = document.querySelector('.sort-btn');
const icon = document.querySelector('.material-icons');
// Listen to User Event
window.addEventListener("DOMContentLoaded", loadList);
search.addEventListener("input", filter);
sortBtn.addEventListener("click", sortList);
// Global Vriables
let AssendingSort = false;
let result;
// Loading Function
function loadList() {
let temp = `<ul class="list-items">`;
list.forEach((item) => {
temp += `<li class="list-item"> ${item} </li>`;
});
temp += `</ul>`;
output.innerHTML = temp;
}
function filter(e) {
result = list.filter(item=> item.toLowerCase().includes(e.target.value.toLowerCase()));
let temp = `<ul class="list-items">`;
if(result.length<=0){
result=['No Item Found'];
}
result.forEach(item=>{
if(item === 'No Item Found'){
temp+=`<li class="no-item"> ${item}</li>`;
}else{
temp+=`<li class="list-item"> ${item}</li>`;
}
})
temp+=`</ul>`
output.innerHTML =temp;
}
// Sorting Function
function sortList(){
let temp="";
let sortedList;
AssendingSort = !AssendingSort;
if(AssendingSort){
icon.textContent ="arrow_drop_down";
sortedList = result.sort();
}else{
icon.textContent ="arrow_drop_up";
sortedList = result.sort().reverse();
}
temp = `<ul class="list-items">`;
sortedList.forEach((item) => {
if(item === 'No Item Found'){
temp+=`<li class="no-item"> ${item}</li>`;
}else{
temp+=`<li class="list-item"> ${item}</li>`;
}
});
temp += `</ul>`;
output.innerHTML = temp;
}