{"version":3,"file":"virtual_main.js","sources":["theme-8/virtual:init-settings","theme-8/virtual:theme","theme-8/discourse/components/announcement-bar.gjs","theme-8/discourse/initializers/announcement-bar.js","theme-8/virtual:main"],"sourcesContent":["import { registerSettings } from \"discourse/lib/theme-settings-store\";\n\nregisterSettings(8, {\n  \"bar_text\": \"\",\n  \"button_text\": \"What’s new in CCleaner 7 – and why you should upgrade\",\n  \"button_link\": \"https://support.ccleaner.com/s/article/why-should-i-upgrade-to-ccleaner-7?language=en_US\",\n  \"update_version\": \"20231121\",\n  \"show_on\": \"everywhere\",\n  \"plugin_outlet\": \"below-site-header\",\n  \"hide_on_mobile\": false\n});\n","import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(8);\n\nexport function themePrefix(key) {\n  return `theme_translations.8.${key}`;\n}\n","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport cookie, { removeCookie } from 'discourse/lib/cookie';\nimport { defaultHomepage } from 'discourse/lib/utilities';\nimport icon from 'discourse-common/helpers/d-icon';\nimport and from 'truth-helpers/helpers/and';\n\nexport default class AnnouncementBar extends Component {\n  @service site;\n  @service siteSettings;\n  @service router;\n  @tracked closed = false;\n\n  <template>\n    {{#if (and this.showOnRoute this.showOnMobile this.cookieState)}}\n      <div class='announcement-bar__wrapper {{settings.plugin_outlet}}'>\n        <div class='announcement-bar__container'>\n          <div class='announcement-bar__content'>\n            <span>{{htmlSafe settings.bar_text}}</span>\n            <a\n              class='announcement-bar_text'\n              href='{{settings.button_link}}'\n            >{{settings.button_text}}</a>\n          </div>\n          <div class='announcement-bar__close'>\n            <a {{on 'click' this.closeBanner}}>\n              {{icon 'times'}}\n            </a>\n          </div>\n        </div>\n      </div>\n    {{/if}}\n  </template>\n\n  get showOnRoute() {\n    const currentRoute = this.router.currentRouteName;\n    switch (settings.show_on) {\n      case 'everywhere':\n        return !currentRoute.includes('admin');\n      case 'homepage':\n        return currentRoute === `discovery.${defaultHomepage()}`;\n      case 'latest/top/new/categories':\n        const topMenu = this.siteSettings.top_menu;\n        const targets = topMenu.split('|').map((opt) => `discovery.${opt}`);\n        return targets.includes(currentRoute);\n      default:\n        return false;\n    }\n  }\n\n  get showOnMobile() {\n    if (settings.hide_on_mobile && this.site.mobileView) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n\n  get cookieExpirationDate() {\n    return moment().add(1, 'year').toDate();\n  }\n\n  get cookieState() {\n    const closed_cookie = cookie('discourse_announcement_bar_closed');\n    if (closed_cookie) {\n      const cookieValue = JSON.parse(closed_cookie);\n      if (cookieValue.name !== settings.update_version) {\n        removeCookie('discourse_announcement_bar_closed', { path: '/' });\n      } else {\n        this.closed = true;\n      }\n    }\n    return !this.closed;\n  }\n\n  @action\n  closeBanner() {\n    this.closed = true;\n    const bannerState = { name: settings.update_version, closed: 'true' };\n    cookie('discourse_announcement_bar_closed', JSON.stringify(bannerState), {\n      expires: this.cookieExpirationDate,\n      path: '/',\n    });\n  }\n}\n","import { apiInitializer } from 'discourse/lib/api';\nimport AnnouncementBar from '../components/announcement-bar';\n\nexport default apiInitializer('1.14.0', (api) => {\n  api.renderInOutlet(settings.plugin_outlet.trim(), AnnouncementBar);\n});\n","import \"virtual:init-settings\";\n\nconst themeCompatModules = {};\nimport * as Mod1 from \"./discourse/components/announcement-bar\";\nthemeCompatModules[\"discourse/components/announcement-bar\"] = Mod1;\n\nimport * as Mod2 from \"./discourse/initializers/announcement-bar\";\nthemeCompatModules[\"discourse/initializers/announcement-bar\"] = Mod2;\n\nexport default themeCompatModules;\n"],"names":["registerSettings","bar_text","button_text","button_link","update_version","show_on","plugin_outlet","hide_on_mobile","settings","getObjectForTheme","AnnouncementBar","Component","static","dt7948","g","this","prototype","service","site","i","siteSettings","router","tracked","closed","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","and","htmlSafe","on","icon","isStrictMode","showOnRoute","currentRoute","currentRouteName","includes","defaultHomepage","top_menu","split","map","opt","showOnMobile","mobileView","cookieExpirationDate","moment","add","toDate","cookieState","closed_cookie","cookie","JSON","parse","name","removeCookie","path","closeBanner","bannerState","stringify","expires","n","action","announcementBar","apiInitializer","api","renderInOutlet","trim","themeCompatModules","Mod1","Mod2"],"mappings":";AAEAA,EAAiB,EAAG,CAClBC,SAAY,GACZC,YAAe,wDACfC,YAAe,2FACfC,eAAkB,WAClBC,QAAW,aACXC,cAAiB,oBACjBC,gBAAkB;ACPb,MAAMC,EAAWC,EAAkB;ACS3B,MAAMC,UAAwBC,EAAAC,cAAAC,OAAAC,EAAAC,KAAAC,kBAC1CC;AAAAC,GAAA,MAAAL,OAAAM,cAAA,EAAA;AAAAP,cAAAC,OAAAC,EAAAC,KAAAC,0BACAC;AAAAG,GAAA,MAAAP,OAAAM,sBAAA,EAAA;AAAAP,cAAAC,OAAAC,EAAAC,KAAAC,oBACAC;AAAAI,GAAA,MAAAR,OAAAM,gBAAA,EAAA;AAAAP,cAAAC,OAAAC,EAAAC,KAAAC,oBACAM,GAAA,WAAA,OAAiB,CAAA;AAAAC,GAAA,MAAAV,OAAAM,gBAAA,EAAA;AAAAP,SAAA,KAAAY,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,45BAAAC,WAAA,qDAAAC,MAAAA,IAAA,CAAAC,EAAAtB,EAAAuB,EAAAC,EAAAC,GAAAC,cAAA,IAqBlBnB,MArBkB;AAuBlB,eAAIoB,GACF,MAAMC,EAAerB,KAAKM,OAAOgB;AACjC,OAAQ7B,EAASH,SACf,IAAK,aACH,OAAQ+B,EAAaE,SAAS;AAChC,IAAK,WACH,OAAOF,IAAiB,aAAaG;AACvC,IAAK,4BAGH,OAFgBxB,KAAKK,aAAaoB,SACVC,MAAM,KAAKC,IAAKC,GAAQ,aAAaA,KAC9CL,SAASF;AAC1B,QACE,OAAO,EAEb,CAEA,gBAAIQ,GACF,OAAIpC,EAASD,iBAAkBQ,KAAKG,KAAK2B,UAK3C,CAEA,wBAAIC,GACF,OAAOC,SAASC,IAAI,EAAG,QAAQC,QACjC,CAEA,eAAIC,GACF,MAAMC,EAAgBC,EAAO;AAC7B,GAAID,EAAe,CACGE,KAAKC,MAAMH,GACfI,OAAS/C,EAASJ,eAChCoD,EAAa,oCAAqC,CAAEC,KAAM,MAE1D1C,KAAKQ,QAAS,CAElB,CACA,OAAQR,KAAKQ,MACf,CAGAmC,WAAAA,GACE3C,KAAKQ,QAAS;AACd,MAAMoC,EAAc,CAAEJ,KAAM/C,EAASJ,eAAgBmB,OAAQ;AAC7D6B,EAAO,oCAAqCC,KAAKO,UAAUD,GAAc,CACvEE,QAAS9C,KAAK+B,qBACdW,KAAM,KAEV,CAAA7C,cAAAC,OAAAiD,EAAA/C,KAAAC,yBARC+C,uDC5EHC,EAAeC,EAAe,SAAWC,IACvCA,EAAIC,eAAe3D,EAASF,cAAc8D,OAAQ1D;ACF/C,MAAC2D,EAAqB,CAAA;AAE3BA,EAAmB,yCAA2CC,EAG9DD,EAAmB,2CAA6CE;"}