Rev 1 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
define("core_form/collapsesections",["exports","theme_boost/bootstrap/collapse","core/pending"],(function(_exports,_collapse,_pending){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}
/**
* Collapse or expand all form sections on clicking the expand all / collapse al link.
*
* @module core_form/collapsesections
* @copyright 2021 Bas Brands
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since 4.0
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,_collapse=_interopRequireDefault(_collapse),_pending=_interopRequireDefault(_pending);const SELECTORS_FORM=".mform",SELECTORS_FORMHEADER=".fheader",SELECTORS_FORMCONTAINER="fieldset > .fcontainer",CLASSES_SHOW="show",CLASSES_COLLAPSED="collapsed",CLASSES_HIDDEN="d-none";_exports.init=collapsesections=>{const pendingPromise=new _pending.default("core_form/collapsesections"),collapsemenu=document.querySelector(collapsesections),formParent=collapsemenu.closest(SELECTORS_FORM),formContainers=formParent.querySelectorAll(SELECTORS_FORMCONTAINER);[...formContainers].map((formContainer=>new _collapse.default(formContainer,{toggle:!1}))),collapsemenu.addEventListener("keydown",(e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),collapsemenu.click())}));let formcontainercount=0,expandedcount=0;formContainers.forEach((container=>{container.parentElement.classList.contains(CLASSES_HIDDEN)||formcontainercount++,container.classList.contai
ns(CLASSES_SHOW)&&expandedcount++})),formcontainercount===expandedcount&&(collapsemenu.classList.remove(CLASSES_COLLAPSED),collapsemenu.setAttribute("aria-expanded",!0)),collapsemenu.addEventListener("click",(()=>{if(collapsemenu.classList.contains(CLASSES_COLLAPSED)){const pendingPromiseToggle=new _pending.default("core_form/collapsesections:toggle-on");formContainers.forEach(((container,index,array)=>{_collapse.default.getInstance(container).show(),index===array.length-1&&pendingPromiseToggle.resolve()}))}else{const pendingPromiseToggle=new _pending.default("core_form/collapsesections:toggle-off");formContainers.forEach(((container,index,array)=>{_collapse.default.getInstance(container).hide(),index===array.length-1&&pendingPromiseToggle.resolve()}))}}));const collapseElementIds=[...formParent.querySelectorAll(SELECTORS_FORMHEADER)].map(((element,index)=>(element.id=element.id||"collapseElement-".concat(index),element.id)));collapsemenu.setAttribute("aria-controls",collapseElementIds.join(" "));[...documen
t.querySelectorAll(SELECTORS_FORMCONTAINER)].forEach((collapseTriggerEl=>{collapseTriggerEl.addEventListener("hidden.bs.collapse",(()=>{[...formContainers].every((container=>!container.classList.contains(CLASSES_SHOW)))&&(collapsemenu.classList.add(CLASSES_COLLAPSED),collapsemenu.setAttribute("aria-expanded",!1))})),collapseTriggerEl.addEventListener("shown.bs.collapse",(()=>{[...formContainers].every((container=>container.classList.contains(CLASSES_SHOW)))&&(collapsemenu.classList.remove(CLASSES_COLLAPSED),collapsemenu.setAttribute("aria-expanded",!0))}))})),pendingPromise.resolve()}}));
//# sourceMappingURL=collapsesections.min.js.map