{"version":3,"sources":["HamburgerMenu.tsx"],"sourcesContent":["import { Component } from \"uix/components/Component.ts\";\nimport { NavigationItem } from \"./Header.tsx\";\nimport { ThemeSwitcher } from \"../theme-switcher/ThemeSwitcher.tsx\";\nimport { Icon } from \"../../elements/icon/Icon.tsx\";\nimport { BackgroundImage } from \"../../elements/background-image/BackgroundImage.tsx\";\n\n@template(function({mode, maxWidth, navigation, logo, label}) {\n\treturn <>\n\t\t<button id=\"selector\" class=\"hamburger-menu\">\n\t\t\t<Icon name=\"fa-bars\"/>\n\t\t</button>\n\t\t<div id=\"dropdown\" class=\"hamburger-dropdown\" style={{\"--hamburger-max-size\": maxWidth ?? \"18.5rem\"}}>\n\t\t\t<div class=\"header\">\n\t\t\t\t<a class=\"header-icon\" href=\"/\" title=\"Home\">\n\t\t\t\t\t<BackgroundImage\n\t\t\t\t\t\tdark={(typeof logo != \"string\" && \"dark\" in logo) ? logo.dark : logo}\n\t\t\t\t\t\tlight={(typeof logo != \"string\" && \"dark\" in logo) ? logo.light : logo}\n\t\t\t\t\t\tclass={\"logo\"}\n\t\t\t\t\t\tmode={mode ?? \"auto\"}/>\n\t\t\t\t\t{label ? <span class=\"label\">{label}</span> : undefined}\n\t\t\t\t</a>\n\t\t\t\t<button id=\"close\" class=\"close\">\n\t\t\t\t\t<Icon name=\"fa-times\"/>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"navigation-container\">\n\t\t\t\t{this.getNavigation(navigation)}\n\t\t\t</div>\n\t\t\t<div class=\"footer\">\n\t\t\t\t<a href=\"https://unyt.org\" target={\"_blank\"}>\n\t\t\t\t\t<Icon name=\"fa-square-up-right\"/> unyt.org\n\t\t\t\t</a>\n\t\t\t\t<ThemeSwitcher/>\n\t\t\t</div>\n\t\t</div>\n\t</>\n})\n@standalone\nexport class HamburgerMenu extends Component<{mode?: \"dark\" | \"light\" | \"auto\", maxWidth?: number | string, label?: HTMLElement | string, logo: string | URL | { dark: string | URL; light: string | URL; }, navigation?: Array<NavigationItem>}> {\n\t@id selector!: HTMLButtonElement;\n\t@id dropdown!: HTMLDivElement;\n\t@id close!: HTMLButtonElement;\n\n\tprotected override onDisplay(): void | Promise<void> {\n\t\tthis.close.addEventListener(\"click\", () => {\n\t\t\tthis.dropdown.hidePopover();\n\t\t});\n\t}\n\n\tprivate getNavigation(nav?: NavigationItem[]) {\n\t\tif (!nav || !nav.length)\n\t\t\treturn null;\n\t\tconst clone = (el?: HTMLElement | string) => el instanceof Element ? \n\t\t\tel.cloneNode(true) as HTMLElement :\n\t\t\tel;\n\t\treturn nav.map(({ title, link, children }) => {\n\t\t\tconst isLink = !(children && children.length);\n\t\t\treturn isLink ? <a href={link}>{clone(title)}</a> : <details>\n\t\t\t\t<summary>\n\t\t\t\t\t<div class=\"summary\">\n\t\t\t\t\t\t{clone(title)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<Icon name=\"fa-chevron-down\"/>\n\t\t\t\t</summary>\n\t\t\t\t<div class=\"content\">\n\t\t\t\t\t{children.map((item) =>\n\t\t\t\t\t\t(item instanceof Element) ? clone(item) : \n\t\t\t\t\t\t<a href={item.link}>\n\t\t\t\t\t\t\t{clone(item.title)}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</details>\n\t\t})\n\t}\n\tprotected override onCreate(): void | Promise<void> {\n\t\tthis.dropdown.setAttribute(\"popover\", \"\");\n\t\tthis.selector.setAttribute(\"popovertarget\", \"dropdown\");\n\t}\n}"],"names":["Component","selector","dropdown","close","ThemeSwitcher","Icon","BackgroundImage","template","mode","maxWidth","navigation","logo","label","button","id","class","name","div","style","a","href","title","dark","light","span","undefined","getNavigation","target","HamburgerMenu","standalone","onDisplay","addEventListener","hidePopover","nav","length","clone","el","Element","cloneNode","map","link","children","isLink","details","summary","item","onCreate","setAttribute"],"mappings":"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","sourceRoot":"/lib/unyt-components-0.0.17/components/header/","file":"HamburgerMenu.tsx"}