{"version":3,"sources":["Footer.tsx"],"sourcesContent":["import { UIX } from \"uix\";\nimport { include } from \"uix/base/decorators.ts\";\nimport { Component } from \"uix/components/Component.ts\";\nimport { Icon } from \"../../elements/icon/Icon.tsx\";\nimport { ToggleSwitch } from \"../../elements/toggle-switch/ToggleSwitch.tsx\";\nimport { Selector, SelectorWrapper } from \"../../elements/selector/Selector.tsx\";\nimport { BackgroundImage } from \"../../elements/background-image/BackgroundImage.tsx\";\n\nexport type FooterOptions = {\n\tmode?: \"light\" | \"dark\" | \"auto\";\n\tlogo?: string | URL | { dark: string | URL, light: string | URL };\n\tcompact?: boolean;\n\tbackgroundColor?: string;\n\tdisableReload?: boolean;\n\tdisableLanguageSelector?: boolean;\n\tdisableModeToggle?: boolean;\n\ttermsLink?: string | URL;\n\tprivacyLink?: string | URL;\n\tlegalLink?: string | URL;\n}\n\n@template(function({mode, logo, disableLanguageSelector, disableModeToggle}) {\n\tif (logo === undefined)\n\t\tlogo = {\n\t\t\tdark: \"https://cdn.unyt.org/unyt-resources/logos/unyt/text-light-transparent-3.svg\",\n\t\t\tlight: \"https://cdn.unyt.org/unyt-resources/logos/unyt/text-dark-transparent-3.svg\"\n\t\t}\n\treturn <>\n\t\t<div class=\"header\">\n\t\t\t<BackgroundImage\n\t\t\t\t\tdark={(typeof logo != \"string\" && \"dark\" in logo) ? logo.dark : logo}\n\t\t\t\t\tlight={(typeof logo != \"string\" && \"dark\" in logo) ? logo.light : logo}\n\t\t\t\t\tclass={\"logo\"}\n\t\t\t\t\tmode={mode ?? \"auto\"}/>\n\t\t\t<a title='unyt.org' id=\"topAnchor\">\n\t\t\t\t<Icon name=\"fa-chevron-up\"/>\n\t\t\t</a>\n\t\t</div>\n\t\t<div class=\"content\">\n\t\t\t<div class=\"references\">\n\t\t\t\t{this.sitemapReferences.map(({topic, items}) => <section>\n\t\t\t\t\t<h1>{topic}</h1>\n\t\t\t\t\t{items.map(({name, link}) => <a href={link}>{name}</a>)}\n\t\t\t\t</section>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div class=\"settings\">\n\t\t\t\t{disableLanguageSelector ? null : <Selector id=\"languageSelector\" value={UIX?.language === \"de\" ? \"de\" : \"en\"} label={<Icon name=\"fa-globe\"/> as HTMLElement} hideChevron>\n\t\t\t\t\t<option value=\"en\">English</option>\n\t\t\t\t\t<option value=\"de\">Deutsch</option>\n\t\t\t\t</Selector>}\n\t\t\t\t{disableModeToggle ? null : <ToggleSwitch id=\"modeToggle\" label={this.sitemapStrings.darkMode} checked={\n\t\t\t\t\t((!mode || mode === \"auto\") ? (UIX?.Theme?.mode ?? \"dark\") : mode) === \"dark\"\n\t\t\t\t}/>}\n\t\t\t</div>\n\n\t\t</div>\n\t</>\n})\n@standalone\nclass Sitemap extends Component<{logo?: string | URL | { dark: string | URL, light: string | URL }, disableLanguageSelector?: boolean, disableModeToggle?: boolean, disableReload?: boolean, mode?: \"dark\" | \"light\" | \"auto\"}> {\n\t@id modeToggle!: ToggleSwitch;\n\t@include sitemapReferences!: Array<{topic: string, items: Array<{name: string, link: string | URL}>}>;\n\t@include sitemapStrings!: Record<string, string>;\n\t@id languageSelector?: SelectorWrapper;\n\t@id topAnchor!: HTMLAnchorElement;\n\n\tprotected override async onDisplay() {\n\t\tif (this.modeToggle)\n\t\t\tthis.handleModeChange();\n\t\tthis.topAnchor.onclick = () => this.onScrollTop();\n\t\tif (this.languageSelector) {\n\t\t\tconst UIX = await (await import(\"../../utils/load-uix.ts\")).loadUIX();\n\t\t\tawait this.languageSelector?.anchored;\n\t\t\tthis.languageSelector.onChange((lang) => {\n\t\t\t\tif (lang != UIX.language) {\n\t\t\t\t\tUIX.language = lang;\n\t\t\t\t\tif (!this.properties?.disableReload)\n\t\t\t\t\t\tglobalThis.location.reload();\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.languageSelector.value.val = UIX.language === \"de\" ? \"de\" : \"en\";\n\t\t}\n\n\t}\n\n\tpublic onScrollTop() {\n\t\tglobalThis.scrollTo({top: 0, behavior: \"smooth\"});\n\t}\n\n\tprivate async handleModeChange() {\n\t\tconst UIX = await (await import(\"../../utils/load-uix.ts\")).loadUIX();\n\n\t\tthis.modeToggle.onToggle((checked) => {\n\t\t\tUIX.Theme.setMode(checked ? \"dark\" : \"light\");\n\t\t})\n\t\teffect(() => {\n\t\t\tconst checked = val(UIX.Theme.$.mode) === \"dark\";\n\t\t\tthis.modeToggle.setChecked(checked);\n\t\t});\n\t}\n}\n@template(function({legalLink, termsLink, privacyLink, mode, backgroundColor}) {\n\treturn <div class=\"unyt-navbar\" stylesheet=\"./Navbar.css?\" data-mode={mode} id=\"navbar\" style={`--bg-color: ${backgroundColor ?? \"transparent\"}`}>\n\t\t<div class=\"copyright\">&copy; <span>{new Date().getFullYear()} unyt.org e.V.</span></div>\n\t\t<div class=\"tos\">\n\t\t\t<a href={termsLink ?? \"https://unyt.org/terms-of-service\"} target=\"_blank\">{this.navbarStrings.terms}</a>\n\t\t\t<a href={privacyLink ?? \"https://unyt.org/privacy\"} target=\"_blank\">{this.navbarStrings.privacy}</a>\n\t\t\t<a href={legalLink ?? \"https://unyt.org/legal-notice\"} target=\"_blank\">{this.navbarStrings.about}</a>\n\t\t</div>\n\t\t<div class=\"references\">\n\t\t\t{this.navbarReferences.map(({name, link, icon}) => <a title={name} href={link}>\n\t\t\t\t<Icon name={icon}/>\n\t\t\t</a>)}\n\t\t</div>\n\t</div>\n})\n@standalone\nclass Navbar extends Component<{\n\tlegalLink?: string | URL,\n\ttermsLink?: string | URL,\n\tprivacyLink?: string | URL,\n\tmode?: \"auto\" | \"light\" | \"dark\",\n\tbackgroundColor?: string}> {\n\t@include navbarReferences!: Array<{name: string, link: URL, icon: string}>;\n\t@include navbarStrings!: Record<string, string>;\n}\n\n@template(function({termsLink, privacyLink, legalLink, logo, disableLanguageSelector, disableModeToggle, backgroundColor, disableReload, compact, mode}) {\n\treturn <shadow-root>\n\t\t<link rel=\"stylesheet\" href={\"../../theme/unyt.css\"}/>\n\t\t<div id=\"footer\" data-mode={mode ?? \"auto\"}>\n\t\t\t{compact ? null : <Sitemap \n\t\t\t\tid=\"sitemap\"\n\t\t\t\tlogo={logo}\n\t\t\t\tdisableLanguageSelector={disableLanguageSelector ?? false}\n\t\t\t\tdisableModeToggle={disableModeToggle ?? false}\n\t\t\t\tdisableReload={disableReload ?? false}\n\t\t\t\tmode={mode ?? \"auto\"}/>}\n\t\t\t<Navbar \n\t\t\t\tid=\"navbar\"\n\t\t\t\tmode={mode ?? \"auto\"}\n\t\t\t\tbackgroundColor={backgroundColor}\n\t\t\t\ttermsLink={termsLink ?? \"https://unyt.org/terms-of-service\"}\n\t\t\t\tprivacyLink={privacyLink ?? \"https://unyt.org/privacy\"}\n\t\t\t\tlegalLink={legalLink ?? \"https://unyt.org/legal-notice\"} />\n\t\t</div>\n\t</shadow-root>\n})\n@standalone({inheritedFields: [\"properties\"]})\nexport class Footer extends Component<FooterOptions> {\n\t@id sitemap!: Sitemap;\n\t@id navbar!: Navbar;\n\n\tpublic get mode() {\n\t\treturn this.sitemap.dataset.mode as \"dark\" | \"light\" | \"auto\";\n\t}\n\tpublic setMode(mode: \"dark\" | \"light\" | \"auto\") {\n\t\tthis.sitemap.dataset.mode = mode;\n\t\tif (this.navbar)\n\t\t\tthis.navbar.dataset.mode = mode\n\t}\n}"],"names":["Component","modeToggle","sitemapReferences","sitemapStrings","languageSelector","topAnchor","navbarReferences","navbarStrings","sitemap","navbar","UIX","include","Icon","ToggleSwitch","Selector","BackgroundImage","template","mode","logo","disableLanguageSelector","disableModeToggle","undefined","dark","light","div","class","a","title","id","name","map","topic","items","section","h1","link","href","value","language","label","hideChevron","option","darkMode","checked","Theme","Sitemap","standalone","onDisplay","handleModeChange","onclick","onScrollTop","loadUIX","anchored","onChange","lang","properties","disableReload","globalThis","location","reload","val","scrollTo","top","behavior","onToggle","setMode","effect","$","setChecked","legalLink","termsLink","privacyLink","backgroundColor","stylesheet","data-mode","style","span","Date","getFullYear","target","terms","privacy","about","icon","Navbar","compact","shadow-root","rel","inheritedFields","Footer","dataset"],"mappings":"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","sourceRoot":"/lib/unyt-components-0.0.17/components/footer/","file":"Footer.tsx"}