{"version":3,"file":"virtual_main.js","sources":["theme-21/virtual:init-settings","theme-21/virtual:theme","theme-21/discourse/lib/isValidUrl.js","theme-21/discourse/initializers/initialize-for-header-icon-links.gjs","theme-21/virtual:main"],"sourcesContent":["import { registerSettings } from \"discourse/lib/theme-settings-store\";\n\nregisterSettings(21, {\n  \"add_whitespace\": false,\n  \"svg_icons\": \"far-calendar|trophy|house\",\n  \"header_links\": [\n    {\n      \"url\": \"/community/forums\",\n      \"icon\": \"house\",\n      \"view\": \"vdm\",\n      \"title\": \"Home\",\n      \"target\": \"self\"\n    },\n    {\n      \"url\": \"/community/forums/c/user-groups/11\",\n      \"icon\": \"far-calendar\",\n      \"view\": \"vdm\",\n      \"title\": \"User Groups & Events\",\n      \"target\": \"self\"\n    },\n    {\n      \"url\": \"/community/forums/t/launching-leaderboards/278560\",\n      \"icon\": \"trophy\",\n      \"view\": \"vdm\",\n      \"title\": \"Leaderboards\",\n      \"target\": \"self\"\n    }\n  ]\n});\n","import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(21);\n\nexport function themePrefix(key) {\n  return `theme_translations.21.${key}`;\n}\n","export default function isValidUrl(string) {\n  try {\n    const url = new URL(string);\n\n    if (url) {\n      return true;\n    }\n  } catch {\n    return false;\n  }\n\n  return true;\n}\n","import { dasherize } from \"@ember/string\";\nimport concatClass from \"discourse/helpers/concat-class\";\nimport icon from \"discourse/helpers/d-icon\";\nimport { withPluginApi } from \"discourse/lib/plugin-api\";\nimport { escapeExpression } from \"discourse/lib/utilities\";\nimport isValidUrl from \"../lib/isValidUrl\";\n\nfunction buildIcon(iconNameOrImageUrl, title) {\n  if (isValidUrl(iconNameOrImageUrl)) {\n    return <template>\n      <img src={{iconNameOrImageUrl}} aria-hidden=\"true\" />\n      <span class=\"sr-only\">{{title}}</span>\n    </template>;\n  } else {\n    return <template>{{icon iconNameOrImageUrl label=title}}</template>;\n  }\n}\n\nexport default {\n  name: \"header-icon-links\",\n  initialize() {\n    withPluginApi(\"0.8.41\", (api) => {\n      try {\n        const site = api.container.lookup(\"service:site\");\n        let links = settings.header_links;\n        if (site.mobileView) {\n          links = links.filter(\n            (link) => link.view === \"vmo\" || link.view === \"vdm\"\n          );\n        } else {\n          links = links.filter(\n            (link) => link.view === \"vdo\" || link.view === \"vdm\"\n          );\n        }\n\n        links.forEach((link, index) => {\n          const iconTemplate = buildIcon(link.icon, link.title);\n          const className = `header-icon-${dasherize(link.title)}`;\n          const target = link.target === \"blank\" ? \"_blank\" : \"\";\n          const rel = link.target ? \"noopener\" : \"\";\n          const isLastLink =\n            index === links.length - 1 ? \"last-custom-icon\" : \"\";\n\n          let style = \"\";\n          if (link.width) {\n            style = `width: ${escapeExpression(link.width)}px`;\n          }\n\n          const iconComponent = <template>\n            <li\n              class={{concatClass\n                \"custom-header-icon-link\"\n                className\n                link.view\n                isLastLink\n              }}\n            >\n              <a\n                class=\"btn no-text icon btn-flat\"\n                href={{link.url}}\n                title={{link.title}}\n                target={{target}}\n                rel={{rel}}\n                style={{style}}\n              >\n                {{iconTemplate}}\n              </a>\n            </li>\n          </template>;\n\n          const beforeIcon = [\"chat\", \"search\", \"hamburger\", \"user-menu\"];\n\n          api.headerIcons.add(link.title, iconComponent, {\n            before: beforeIcon,\n          });\n        });\n      } catch (error) {\n        // eslint-disable-next-line no-console\n        console.error(\n          error,\n          \"There's an issue in the header icon links component. Check if your settings are entered correctly\"\n        );\n      }\n    });\n  },\n};\n","import \"virtual:init-settings\";\n\nconst themeCompatModules = {};\nimport * as Mod1 from \"./discourse/initializers/initialize-for-header-icon-links\";\nthemeCompatModules[\"discourse/initializers/initialize-for-header-icon-links\"] = Mod1;\n\nimport * as Mod2 from \"./discourse/lib/isValidUrl\";\nthemeCompatModules[\"discourse/lib/isValidUrl\"] = Mod2;\n\nexport default themeCompatModules;\n"],"names":["registerSettings","add_whitespace","svg_icons","header_links","url","icon","view","title","target","settings","getObjectForTheme","isValidUrl","string","URL","initializeForHeaderIconLinks","name","initialize","withPluginApi","api","site","container","lookup","links","mobileView","filter","link","forEach","index","iconTemplate","iconNameOrImageUrl","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","isStrictMode","templateOnly","className","dasherize","rel","isLastLink","length","style","width","escapeExpression","iconComponent","concatClass","headerIcons","add","before","error","console","themeCompatModules","Mod1","Mod2"],"mappings":";AAEAA,EAAiB,GAAI,CACnBC,gBAAkB,EAClBC,UAAa,4BACbC,aAAgB,CACd,CACEC,IAAO,oBACPC,KAAQ,QACRC,KAAQ,MACRC,MAAS,OACTC,OAAU,QAEZ,CACEJ,IAAO,qCACPC,KAAQ,eACRC,KAAQ,MACRC,MAAS,uBACTC,OAAU,QAEZ,CACEJ,IAAO,oDACPC,KAAQ,SACRC,KAAQ,MACRC,MAAS,eACTC,OAAU;ACvBT,MAAMC,EAAWC,EAAkB;ACF3B,SAASC,EAAWC,GACjC,IAGE,GAFY,IAAIC,IAAID,GAGlB,OAAO,CAEX,CAAE,MACA,OAAO,CACT,CAEA,OAAO,CACT;ACMA,IAAAE,EAAe,CACbC,KAAM,oBACNC,UAAAA,GACEC,EAAc,SAAWC,IACvB,IACE,MAAMC,EAAOD,EAAIE,UAAUC,OAAO;AAClC,IAAIC,EAAQb,EAASN;AAEnBmB,EADEH,EAAKI,WACCD,EAAME,OACXC,GAAuB,QAAdA,EAAKnB,MAAgC,QAAdmB,EAAKnB,MAGhCgB,EAAME,OACXC,GAAuB,QAAdA,EAAKnB,MAAgC,QAAdmB,EAAKnB,MAI1CgB,EAAMI,QAAQ,CAACD,EAAME,KACnB,MAAMC,GA7BGC,EA6BsBJ,EAAKpB,KA7BPE,EA6BakB,EAAKlB,MA5BnDI,EAAWkB,GACbC,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,8KAAAC,WAAA,wEAAAC,MAAAA,IAAA,CAAAN,EAAAtB,GAAA6B,cAAA,IAAAC,KAKAP,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,gEAAAC,WAAA,wEAAAC,MAAAA,IAAA,CAAA9B,EAAAwB,EAAAtB,GAAA6B,cAAA,IAAAC;AAPJ,IAAmBR,EAAoBtB;AA8B7B,MAAM+B,EAAY,eAAeC,EAAUd,EAAKlB,SAC1CC,EAAyB,UAAhBiB,EAAKjB,OAAqB,SAAW,GAC9CgC,EAAMf,EAAKjB,OAAS,WAAa,GACjCiC,EACJd,IAAUL,EAAMoB,OAAS,EAAI,mBAAqB;AAEpD,IAAIC,EAAQ;AACRlB,EAAKmB,QACPD,EAAQ,UAAUE,EAAiBpB,EAAKmB;AAG1C,MAAME,EAAAhB,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,0aAAAC,WAAA,wEAAAC,MAAAA,IAAA,CAAAY,EAAAT,EAAAb,EAAAgB,EAAAjC,EAAAgC,EAAAG,EAAAf,GAAAQ,cAAA,IAAAC;AAwBNnB,EAAI8B,YAAYC,IAAIxB,EAAKlB,MAAOuC,EAAe,CAC7CI,OAHiB,CAAC,OAAQ,SAAU,YAAa,gBAMvD,CAAE,MAAOC,GAEPC,QAAQD,MACNA,EACA,oGAEJ,GAEJ;AClFG,MAACE,EAAqB,CAAA;AAE3BA,EAAmB,2DAA6DC,EAGhFD,EAAmB,4BAA8BE;"}