Files

61 lines
2.0 KiB
JavaScript

(function () {
"use strict";
const PQ = window.PQueue = window.PQueue || {};
function setStatusMessage(message, duration = 2500) {
const state = PQ.state;
if (!state) return;
if (state.statusTimer) {
clearTimeout(state.statusTimer);
state.statusTimer = null;
}
state.statusMessage = message || null;
if (PQ.UI && typeof PQ.UI.updateToolbarStatus === 'function') {
try { PQ.UI.updateToolbarStatus(); } catch (err) {}
}
if (message && duration > 0) {
state.statusTimer = window.setTimeout(() => {
state.statusMessage = null;
state.statusTimer = null;
if (PQ.UI && typeof PQ.UI.updateToolbarStatus === 'function') {
try { PQ.UI.updateToolbarStatus(); } catch (err) {}
}
}, duration);
}
}
function copyText(text) {
const onOk = () => setStatusMessage("Workflow copied to clipboard");
const onFail = () => setStatusMessage("Copy failed", 4000);
if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') {
navigator.clipboard.writeText(text).then(onOk, () => fallbackCopy(text));
} else {
fallbackCopy(text);
}
function fallbackCopy(value) {
try {
const textarea = document.createElement("textarea");
textarea.value = value;
textarea.style.position = "fixed";
textarea.style.opacity = "0";
document.body.appendChild(textarea);
textarea.select();
document.execCommand("copy");
document.body.removeChild(textarea);
onOk();
} catch (err) {
onFail();
}
}
}
PQ.setStatusMessage = setStatusMessage;
PQ.copyText = copyText;
window.setStatusMessage = setStatusMessage;
window.copyText = copyText;
})();