UNPKG

basb-cli

Version:
3 lines (2 loc) 1.54 kB
import{i as t,e,c as n,p as o,k as s}from"../index.min.js";import{t as i}from"./throttle.min.js";import{d as a,a as l}from"./echarts.min.js";import"../libs/resolve-pathname/index.js";function r({level:t,content:n,id:o}){const i=e("span",n,{class:"underline-target"}),a=e("li",i,{class:["level-"+t,"underline-through"].join(" "),tabindex:0,"data-target-headline":o});return a.onkeydown=s(a),a}const d=document.getElementById("article-container");class c extends HTMLElement{rootNode=null;constructor(){super(),t("./dist/chunks/catalog.min.css"),this.rootNode=e("ol"),this.appendChild(this.rootNode),this.#t()}#e(){const t=this.getBoundingClientRect(),{top:e,bottom:n}=t,o=e<=2,s=window.innerHeight-n<=2;this.classList.toggle("top-stuck",o),this.classList.toggle("bottom-stuck",s)}#t(){const t=this.#e.bind(this);"onscrollend"in window?window.addEventListener("scrollend",t):window.addEventListener("scroll",a(t,300)),this.rootNode.addEventListener("click",i((t=>{const e=t.target.getAttribute("data-target-headline");if(!e)return;const o=document.getElementById(e);n(o)}),200)),window.addEventListener("hashchange",(()=>{o.isIn.article()||d.classList.remove("with-catalog")})),l.on("catalog-toggle",(()=>{d.classList.toggle("with-catalog")&&this.#e()})),l.on("article-rendered",this.render.bind(this))}async render(t){const e=document.createDocumentFragment();t.map(r).forEach((t=>e.appendChild(t))),this.rootNode.innerHTML="",this.rootNode.appendChild(e)}}customElements.define("article-catalog",c); //# sourceMappingURL=catalog.min.js.map