@uiw/copy-to-clipboard 1.0.14 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/copy-to-clipboard.cjs.js +2 -1
- package/dist/copy-to-clipboard.esm.js +2 -1
- package/dist/copy-to-clipboard.umd.js +2 -1
- package/dist/copy-to-clipboard.umd.js.map +1 -1
- package/dist/copy-to-clipboard.umd.min.js +2 -2
- package/dist/copy-to-clipboard.umd.min.js.map +1 -1
- package/dist/css/copy.css +49 -0
- package/dist/css/demo-preview.css +62 -0
- package/dist/css/main.css +258 -0
- package/dist/css/media.css +52 -0
- package/dist/css/sidebar.css +41 -0
- package/dist/css/tocbot.css +52 -0
- package/dist/index.html +83 -177
- package/dist/js/copy.js +40 -0
- package/dist/js/dark-mode.js +162 -0
- package/dist/js/demo-preview.js +31 -0
- package/dist/js/markdown-style.js +1006 -0
- package/dist/js/tocbot.js +128 -0
- package/dist/sitemap.txt +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
;(() => {
|
|
2
|
+
function debounce(fn, delay = 1000) {
|
|
3
|
+
let time = null
|
|
4
|
+
function _debounce(...args) {
|
|
5
|
+
if (time !== null) clearTimeout(time);
|
|
6
|
+
time = setTimeout(() => fn.apply(this, args), delay)
|
|
7
|
+
}
|
|
8
|
+
return _debounce
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const scrollSmoothOffset = 56;
|
|
12
|
+
function updateScroll() {
|
|
13
|
+
const heading = document.getElementById(decodeURIComponent(location.hash.replace(/^#/, '')));
|
|
14
|
+
if (heading) {
|
|
15
|
+
document.scrollingElement.scrollTop = heading.offsetTop - scrollSmoothOffset + 3;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function preventClickHandle(selector) {
|
|
20
|
+
const mdContainer = document.querySelectorAll(selector);
|
|
21
|
+
if (mdContainer && mdContainer.length > 0) {
|
|
22
|
+
mdContainer.forEach((anchor) => {
|
|
23
|
+
anchor.addEventListener('click', (e) => {
|
|
24
|
+
e.preventDefault();
|
|
25
|
+
location.hash = anchor.getAttribute('href');
|
|
26
|
+
updateScroll();
|
|
27
|
+
updateAnchor();
|
|
28
|
+
tocsCollapse()
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function tocButton() {
|
|
34
|
+
const tocElement = document.querySelector(`a.gototop`);
|
|
35
|
+
if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
|
|
36
|
+
tocElement.style.opacity = 0.5;
|
|
37
|
+
} else {
|
|
38
|
+
tocElement.style.opacity = 0;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function scrollListener(evn) {
|
|
42
|
+
const anchors = document.querySelectorAll('markdown-style a.anchor[href*="#"][aria-hidden]');
|
|
43
|
+
const scrollTop = evn && evn.target && evn.target.scrollingElement && evn.target.scrollingElement.scrollTop;
|
|
44
|
+
let element;
|
|
45
|
+
let index = 0;
|
|
46
|
+
anchors.forEach((anchor, idx) => {
|
|
47
|
+
if (anchor.offsetTop - scrollSmoothOffset < scrollTop || (idx === 0 && anchor.offsetTop > scrollTop)) {
|
|
48
|
+
element = anchor;
|
|
49
|
+
index = idx;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
tocButton();
|
|
53
|
+
if (element) {
|
|
54
|
+
const tocElement = document.querySelector(`a.tocs-link[href='${decodeURIComponent(element.hash)}']`);
|
|
55
|
+
if (tocElement) {
|
|
56
|
+
updateAnchor(tocElement)
|
|
57
|
+
tocsCollapse(tocElement);
|
|
58
|
+
} else {
|
|
59
|
+
const first = document.querySelector('a.tocs-link[href*="#"]');
|
|
60
|
+
if (index === 0 && first) {
|
|
61
|
+
updateAnchor(first);
|
|
62
|
+
tocsCollapse(first);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
document.addEventListener('scroll',debounce(scrollListener, 30), false);
|
|
69
|
+
|
|
70
|
+
function updateAnchor(element) {
|
|
71
|
+
const anchorContainer = document.querySelectorAll('.tocs aside.inner.toc a.tocs-link');
|
|
72
|
+
anchorContainer.forEach((tocanchor) => {
|
|
73
|
+
tocanchor.classList.remove('is-active-link');
|
|
74
|
+
});
|
|
75
|
+
const anchor = element || document.querySelector(`a.tocs-link[href='${decodeURIComponent(location.hash)}']`);
|
|
76
|
+
if (anchor) {
|
|
77
|
+
anchor.classList.add('is-active-link');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function tocsCollapse(element) {
|
|
82
|
+
const tocContainer = document.querySelector('nav.tocs > aside.inner.toc');
|
|
83
|
+
if (element) {
|
|
84
|
+
tocContainer.scrollTop = element.offsetTop;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const list = document.querySelectorAll('aside.toc ol.tocs-list');
|
|
88
|
+
list.forEach((item) => {
|
|
89
|
+
item.classList.remove('is-open');
|
|
90
|
+
});
|
|
91
|
+
if (element && element.nextElementSibling) {
|
|
92
|
+
element.nextElementSibling.classList.add('is-open');
|
|
93
|
+
}
|
|
94
|
+
isOpen(element);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function isOpen(element) {
|
|
98
|
+
if (!element) {
|
|
99
|
+
element = document.querySelector(`a.tocs-link[href='${decodeURIComponent(location.hash)}']`);
|
|
100
|
+
}
|
|
101
|
+
if (element && element.parentElement && element.parentElement.tagName !== 'ASIDE' && !element.parentElement.classList.contains('toc')) {
|
|
102
|
+
isOpen(element.parentElement);
|
|
103
|
+
if (element.parentElement.classList.contains('is-collapsed')) {
|
|
104
|
+
element.parentElement.classList.add('is-open');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
preventClickHandle('markdown-style a.anchor[href*="#"][aria-hidden]');
|
|
110
|
+
preventClickHandle('.tocs aside.inner.toc a.tocs-link');
|
|
111
|
+
|
|
112
|
+
function updateSiderBarScroll() {
|
|
113
|
+
const siderBar = document.querySelector(".sidebar[role*='navigation']");
|
|
114
|
+
const siderAnchor = document.querySelector(".sidebar[role*='navigation'] a[class*='active']");
|
|
115
|
+
if (siderAnchor) {
|
|
116
|
+
siderBar.scrollTop = siderAnchor.offsetTop;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const timer = setTimeout(() => {
|
|
121
|
+
updateSiderBarScroll();
|
|
122
|
+
updateScroll();
|
|
123
|
+
updateAnchor();
|
|
124
|
+
tocsCollapse()
|
|
125
|
+
clearTimeout(timer);
|
|
126
|
+
}, 100);
|
|
127
|
+
|
|
128
|
+
})();
|
package/dist/sitemap.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
https://uiwjs.github.io/copy-to-clipboard/index.html
|