nightTab/js/helper.js

112 lines
2.5 KiB
JavaScript
Raw Normal View History

2018-12-26 07:45:53 +00:00
var helper = (function() {
// methods on this object
function e(selector) {
return document.querySelector(selector);
};
function eA(selector) {
return document.querySelectorAll(selector);
};
function toggleClass(element, theClassName) {
element.classList.toggle(theClassName);
};
function addClass(element, theClassName) {
element.classList.add(theClassName);
};
function removeClass(element, theClassName) {
element.classList.remove(theClassName);
};
function getDateTime() {
var dateStamp = new Date();
var object = {
// string: dateStamp.constructor(),
// time: dateStamp.getTime()
date: dateStamp.getDate(),
day: dateStamp.getDay(),
year: dateStamp.getFullYear(),
hours: dateStamp.getHours(),
milliseconds: dateStamp.getMilliseconds(),
minutes: dateStamp.getMinutes(),
month: dateStamp.getMonth(),
seconds: dateStamp.getSeconds()
}
return object;
};
var sortObject = function(object, key) {
object.sort(function(a, b) {
var textA = a[key].toLowerCase();
var textB = b[key].toLowerCase();
if (textA < textB) {
return -1;
} else if (textA > textB) {
return 1;
} else {
return 0;
};
});
return object;
};
function applyOptions(defaultOptions, options) {
if (defaultOptions && options) {
if (options) {
for (var key in options) {
if (key in defaultOptions) {
defaultOptions[key] = options[key];
};
};
};
return defaultOptions;
} else {
return null;
};
};
function hexToRgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
if (result) {
result = {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
};
} else {
result = null;
}
return result;
};
function rgbToHex(rgbObject) {
var componentToHex = function(hexPart) {
hexPart = hexPart.toString(16);
if (hexPart.length == 1) {
hexPart = "0" + hexPart
};
return hexPart;
};
var result = "#" + componentToHex(rgbObject.r) + componentToHex(rgbObject.g) + componentToHex(rgbObject.b);
return result;
};
// exposed methods
return {
e: e,
eA: eA,
toggleClass: toggleClass,
addClass: addClass,
removeClass: removeClass,
getDateTime: getDateTime,
sortObject: sortObject,
applyOptions: applyOptions,
hexToRgb: hexToRgb,
rgbToHex: rgbToHex
};
})();