hexo-theme-redefine
Version:
Redefine your writing with Hexo Theme Redefine.
2 lines • 967 B
JavaScript
let t=!1;const handleTabClick=t=>{const e=t.target.closest(".tabs [role='tablist'] button[role='tab'][data-tab]");if(!e)return;t.stopPropagation();const a=e.closest(".tabs");if(!a)return;const i=e.dataset.tab;if(!i)return;const s=Array.from(a.querySelectorAll(".tab-content .tab-pane")),r=s.find((t=>t.id===i));if(!r)return;const n=e.closest("[role='tablist']");n&&n.querySelectorAll("button[role='tab']").forEach((t=>{t.setAttribute("aria-selected","false"),t.setAttribute("data-state","inactive"),t.setAttribute("tabindex","-1")})),e.setAttribute("aria-selected","true"),e.setAttribute("data-state","active"),e.setAttribute("tabindex","0"),s.forEach((t=>{t.setAttribute("data-state","inactive"),t.hidden=!0})),r.setAttribute("data-state","active"),r.hidden=!1};export default function initTabs({signal:e}={}){t||(t=!0,e?document.addEventListener("click",handleTabClick,{signal:e}):document.addEventListener("click",handleTabClick))}
//# sourceMappingURL=tabs.js.map