Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla5/media/com_menus/js/ |
| [Home] [System Details] [Kill Me] |
/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
(document => {
const isChecked = element => element.checked;
const getTreeElements = element =>
element.querySelectorAll('input[type="checkbox"]');
const getTreeRoot = element =>
element.parentElement.nextElementSibling;
const check = element => {
element.checked = true;
};
const uncheck = element => {
element.checked = false;
};
const disable = element => element.setAttribute('disabled',
'disabled');
const enable = element =>
element.removeAttribute('disabled');
const toggleState = (element, rootChecked) => {
if (rootChecked === true) {
disable(element);
check(element);
return;
}
enable(element);
uncheck(element);
};
const switchState = ({
target
}) => {
const root = getTreeRoot(target);
const selfChecked = isChecked(target);
if (root) {
getTreeElements(root).map(element => toggleState(element,
selfChecked));
}
};
document.querySelectorAll('.treeselect
input[type="checkbox"]').forEach(checkbox =>
checkbox.addEventListener('click', switchState));
})(document);