aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/resources/dokka/scripts/clipboard.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/base/src/main/resources/dokka/scripts/clipboard.js')
-rw-r--r--plugins/base/src/main/resources/dokka/scripts/clipboard.js56
1 files changed, 0 insertions, 56 deletions
diff --git a/plugins/base/src/main/resources/dokka/scripts/clipboard.js b/plugins/base/src/main/resources/dokka/scripts/clipboard.js
deleted file mode 100644
index 7a4f33c5..00000000
--- a/plugins/base/src/main/resources/dokka/scripts/clipboard.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-window.addEventListener('load', () => {
- document.querySelectorAll('span.copy-icon').forEach(element => {
- element.addEventListener('click', (el) => copyElementsContentToClipboard(element));
- })
-
- document.querySelectorAll('span.anchor-icon').forEach(element => {
- element.addEventListener('click', (el) => {
- if(element.hasAttribute('pointing-to')){
- const location = hrefWithoutCurrentlyUsedAnchor() + '#' + element.getAttribute('pointing-to')
- copyTextToClipboard(element, location)
- }
- });
- })
-})
-
-const copyElementsContentToClipboard = (element) => {
- const selection = window.getSelection();
- const range = document.createRange();
- range.selectNodeContents(element.parentNode.parentNode);
- selection.removeAllRanges();
- selection.addRange(range);
-
- copyAndShowPopup(element, () => selection.removeAllRanges())
-}
-
-const copyTextToClipboard = (element, text) => {
- var textarea = document.createElement("textarea");
- textarea.textContent = text;
- textarea.style.position = "fixed";
- document.body.appendChild(textarea);
- textarea.select();
-
- copyAndShowPopup(element, () => document.body.removeChild(textarea))
-}
-
-const copyAndShowPopup = (element, after) => {
- try {
- document.execCommand('copy');
- element.nextElementSibling.classList.add('active-popup');
- setTimeout(() => {
- element.nextElementSibling.classList.remove('active-popup');
- }, 1200);
- } catch (e) {
- console.error('Failed to write to clipboard:', e)
- }
- finally {
- if(after) after()
- }
-}
-
-const hrefWithoutCurrentlyUsedAnchor = () => window.location.href.split('#')[0]
-