{"version":3,"file":"virtual_main.js","sources":["theme-3/virtual:init-settings","theme-3/virtual:theme","theme-3/discourse/components/custom-header-links.gjs","theme-3/discourse/initializers/discourse-custom-header-links.js","theme-3/virtual:main"],"sourcesContent":["import { registerSettings } from \"discourse/lib/theme-settings-store\";\n\nregisterSettings(3, {\n  \"custom_header_links\": [\n    {\n      \"url\": \"/c/wiki/13\",\n      \"text\": \"Wiki\",\n      \"view\": \"vdo\",\n      \"title\": \"Community-maintained examples and guides\",\n      \"target\": \"self\",\n      \"hide_on_scroll\": \"keep\"\n    },\n    {\n      \"url\": \"https://caddyserver.com/docs/\",\n      \"text\": \"Docs\",\n      \"view\": \"vdm\",\n      \"title\": \"Official Caddy documentation\",\n      \"target\": \"self\",\n      \"hide_on_scroll\": \"keep\"\n    },\n    {\n      \"url\": \"https://github.com/caddyserver/caddy\",\n      \"text\": \"GitHub\",\n      \"view\": \"vdo\",\n      \"title\": \"Caddy code\",\n      \"target\": \"self\",\n      \"hide_on_scroll\": \"remove\"\n    },\n    {\n      \"url\": \"https://caddy.community/guidelines\",\n      \"text\": \"Rules\",\n      \"view\": \"vdo\",\n      \"title\": \"Forum guidelines\",\n      \"target\": \"self\",\n      \"hide_on_scroll\": \"keep\"\n    }\n  ],\n  \"links_position\": \"right\"\n});\n","import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(3);\n\nexport function themePrefix(key) {\n  return `theme_translations.3.${key}`;\n}\n","import Component from \"@glimmer/component\";\nimport { dasherize } from \"@ember/string\";\nimport concatClass from \"discourse/helpers/concat-class\";\n\nfunction normalizeLocale(locale) {\n  return locale?.trim().toLowerCase().replace(/[-_]/g, \"_\");\n}\n\nexport default class CustomHeaderLinks extends Component {\n  get shouldShow() {\n    return settings.custom_header_links?.length > 0;\n  }\n\n  get links() {\n    return settings.custom_header_links.reduce((result, link) => {\n      const linkText = link.text;\n      const linkTitle = link.title;\n      const linkHref = link.url;\n      const target = link.target;\n      const hideOnScroll = link.hide_on_scroll;\n      const locale = link.locale;\n      const device = link.view;\n\n      const currentLocale = normalizeLocale(document.documentElement.lang);\n\n      if (!linkText || (locale && normalizeLocale(locale) !== currentLocale)) {\n        return result;\n      }\n\n      const linkClass = `${dasherize(linkText)}-custom-header-links`; // legacy name\n\n      const anchorAttributes = {\n        title: linkTitle,\n        href: linkHref,\n        target: target === \"self\" ? \"\" : \"_blank\",\n      };\n\n      result.push({\n        device: `headerLink--${device}`,\n        hideOnScroll: `headerLink--${hideOnScroll}`,\n        locale: locale ? `headerLink--${locale}` : null,\n        linkClass,\n        anchorAttributes,\n        linkText,\n      });\n\n      return result;\n    }, []);\n  }\n\n  <template>\n    {{#if this.shouldShow}}\n      <ul\n        class=\"custom-header-links\n          {{if @outletArgs.topicInfoVisible 'custom-header-links--hide-links'}}\"\n      >\n        {{#each this.links as |link|}}\n          <li\n            class={{concatClass\n              \"headerLink\"\n              link.device\n              link.locale\n              link.linkClass\n              link.hideOnScroll\n            }}\n          >\n            <a\n              title={{link.anchorAttributes.title}}\n              href={{link.anchorAttributes.href}}\n              target={{link.anchorAttributes.target}}\n            >\n              {{link.linkText}}\n            </a>\n          </li>\n        {{/each}}\n      </ul>\n    {{/if}}\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport CustomHeaderLinks from \"../components/custom-header-links\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"before-header-panel\", CustomHeaderLinks);\n});\n","import \"virtual:init-settings\";\n\nconst themeCompatModules = {};\nimport * as Mod1 from \"./discourse/components/custom-header-links\";\nthemeCompatModules[\"discourse/components/custom-header-links\"] = Mod1;\n\nimport * as Mod2 from \"./discourse/initializers/discourse-custom-header-links\";\nthemeCompatModules[\"discourse/initializers/discourse-custom-header-links\"] = Mod2;\n\nexport default themeCompatModules;\n"],"names":["registerSettings","custom_header_links","url","text","view","title","target","hide_on_scroll","links_position","settings","getObjectForTheme","normalizeLocale","locale","trim","toLowerCase","replace","CustomHeaderLinks","Component","shouldShow","length","links","reduce","result","link","linkText","linkTitle","linkHref","hideOnScroll","device","currentLocale","document","documentElement","lang","linkClass","dasherize","anchorAttributes","href","push","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","concatClass","isStrictMode","this","discourseCustomHeaderLinks","apiInitializer","api","renderInOutlet","themeCompatModules","Mod1","Mod2"],"mappings":";AAEAA,EAAiB,EAAG,CAClBC,oBAAuB,CACrB,CACEC,IAAO,aACPC,KAAQ,OACRC,KAAQ,MACRC,MAAS,2CACTC,OAAU,OACVC,eAAkB,QAEpB,CACEL,IAAO,gCACPC,KAAQ,OACRC,KAAQ,MACRC,MAAS,+BACTC,OAAU,OACVC,eAAkB,QAEpB,CACEL,IAAO,uCACPC,KAAQ,SACRC,KAAQ,MACRC,MAAS,aACTC,OAAU,OACVC,eAAkB,UAEpB,CACEL,IAAO,qCACPC,KAAQ,QACRC,KAAQ,MACRC,MAAS,mBACTC,OAAU,OACVC,eAAkB,SAGtBC,eAAkB;ACnCb,MAAMC,EAAWC,EAAkB;ACE1C,SAASC,EAAgBC,GACvB,OAAOA,GAAQC,OAAOC,cAAcC,QAAQ,QAAS,IACvD,CAEe,MAAMC,UAA0BC,EAC7C,cAAIC,GACF,OAAOT,EAASR,qBAAqBkB,OAAS,CAChD,CAEA,SAAIC,GACF,OAAOX,EAASR,oBAAoBoB,OAAO,CAACC,EAAQC,KAClD,MAAMC,EAAWD,EAAKpB,KAChBsB,EAAYF,EAAKlB,MACjBqB,EAAWH,EAAKrB,IAChBI,EAASiB,EAAKjB,OACdqB,EAAeJ,EAAKhB,eACpBK,EAASW,EAAKX,OACdgB,EAASL,EAAKnB,KAEdyB,EAAgBlB,EAAgBmB,SAASC,gBAAgBC;AAE/D,IAAKR,GAAaZ,GAAUD,EAAgBC,KAAYiB,EACtD,OAAOP;AAGT,MAAMW,EAAY,GAAGC,EAAUV,yBAEzBW,EAAmB,CACvB9B,MAAOoB,EACPW,KAAMV,EACNpB,OAAmB,SAAXA,EAAoB,GAAK;AAYnC,OATAgB,EAAOe,KAAK,CACVT,OAAQ,eAAeA,IACvBD,aAAc,eAAeA,IAC7Bf,OAAQA,EAAS,eAAeA,IAAW,KAC3CqB,YACAE,mBACAX,aAGKF,GACN,GACL,QAEAgB,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,8yBAAAC,WAAA,wDAAAC,MAAAA,KAAAC,GAAAC,cAAA,IA2BAC,KAAU,kDC1EZC,EAAeC,EAAgBC,IAC7BA,EAAIC,eAAe,sBAAuBlC;ACFvC,MAACmC,EAAqB,CAAA;AAE3BA,EAAmB,4CAA8CC,EAGjED,EAAmB,wDAA0DE;"}