@flexilla/utilities
Version:
Utilities package for flexilla library
2 lines (1 loc) • 1.59 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./dom-utilities.cjs"),r=require("./selector.cjs"),v=c=>{const{trigger:s,targets:i,onToggle:n}=c,e=r.$getEl(s);let t=!1;(()=>{for(const a of i){const d=r.$getEl(a.element);f.setAttributes(d,a.attributes.initial),t=!0}})(),e.addEventListener("click",()=>{for(const a of i){const d=r.$getEl(a.element),l=t?a.attributes.to:a.attributes.initial;f.setAttributes(d,l)}t=!t,n==null||n({isExpanded:!t}),e.ariaExpanded=t?"false":"true"})},E=({navbarElement:c,onToggle:s})=>{const i=typeof c=="string"?r.$(c):c;if(!(i instanceof HTMLElement))return;const n=i.getAttribute("id"),e=r.$(`[data-nav-trigger][data-toggle-nav=${n}]`),t=r.$(`[data-nav-overlay][data-navbar-id=${n}]`),o=()=>{const l=i.dataset.state||"close",u=l==="open"?"close":"open";i.setAttribute("data-state",u),e&&(e.ariaExpanded=l==="open"?"false":"true"),t&&(t.ariaHidden="true",t.setAttribute("data-state",u)),s==null||s({isExpanded:u==="open"})};e&&e.addEventListener("click",o);const a=()=>{i.setAttribute("data-state","close"),e==null||e.setAttribute("aria-expanded","false"),t&&t.setAttribute("data-state","close"),s==null||s({isExpanded:!1})};return i.addEventListener("click",a),t instanceof HTMLElement&&!t.hasAttribute("data-static-overlay")&&t.addEventListener("click",a),{cleanup:()=>{t instanceof HTMLElement&&!t.hasAttribute("data-static-overlay")&&(i.removeEventListener("click",a),e&&e.removeEventListener("click",o),t.removeEventListener("click",a))},close:a,toggle:o}};exports.actionToggler=v;exports.toggleNavbar=E;