{"version":3,"file":"main.CUcRp2.js","sources":["theme-43/virtual:theme","theme-43/discourse/components/user-menu/custom-tab.gjs","theme-43/discourse/api-initializers/initialize-user-menu-tab.js","theme-43/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(43);\n\nexport function themePrefix(key) {\n  return `theme_translations.43.${key}`;\n}\n","/* eslint-disable ember/no-jquery */\nimport Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport $ from \"jquery\";\nimport DButton from \"discourse/components/d-button\";\n\nfunction parseTabSettings(settings) {\n  return settings.split(\"|\").map((i) => {\n    const seg = $.map(i.split(\",\"), $.trim),\n      icon = seg[0],\n      content = seg[1],\n      href = seg[2],\n      groups = seg[3]\n        ? seg[3].split(\"-\").map((group) => group.trim().toLowerCase())\n        : null;\n    return { icon, content, href, groups };\n  });\n}\n\nexport default class UserMenuCustomTab extends Component {\n  @service currentUser;\n\n  get items() {\n    const items = [];\n    const currentUserGroups = this.currentUser.groups.map((x) =>\n      x[\"name\"].toLowerCase()\n    );\n\n    this.#defaultItems.forEach((button) => {\n      if (button.content !== undefined) {\n        if (\n          !this.currentUser.admin &&\n          button.groups &&\n          !currentUserGroups.some((r) => button.groups.includes(r))\n        ) {\n          return;\n        }\n\n        items.push(button);\n      }\n    });\n\n    this.#modButtons?.forEach((button) => {\n      if (button.content !== undefined) {\n        items.push(button);\n      }\n    });\n\n    this.#adminButtons?.forEach((button) => {\n      if (button.content !== undefined) {\n        items.push(button);\n      }\n    });\n\n    return items;\n  }\n\n  get #defaultItems() {\n    return parseTabSettings(settings.custom_tab_links);\n  }\n\n  get #modButtons() {\n    if (this.currentUser.moderator) {\n      return parseTabSettings(settings.moderator_only_tab_links);\n    }\n  }\n\n  get #adminButtons() {\n    if (this.currentUser.admin) {\n      return parseTabSettings(settings.admin_only_tab_links);\n    }\n  }\n\n  <template>\n    <ul class=\"user-menu-custom-tab\">\n      {{#each this.items as |item|}}\n        <li>\n          <DButton\n            class=\"btn-flat\"\n            @href={{item.href}}\n            @icon={{item.icon}}\n            @translatedLabel={{item.content}}\n          />\n        </li>\n      {{/each}}\n    </ul>\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport { i18n } from \"discourse-i18n\";\nimport UserMenuCustomTab from \"../components/user-menu/custom-tab\";\n\nexport default apiInitializer((api) => {\n  api.registerUserMenuTab((UserMenuTab) => {\n    return class extends UserMenuTab {\n      id = \"user-menu-tab-custom\";\n      panelComponent = UserMenuCustomTab;\n      icon = settings.custom_tab_icon;\n      linkWhenActive = settings.custom_tab_url;\n\n      get title() {\n        return i18n(themePrefix(\"custom_user_tab_title\"));\n      }\n    };\n  });\n});\n","import * as Mod1 from \"./discourse/api-initializers/initialize-user-menu-tab\";\nimport * as Mod2 from \"./discourse/components/user-menu/custom-tab\";\nconst compatModules = {\n  \"discourse/api-initializers/initialize-user-menu-tab\": Mod1,\n  \"discourse/components/user-menu/custom-tab\": Mod2,\n};\nexport default compatModules;\n"],"names":["settings","getObjectForTheme","parseTabSettings","split","map","i","seg","$","trim","icon","content","href","groups","group","toLowerCase","UserMenuCustomTab","Component","dt7948","g","this","prototype","service","currentUser","items","currentUserGroups","x","defaultItems","forEach","button","undefined","admin","some","r","includes","push","modButtons","adminButtons","custom_tab_links","moderator","moderator_only_tab_links","admin_only_tab_links","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","DButton","isStrictMode","initializeUserMenuTab","apiInitializer","api","registerUserMenuTab","UserMenuTab","panelComponent","custom_tab_icon","linkWhenActive","custom_tab_url","title","i18n","compatModules","Mod2"],"mappings":"4lBAEaA,EAAWC,EAAkB;ACI1C,SAASC,EAAiBF,GACxB,OAAOA,EAASG,MAAM,KAAKC,IAAKC,IAC9B,MAAMC,EAAMC,EAAEH,IAAIC,EAAEF,MAAM,KAAMI,EAAEC;AAOlC,MAAO,CAAEC,KANAH,EAAI,GAMEI,QALHJ,EAAI,GAKQK,KAJfL,EAAI,GAIiBM,OAHnBN,EAAI,GACTA,EAAI,GAAGH,MAAM,KAAKC,IAAKS,GAAUA,EAAML,OAAOM,eAC9C,OAGV,CAEe,MAAMC,UAA0BC,SAAAC,OAAAC,EAAAC,KAAAC,yBAC5CC,GAAA,CAAAC,QAAAL,OAAAZ,EAAAc,KAAA;AAED,SAAII,GACF,MAAMA,EAAQ,GACRC,EAAoBL,KAAKG,YAAYV,OAAOR,IAAKqB,GACrDA,EAAE,KAAQX;AA6BZ,OA1BAK,MAAKO,EAAcC,QAASC,IAC1B,QAAuBC,IAAnBD,EAAOlB,QAAuB,CAChC,IACGS,KAAKG,YAAYQ,OAClBF,EAAOhB,SACNY,EAAkBO,KAAMC,GAAMJ,EAAOhB,OAAOqB,SAASD,IAEtD;AAGFT,EAAMW,KAAKN,EACb,IAGFT,MAAKgB,GAAaR,QAASC,SACFC,IAAnBD,EAAOlB,SACTa,EAAMW,KAAKN,KAIfT,MAAKiB,GAAeT,QAASC,SACJC,IAAnBD,EAAOlB,SACTa,EAAMW,KAAKN,KAIRL,CACT,CAEA,KAAIG,GACF,OAAOxB,EAAiBF,EAASqC,iBACnC,CAEA,KAAIF,GACF,GAAIhB,KAAKG,YAAYgB,UACnB,OAAOpC,EAAiBF,EAASuC,yBAErC,CAEA,KAAIH,GACF,GAAIjB,KAAKG,YAAYQ,MACnB,OAAO5B,EAAiBF,EAASwC,qBAErC,QAEAC,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,wXAAAC,WAAA,4BAAAC,MAAAA,KAAAC,GAAAC,cAAA,IAaA7B,KAAU,kDClFZ8B,EAAeC,EAAgBC,IAC7BA,EAAIC,oBAAqBC,GAChB,cAAcA,EACnBV,GAAK;AACLW,eAAiBvC;AACjBN,KAAOT,EAASuD;AAChBC,eAAiBxD,EAASyD;AAE1B,SAAIC,GACF,OAAOC,EFRN,yBEQuB,0BAC1B;ACZD,MAACC,EAAgB,CACpB,gGACA,4CAA6CC;"}