Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | 9582x 7276x 2306x 366x 366x 4776x 366x 1940x 1940x 4732x 4732x 1940x 3717x 3717x 3717x 3717x 3717x 3717x 14945x 1842x 13103x 13103x 3088x 2891x 197x 161x 161x 13x 148x 1993x 148x 36x 44x 44x 28x 8x 664x 85x 85x 235x 140x 85x 8x 8x 8x 3x 3x 3x 3x 3x 3x | export function deepCopy<T>(obj: T): T {
if (obj === null || typeof obj !== 'object') {
return obj;
}
if (Array.isArray(obj)) {
const arrCopy: T[] = [];
for (const item of obj) {
arrCopy.push(deepCopy(item));
}
return arrCopy as unknown as T;
}
const objCopy: { [key: string]: T[keyof T] } = {} as { [key: string]: T[keyof T] };
for (const key in obj) {
Eif (Object.prototype.hasOwnProperty.call(obj, key)) {
objCopy[key] = deepCopy((obj as { [key: string]: T[keyof T] })[key]);
}
}
return objCopy as T;
}
export function getWeekNumber(date: Date): number {
// Clone the date to avoid modifying the original
const current = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
// Set the first day of the week to Monday
const day = current.getUTCDay() === 0 ? 7 : current.getUTCDay(); // Sunday is 7
// Set the current date to the nearest Thursday (current day + 4 - day number)
current.setUTCDate(current.getUTCDate() + 4 - day);
// Get the year of the adjusted date
const yearStart = new Date(Date.UTC(current.getUTCFullYear(), 0, 1));
// Calculate the week number
const weekNumber = Math.ceil((((current.getTime() - yearStart.getTime()) / 86400000) + 1) / 7);
return weekNumber;
}
export function getSeverity(status: string) {
if (status === "up") {
return "success";
}
Iif (status === "no data") {
return "info";
}
return "danger";
}
function componentToHex(c: number) {
const hex = Math.round(c).toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
export function rgbToHex(r: number, g: number, b: number) {
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}
export function areEqual<T>(firstObject: T, secondObject: T): boolean {
if (firstObject === null || typeof firstObject !== 'object') {
return firstObject === secondObject;
}
if (Array.isArray(firstObject) && Array.isArray(secondObject)) {
Iif (firstObject === secondObject) {
return true;
}
if (firstObject.length !== secondObject.length) {
return false;
}
for (let i = 0; i < firstObject.length; ++i) {
Iif (!areEqual(firstObject[i], secondObject[i])) {
return false;
}
}
return true;
}
for (const key in firstObject) {
Iif (!Object.prototype.hasOwnProperty.call(firstObject, key) || !Object.prototype.hasOwnProperty.call(secondObject, key)) {
return false;
}
if (!areEqual(
(firstObject as { [key: string]: T[keyof T] })[key],
(secondObject as { [key: string]: T[keyof T] })[key])) {
return false;
}
}
return true;
}
export function arrayContains<T>(array: T[], object: T) {
return (array.find(element => areEqual(element, object)) !== undefined);
}
export function getDistinctElements<T>(array: T[]): T[] {
const newArray: T[] = [];
for (const element of array) {
if (newArray.every(elem => !areEqual(elem, element))) {
newArray.push(element);
}
}
return newArray;
}
export function findOneAndReplace<T>(array: T[], predicate: (value: T, index: number, obj: T[]) => unknown, obj: T) {
const foundIndex = array.findIndex(predicate);
Iif (foundIndex !== -1) {
array.splice(foundIndex, 1, obj);
}
else {
array.push(obj);
}
}
export function saveFile(document: Document, blob: Blob, fileName: string) {
const downloadLink = document.createElement("a");
const data = window.URL.createObjectURL(blob);
downloadLink.href = data;
downloadLink.download = fileName;
downloadLink.click();
downloadLink.remove();
}
|