summaryrefslogtreecommitdiffstats
path: root/g4f/gui/client/js/highlightjs-copy.min.js
diff options
context:
space:
mode:
authorabc <98614666+xtekky@users.noreply.github.com>2023-10-06 20:52:17 +0200
committerabc <98614666+xtekky@users.noreply.github.com>2023-10-06 20:52:17 +0200
commit7e4e374f621d9d1c37f37ff6555e013cdb3b03a0 (patch)
treeeef5caa70f7707a7dc9467ef6849db278d9cfa06 /g4f/gui/client/js/highlightjs-copy.min.js
parent~ (diff)
downloadgpt4free-7e4e374f621d9d1c37f37ff6555e013cdb3b03a0.tar
gpt4free-7e4e374f621d9d1c37f37ff6555e013cdb3b03a0.tar.gz
gpt4free-7e4e374f621d9d1c37f37ff6555e013cdb3b03a0.tar.bz2
gpt4free-7e4e374f621d9d1c37f37ff6555e013cdb3b03a0.tar.lz
gpt4free-7e4e374f621d9d1c37f37ff6555e013cdb3b03a0.tar.xz
gpt4free-7e4e374f621d9d1c37f37ff6555e013cdb3b03a0.tar.zst
gpt4free-7e4e374f621d9d1c37f37ff6555e013cdb3b03a0.zip
Diffstat (limited to 'g4f/gui/client/js/highlightjs-copy.min.js')
-rw-r--r--g4f/gui/client/js/highlightjs-copy.min.js1
1 files changed, 1 insertions, 0 deletions
diff --git a/g4f/gui/client/js/highlightjs-copy.min.js b/g4f/gui/client/js/highlightjs-copy.min.js
new file mode 100644
index 00000000..ac11d33e
--- /dev/null
+++ b/g4f/gui/client/js/highlightjs-copy.min.js
@@ -0,0 +1 @@
+class CopyButtonPlugin{constructor(options={}){self.hook=options.hook;self.callback=options.callback}"after:highlightElement"({el,text}){let button=Object.assign(document.createElement("button"),{innerHTML:"Copy",className:"hljs-copy-button"});button.dataset.copied=false;el.parentElement.classList.add("hljs-copy-wrapper");el.parentElement.appendChild(button);el.parentElement.style.setProperty("--hljs-theme-background",window.getComputedStyle(el).backgroundColor);button.onclick=function(){if(!navigator.clipboard)return;let newText=text;if(hook&&typeof hook==="function"){newText=hook(text,el)||text}navigator.clipboard.writeText(newText).then(function(){button.innerHTML="Copied!";button.dataset.copied=true;let alert=Object.assign(document.createElement("div"),{role:"status",className:"hljs-copy-alert",innerHTML:"Copied to clipboard"});el.parentElement.appendChild(alert);setTimeout(()=>{button.innerHTML="Copy";button.dataset.copied=false;el.parentElement.removeChild(alert);alert=null},2e3)}).then(function(){if(typeof callback==="function")return callback(newText,el)})}}} \ No newline at end of file