ari.lt/content/js/generic/generic.dev.js
2021-07-02 04:03:52 +03:00

204 lines
No EOL
5.4 KiB
JavaScript

"use strict";
var content = document.getElementById("content");
var bar = document.getElementById("bar");
var bar_list = document.getElementById("bar-list");
var menus = document.getElementById("menus");
var mobileMenu = document.getElementById("mobile-menu");
var showMobileMenu = true;
function addNewBarElement(innerElement, content, attrs) {
var appendElement = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : bar_list;
var item = document.createElement('li');
var itemContent = document.createElement(innerElement);
item.setAttribute("class", "nav-item");
for (var attr in attrs) {
itemContent.setAttribute(attr, attrs[attr]);
}
itemContent.innerHTML = content;
appendElement.appendChild(document.createTextNode("\n"));
item.appendChild(itemContent);
appendElement.appendChild(item);
}
function detectSmallScreen() {
var isSmall = window.matchMedia ? window.matchMedia("screen and (max-width: 699px)") : screen.width <= 699;
var bar_items = document.getElementsByClassName("doHide");
if (isSmall.matches) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = bar_items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var bar_item = _step.value;
bar_item.classList.add("smallHide");
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
_iterator["return"]();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
if (!document.getElementById("mobileMenu")) {
addNewBarElement('a', 'Menu', {
"href": "#!",
"class": "nav-item bigHide noMargin",
"onClick": "openMobileMenu();",
"id": "mobileMenu"
});
}
} else {
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = bar_items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var _bar_item = _step2.value;
_bar_item.classList.remove("smallHide", "noMargin");
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
_iterator2["return"]();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
}
}
function mobileCmd(e) {
var textbox = document.getElementById("mobileCmd");
var output = document.getElementById("mobileCmdOutput");
if (!e) e = window.event;
var keyCode = e.code || e.key;
if (keyCode == 'Enter') {
if (textbox.value) {
try {
var out = commands[textbox.value.replace(/^\$ /, '').split(' ')[0]](textbox.value);
} catch (e) {
var out = e;
}
}
if (out) {
output.innerText = out;
textbox.value = '';
}
}
}
function addNewMobileMenuItem(innerElement, content, attrs) {
if (!document.getElementById("mobileList")) {
var _list = document.createElement("ul");
_list.setAttribute("id", "mobileList");
mobileMenu.appendChild(_list);
}
var list = document.getElementById("mobileList");
var item = document.createElement("li");
var itemContent = document.createElement(innerElement);
for (var attr in attrs) {
itemContent.setAttribute(attr, attrs[attr]);
}
itemContent.innerHTML = content;
list.appendChild(document.createTextNode("\n"));
item.appendChild(itemContent);
list.appendChild(item);
}
function openMobileMenu() {
if (!showMobileMenu) {
return;
}
var list = document.getElementById("mobileList");
if (!list) {
alert("No menu found :)");
showMobileMenu = false;
return;
}
var output = document.getElementById("mobileCmdOutput");
output.innerHTML = '';
if (mobileMenu.classList.contains("hiddenMobile")) {
mobileMenu.classList.remove("hiddenMobile");
} else {
mobileMenu.classList.add("hiddenMobile");
}
var textbox = document.getElementById("mobileCmd");
textbox.focus();
}
addNewBarElement('a', 'Random_things', {
"href": "/page/random",
"class": "nav-item doHide"
});
addNewBarElement('a', 'JavaScript_apps', {
"href": "/page/js",
"class": "nav-item doHide"
});
addNewBarElement('a', 'Source_code', {
"href": "//github.com/TruncatedDinosour/website",
"class": "nav-item doHide"
});
addNewBarElement('a', 'Ari\'s_Web', {
"href": "/",
"class": "nav-logo"
});
addNewMobileMenuItem('b', 'Pages:', {});
addNewMobileMenuItem('p', ' * Random_things', {
"class": "keep-whitespace"
});
addNewMobileMenuItem('p', ' * JavaScript_apps', {
"class": "keep-whitespace"
});
addNewMobileMenuItem('p', ' * Source_code', {
"class": "keep-whitespace"
});
addNewMobileMenuItem('p', ' * Home', {
"class": "keep-whitespace"
});
addNewMobileMenuItem('br', '', {});
addNewMobileMenuItem('b', 'type "help" for help', {});
addNewMobileMenuItem('input', '', {
"type": "text",
"class": "cmd",
"onkeypress": "mobileCmd();",
"id": "mobileCmd"
});
addNewMobileMenuItem('div', '', {
"id": "mobileCmdOutput",
"class": "cmd-output"
});
detectSmallScreen();
setInterval(detectSmallScreen, 100);