| Server IP : 54.36.91.62 / Your IP : 216.73.217.111 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/media/com_contenthistory/js/ |
Upload File : |
/**
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
(() => {
// This method is used to decode HTML entities
const decodeHtml = html => {
const textarea = document.createElement('textarea');
textarea.innerHTML = Joomla.sanitizeHtml(html);
return textarea.value;
};
const compare = (original, changed) => {
const display = changed.nextElementSibling;
const diff = window.Diff.diffWords(original.innerHTML, changed.innerHTML);
const fragment = document.createDocumentFragment();
diff.forEach(part => {
let color = '';
if (part.added) {
color = '#a6f3a6';
}
if (part.removed) {
color = '#f8cbcb';
}
// @todo use the tag MARK here not SPAN
const span = document.createElement('span');
span.style.backgroundColor = color;
span.style.borderRadius = '.2rem';
span.appendChild(document.createTextNode(decodeHtml(part.value)));
fragment.appendChild(span);
});
display.appendChild(fragment);
};
const onBoot = () => {
document.querySelectorAll('.original').forEach(fragment => compare(fragment, fragment.nextElementSibling));
// Cleanup
document.removeEventListener('DOMContentLoaded', onBoot);
};
document.addEventListener('DOMContentLoaded', onBoot);
})();