import { FileTrieNode } from "../../util/fileTrie" import { FullSlug, resolveRelative, simplifySlug } from "../../util/path" import { ContentDetails } from "../../plugins/emitters/contentIndex" type MaybeHTMLElement = HTMLElement | undefined interface ParsedOptions { folderClickBehavior: "collapse" | "link" folderDefaultState: "collapsed" | "open" useSavedState: boolean sortFn: (a: FileTrieNode, b: FileTrieNode) => number filterFn: (node: FileTrieNode) => boolean mapFn: (node: FileTrieNode) => void order: "sort" | "filter" | "map"[] } type FolderState = { path: string collapsed: boolean } let currentExplorerState: Array function toggleExplorer(this: HTMLElement) { const explorers = document.querySelectorAll(".explorer") for (const explorer of explorers) { explorer.classList.toggle("collapsed") explorer.setAttribute( "aria-expanded", explorer.getAttribute("aria-expanded") === "true" ? "false" : "true", ) } } function toggleFolder(evt: MouseEvent) { evt.stopPropagation() const target = evt.target as MaybeHTMLElement if (!target) return // Check if target was svg icon or button const isSvg = target.nodeName === "svg" // corresponding