65 lines
1.5 KiB
JavaScript
65 lines
1.5 KiB
JavaScript
export function sleep(ms) {
|
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
}
|
|
|
|
export function stringToHex(str) {
|
|
let result = '';
|
|
for (let i = 0; i < str.length; i++) {
|
|
result += str.charCodeAt(i).toString(16);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
export function hexToString(str) {
|
|
let result = '';
|
|
for (let i = 0; i < str.length; i += 2) {
|
|
result += String.fromCharCode(parseInt(str.substr(i, 2), 16));
|
|
}
|
|
return result;
|
|
}
|
|
|
|
export function formatDate(d, format) {
|
|
if (!format)
|
|
format = 'normal';
|
|
|
|
switch (format) {
|
|
case 'normal':
|
|
return `${d.getDate().toString().padStart(2, '0')}.${(d.getMonth() + 1).toString().padStart(2, '0')}.${d.getFullYear()} ` +
|
|
`${d.getHours().toString().padStart(2, '0')}:${d.getMinutes().toString().padStart(2, '0')}`;
|
|
}
|
|
|
|
}
|
|
|
|
export function fallbackCopyTextToClipboard(text) {
|
|
let textArea = document.createElement('textarea');
|
|
textArea.value = text;
|
|
document.body.appendChild(textArea);
|
|
textArea.focus();
|
|
textArea.select();
|
|
|
|
let result = false;
|
|
try {
|
|
result = document.execCommand('copy');
|
|
} catch (e) {
|
|
//
|
|
}
|
|
|
|
document.body.removeChild(textArea);
|
|
return result;
|
|
}
|
|
|
|
export async function copyTextToClipboard(text) {
|
|
if (!navigator.clipboard) {
|
|
return fallbackCopyTextToClipboard(text);
|
|
}
|
|
|
|
let result = false;
|
|
try {
|
|
await navigator.clipboard.writeText(text);
|
|
result = true;
|
|
} catch (e) {
|
|
//
|
|
}
|
|
|
|
return result;
|
|
} |