hexo-theme-redefine
Version:
Redefine your writing with Hexo Theme Redefine.
2 lines • 1.39 kB
JavaScript
import{updateStyleStatus as e}from"../state/styleStatus.js";let t=!1;const getTocElements=()=>({toggleBar:document.querySelector(".page-aside-toggle"),postPageContainerDom:document.querySelector(".post-page-container"),toggleBarIcon:document.querySelector(".page-aside-toggle i"),mainContentDom:document.querySelector(".main-content")}),toggleClassName=(e,t,o)=>{e&&e.classList.toggle(t,o)},applyTocState=(e,t)=>{toggleClassName(e.toggleBarIcon,"fas",t),toggleClassName(e.toggleBarIcon,"fa-indent",t),toggleClassName(e.toggleBarIcon,"fa-outdent",!t),toggleClassName(e.postPageContainerDom,"show-toc",t),toggleClassName(e.mainContentDom,"has-toc",t)},showToggle=e=>{e.toggleBar&&(e.toggleBar.style.display="flex")},hideToggle=e=>{e.toggleBar&&(e.toggleBar.style.display="none")},handleToggleClick=t=>{if(!t.target.closest(".page-aside-toggle"))return;const o=getTocElements();if(!o.postPageContainerDom||!o.mainContentDom)return;const n=!o.postPageContainerDom.classList.contains("show-toc");e({isOpenPageAside:n}),showToggle(o),applyTocState(o,n)};export function initTocToggle({signal:e}={}){!t&&e&&(t=!0,document.addEventListener("click",handleToggleClick,{signal:e}));const o=getTocElements();return{pageAsideHandleOfTOC(e){o.postPageContainerDom&&o.mainContentDom?(showToggle(o),applyTocState(o,e)):hideToggle(o)},hideToggle(){hideToggle(o)}}}
//# sourceMappingURL=tocToggle.js.map