mirror of https://github.com/gohugoio/hugo
37 lines
744 B
JavaScript
37 lines
744 B
JavaScript
'use strict';
|
|
|
|
export function registerMagics(Alpine) {
|
|
Alpine.magic('copy', (currentEl) => {
|
|
return function (el) {
|
|
if (!el) {
|
|
el = currentEl;
|
|
}
|
|
|
|
// Select the element to copy.
|
|
let range = document.createRange();
|
|
range.selectNode(el);
|
|
window.getSelection().removeAllRanges();
|
|
window.getSelection().addRange(range);
|
|
|
|
// Remove the selection after some time.
|
|
setTimeout(() => {
|
|
window.getSelection().removeAllRanges();
|
|
}, 500);
|
|
|
|
// Trim whitespace.
|
|
let text = el.textContent.trim();
|
|
|
|
navigator.clipboard.writeText(text);
|
|
};
|
|
});
|
|
|
|
Alpine.magic('isScrollX', (currentEl) => {
|
|
return function (el) {
|
|
if (!el) {
|
|
el = currentEl;
|
|
}
|
|
return el.clientWidth < el.scrollWidth;
|
|
};
|
|
});
|
|
}
|