{"version":3,"file":"main.DAZS5m.js","sources":["theme-20/virtual:theme","theme-20/discourse/components/group-alert.gjs","theme-20/discourse/connectors/below-site-header/group-alert.gjs","theme-20/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(20);\n\nexport function themePrefix(key) {\n  return `theme_translations.20.${key}`;\n}\n","/* eslint-disable ember/no-classic-components */\nimport Component from \"@ember/component\";\nimport { concat } from \"@ember/helper\";\nimport { computed } from \"@ember/object\";\nimport { htmlSafe } from \"@ember/template\";\nimport { tagName } from \"@ember-decorators/component\";\nimport concatClass from \"discourse/helpers/concat-class\";\n\n@tagName(\"\")\nexport default class GroupAlert extends Component {\n  @computed\n  get filteredBanners() {\n    let parsedSetting = JSON.parse(settings.banner_wizard);\n\n    let userGroups = this.currentUser\n      ? this.currentUser.groups\n      : [{ name: \"anon\" }]; // if logged out, set an \"anon\" group\n\n    let joinedGroups = userGroups.map(function (group) {\n      return group.name;\n    });\n\n    // turn comma separated list into array and remove whitespace\n    function splitTrim(array) {\n      return array?.split(\",\").map(function (string) {\n        return string.trim();\n      });\n    }\n\n    // check if there's a single match between two arrays of strings\n    function hasMatch(groups, matchingGroups) {\n      return groups.filter((element) => matchingGroups?.includes(element))\n        .length;\n    }\n\n    let filteredBanners = [];\n\n    // check each banner's group settings against user's group membership\n    parsedSetting.forEach((banner) => {\n      if (banner.contents) {\n        let allowedGroups = splitTrim(banner.show_for_groups);\n        let hiddenGroups = splitTrim(banner.hide_for_groups);\n\n        if (\n          hasMatch(joinedGroups, allowedGroups) &&\n          !hasMatch(joinedGroups, hiddenGroups)\n        ) {\n          filteredBanners.push(banner);\n        }\n      }\n    });\n\n    return filteredBanners;\n  }\n\n  <template>\n    {{#each this.filteredBanners as |fb|}}\n      <div class={{concatClass \"wrap\" fb.name}}>\n        <div\n          class=\"alert alert-custom\"\n          style={{htmlSafe\n            (concat\n              (concat \"background-color:\" fb.background \";\")\n              (concat \"color: \" fb.text_color \";\")\n            )\n          }}\n        >\n          {{htmlSafe fb.contents}}\n        </div>\n      </div>\n    {{/each}}\n  </template>\n}\n","/* eslint-disable ember/no-classic-components, ember/require-tagless-components */\nimport Component from \"@ember/component\";\nimport { classNames } from \"@ember-decorators/component\";\nimport GroupAlert from \"../../components/group-alert\";\n\n@classNames(\"below-site-header-outlet\", \"group-alert\")\nexport default class GroupAlertConnector extends Component {\n  <template><GroupAlert /></template>\n}\n","import * as Mod1 from \"./discourse/components/group-alert\";\nimport * as Mod2 from \"./discourse/connectors/below-site-header/group-alert.gjs\";\nconst compatModules = {\n  \"discourse/components/group-alert\": Mod1,\n  \"discourse/connectors/below-site-header/group-alert\": Mod2,\n};\nexport { compatModules };\nexport default compatModules;\n"],"names":["settings","getObjectForTheme","GroupAlert","dt7948","c","Component","filteredBanners","parsedSetting","JSON","parse","banner_wizard","joinedGroups","this","currentUser","groups","name","map","group","splitTrim","array","split","string","trim","hasMatch","matchingGroups","filter","element","includes","length","forEach","banner","contents","allowedGroups","show_for_groups","hiddenGroups","hide_for_groups","push","n","prototype","computed","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","concatClass","htmlSafe","concat","isStrictMode","tagName","GroupAlertConnector","classNames","compatModules","Mod1"],"mappings":"+qBAEaA,EAAWC,EAAkB,ICOrBC,EAAAC,OAAAC,EAAA,cAAmBC,EACtC,mBACIC,GACF,IAAIC,EAAgBC,KAAKC,MAAMT,EAASU,eAMpCC,GAJaC,KAAKC,YAClBD,KAAKC,YAAYC,OACjB,CAAC,CAAEC,KAAM,UAEiBC,IAAI,SAAUC,GAC1C,OAAOA,EAAMF,IACf;AAGA,SAASG,EAAUC,GACjB,OAAOA,GAAOC,MAAM,KAAKJ,IAAI,SAAUK,GACrC,OAAOA,EAAOC,MAChB,EACF,CAGA,SAASC,EAAST,EAAQU,GACxB,OAAOV,EAAOW,OAAQC,GAAYF,GAAgBG,SAASD,IACxDE,MACL,CAEA,IAAItB,EAAkB;AAiBtB,OAdAC,EAAcsB,QAASC,IACrB,GAAIA,EAAOC,SAAU,CACnB,IAAIC,EAAgBd,EAAUY,EAAOG,iBACjCC,EAAehB,EAAUY,EAAOK;AAGlCZ,EAASZ,EAAcqB,KACtBT,EAASZ,EAAcuB,IAExB5B,EAAgB8B,KAAKN,EAEzB,IAGKxB,CACT,QAAAH,OAAAkC,EAAAzB,KAAA0B,6BA3CCC,GAAA,QA6CDC,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,ugBAAAC,WAAA,4BAAAC,MAAAA,KAAAA,CAAAC,cAAAC,WAAAC,WAAAC,cAAA,IAgBArC,KAAU,GACZ,CAhECsC,EAAQ;;;ACL6C,MAGjCC,EAAAhD,OAAAC,EAAA,cAA4BC,SAC/CmC,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,sCAAAC,WAAA,4BAAAC,MAAAA,KAAAA,CAAA3C,eAAA+C,cAAA,IAAwBrC,KAAU,IAFnCwC,EAAW,2BAA4B;ACHnC,MAACC,EAAgB,CACpB,mCAAoCC,EACpC;"}