mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-21 19:01:37 +00:00
57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
import Alpine from 'alpinejs';
|
|
|
|
Alpine.directive('clipboard', (el) => {
|
|
let text = el.textContent
|
|
|
|
el.addEventListener('click', () => {
|
|
navigator.clipboard.writeText(text)
|
|
})
|
|
})
|
|
|
|
window.Alpine = Alpine;
|
|
|
|
Alpine.start();
|
|
|
|
import htmx from "htmx.org";
|
|
window.htmx = htmx;
|
|
window.htmx.defineExtension('disable-element', {
|
|
onEvent: function (name, evt) {
|
|
let elt = evt.detail.elt;
|
|
let target = elt.getAttribute("hx-disable-element");
|
|
let targetElements = (target === "self") ? [elt] : document.querySelectorAll(target);
|
|
|
|
for (let i = 0; i < targetElements.length; i++) {
|
|
if (name === "htmx:beforeRequest" && targetElements[i]) {
|
|
targetElements[i].disabled = true;
|
|
} else if (name === "htmx:afterRequest" && targetElements[i]) {
|
|
targetElements[i].disabled = false;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
document.body.addEventListener('htmx:configRequest', (event) => {
|
|
event.detail.headers['X-CSRF-TOKEN'] = document.head.querySelector('meta[name="csrf-token"]').content;
|
|
if (window.getSelection) { window.getSelection().removeAllRanges(); }
|
|
else if (document.selection) { document.selection.empty(); }
|
|
});
|
|
document.body.addEventListener('htmx:beforeRequest', (event) => {
|
|
let targetElements = event.target.querySelectorAll('[hx-disable]');
|
|
for (let i = 0; i < targetElements.length; i++) {
|
|
targetElements[i].disabled = true;
|
|
}
|
|
});
|
|
document.body.addEventListener('htmx:afterRequest', (event) => {
|
|
let targetElements = event.target.querySelectorAll('[hx-disable]');
|
|
for (let i = 0; i < targetElements.length; i++) {
|
|
targetElements[i].disabled = false;
|
|
}
|
|
});
|
|
|
|
import toastr from 'toastr';
|
|
window.toastr = toastr;
|
|
window.toastr.options = {
|
|
"debug": false,
|
|
"positionClass": "toast-bottom-right",
|
|
"preventDuplicates": true,
|
|
}
|