-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Expand file tree
/
Copy pathqueue-dom.js
More file actions
85 lines (61 loc) · 1.79 KB
/
Copy pathqueue-dom.js
File metadata and controls
85 lines (61 loc) · 1.79 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
const queueUL = document.querySelector('.list-queue');
const queueInput = document.querySelector('.queue-input');
const warningTopQueue = document.querySelector('#queue-container .warning-top');
const warningBottomQueue = document.querySelector(
'#queue-container .warning-bottom'
);
const addQueue = document.querySelector('.btn-add-queue');
const dequeue = document.querySelector('.btn-take-dequeue');
const queue = new Queue();
const clearQueueInput = () => {
queueInput.value = '';
};
const generateListQueue = () => {
warningTopQueue.style.display = 'none';
warningBottomQueue.style.display = 'none';
queueUL.innerHTML = '';
let length = queue.display().length;
let size = queue.MAX_SIZE - length;
queue.display().forEach(item => {
let li = document.createElement('li');
li.className = 'active';
li.innerText = item;
queueUL.appendChild(li);
});
for (let i = 0; i < size; i++) {
let li = document.createElement('li');
li.className = 'inactive';
li.innerHTML = ' ';
queueUL.appendChild(li);
}
};
generateListQueue();
const generateWarningQueue = (type) => {
if (type === 'underflow') {
warningBottomQueue.style.display = 'block';
warningBottomQueue.innerText = type;
} else if (type === 'overflow') {
warningTopQueue.style.display = 'block';
warningTopQueue.innerText = type;
}
};
const addToQueue = () => {
try {
queue.enqueue(queueInput.value)
clearQueueInput();
generateListQueue()
} catch (error) {
generateWarningQueue('overflow∫')
}
};
const removeFromQueue = () => {
try {
queue.dequeue()
generateListQueue()
} catch (error) {
generateWarningQueue('underflow')
}
};
addQueue.addEventListener('click', addToQueue);
dequeue.addEventListener('click', removeFromQueue);
Contraer