{"version":3,"names":["window","require","registerSettings","show_description","show_mobile","show_subcategory","hide_if_no_description","show_category_logo","align_text","exceptions","categories","plugin_outlet","show_category_icon","override_category_icon_color","define","_exports","_component","_component2","_tracking","_application","_object","_service","_template","_category3","_templateFactory","Object","defineProperty","value","default","settings","getObjectForTheme","__COLOCATED_TEMPLATE__","createTemplateFactory","id","block","moduleName","isStrictMode","DiscourseCategoryBanners","static","dt7948","g","this","prototype","service","router","i","site","categoryBannerPresence","tracked","category","keepDuringLoadingRoute","hasIconComponent","getOwner","hasRegistration","categorySlugPathWithID","currentRoute","params","category_slug_path_with_id","shouldRender","name","includes","isVisible","safeStyle","htmlSafe","color","text_color","consoleWarn","console","warn","displayCategoryDescription","description","length","parseExceptions","exceptionsStr","split","filter","Boolean","map","toLowerCase","checkTargetCategory","currentCategoryId","activeCategory","find","category_id","target","parentCategoryId","parentCategory","activeParentCategory","teardownComponent","document","body","classList","remove","setTo","n","action","getCategory","findBySlugPathWithID","isException","isTarget","hideMobile","mobileView","hideSubCategory","hasNoCategoryDescription","description_text","add","setComponentTemplate","_api","_categoryBanner","apiInitializer","api","renderInOutlet","CategoryBannerPresence","isPresent"],"sourceRoot":"theme-9/","sources":["settings.js","discourse/components/category-banner.js","discourse/initializers/discourse-category-banners.js","discourse/services/category-banner-presence.js"],"sourcesContent":["(function() {\n  if ('require' in window) {\n    require(\"discourse/lib/theme-settings-store\").registerSettings(9, {\"show_description\":true,\"show_mobile\":true,\"show_subcategory\":false,\"hide_if_no_description\":false,\"show_category_logo\":false,\"align_text\":\"center\",\"exceptions\":\"\",\"categories\":[],\"plugin_outlet\":\"below-site-header\",\"show_category_icon\":false,\"override_category_icon_color\":false});\n  }\n})();\n","if ('define' in window) {\ndefine(\"discourse/theme-9/discourse/components/category-banner\", [\"exports\", \"@ember/component\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/application\", \"@ember/object\", \"@ember/service\", \"@ember/template\", \"discourse/models/category\", \"@ember/template-factory\"], function (_exports, _component, _component2, _tracking, _application, _object, _service, _template, _category3, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(9);\n  const themePrefix = key => `theme_translations.9.${key}`;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if this.shouldRender}}\n    <div\n      {{did-insert this.getCategory}}\n      {{did-update this.getCategory this.isVisible}}\n      {{will-destroy this.teardownComponent}}\n      class=\"category-title-header\n        {{if this.category (concat 'category-banner-' this.category.slug)}}\"\n      style={{if this.category this.safeStyle}}\n    >\n      {{#if this.category}}\n        <div class=\"category-title-contents\">\n          {{#if (theme-setting \"show_category_logo\")}}\n            <CategoryLogo @category={{this.category}} />\n          {{/if}}\n          <h1 class=\"category-title\">\n            {{#if (and (theme-setting \"show_category_icon\") this.category)}}\n              {{#if this.hasIconComponent}}\n                {{! For compatibility with https://meta.discourse.org/t/category-icons/104683}}\n                <CategoryIcon @category={{this.category}} />\n              {{else}}\n                {{this.consoleWarn}}\n              {{/if}}\n            {{/if}}\n            {{#if this.category.read_restricted}}\n              {{d-icon \"lock\"}}\n            {{/if}}\n            {{this.category.name}}\n            <PluginOutlet\n              @name=\"category-banners-after-title\"\n              @outletArgs={{hash category=this.category}}\n            />\n          </h1>\n  \n          {{#if this.displayCategoryDescription}}\n            <div class=\"category-title-description\">\n              <div class=\"cooked\">\n                {{html-safe this.category.description}}\n                <PluginOutlet\n                  @name=\"category-banners-after-description\"\n                  @outletArgs={{hash category=this.category}}\n                />\n              </div>\n            </div>\n          {{/if}}\n        </div>\n      {{/if}}\n    </div>\n  {{/if}}\n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[41,[30,0,[\\\"shouldRender\\\"]],[[[1,\\\"  \\\"],[11,0],[16,0,[29,[\\\"category-title-header\\\\n      \\\",[52,[30,0,[\\\"category\\\"]],[28,[37,1],[\\\"category-banner-\\\",[30,0,[\\\"category\\\",\\\"slug\\\"]]],null]]]]],[16,5,[52,[30,0,[\\\"category\\\"]],[30,0,[\\\"safeStyle\\\"]]]],[4,[38,2],[[30,0,[\\\"getCategory\\\"]]],null],[4,[38,3],[[30,0,[\\\"getCategory\\\"]],[30,0,[\\\"isVisible\\\"]]],null],[4,[38,4],[[30,0,[\\\"teardownComponent\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"category\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"category-title-contents\\\"],[12],[1,\\\"\\\\n\\\"],[41,[28,[37,5],[9,\\\"show_category_logo\\\"],null],[[[1,\\\"          \\\"],[8,[39,6],null,[[\\\"@category\\\"],[[30,0,[\\\"category\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"        \\\"],[10,\\\"h1\\\"],[14,0,\\\"category-title\\\"],[12],[1,\\\"\\\\n\\\"],[41,[28,[37,7],[[28,[37,5],[9,\\\"show_category_icon\\\"],null],[30,0,[\\\"category\\\"]]],null],[[[41,[30,0,[\\\"hasIconComponent\\\"]],[[[1,\\\"              \\\"],[8,[39,8],null,[[\\\"@category\\\"],[[30,0,[\\\"category\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[1,[30,0,[\\\"consoleWarn\\\"]]],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[41,[30,0,[\\\"category\\\",\\\"read_restricted\\\"]],[[[1,\\\"            \\\"],[1,[28,[35,9],[\\\"lock\\\"],null]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"          \\\"],[1,[30,0,[\\\"category\\\",\\\"name\\\"]]],[1,\\\"\\\\n          \\\"],[8,[39,10],null,[[\\\"@name\\\",\\\"@outletArgs\\\"],[\\\"category-banners-after-title\\\",[28,[37,11],null,[[\\\"category\\\"],[[30,0,[\\\"category\\\"]]]]]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"displayCategoryDescription\\\"]],[[[1,\\\"          \\\"],[10,0],[14,0,\\\"category-title-description\\\"],[12],[1,\\\"\\\\n            \\\"],[10,0],[14,0,\\\"cooked\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[35,12],[[30,0,[\\\"category\\\",\\\"description\\\"]]],null]],[1,\\\"\\\\n              \\\"],[8,[39,10],null,[[\\\"@name\\\",\\\"@outletArgs\\\"],[\\\"category-banners-after-description\\\",[28,[37,11],null,[[\\\"category\\\"],[[30,0,[\\\"category\\\"]]]]]]],null],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[],false,[\\\"if\\\",\\\"concat\\\",\\\"did-insert\\\",\\\"did-update\\\",\\\"will-destroy\\\",\\\"theme-setting\\\",\\\"category-logo\\\",\\\"and\\\",\\\"category-icon\\\",\\\"d-icon\\\",\\\"plugin-outlet\\\",\\\"hash\\\",\\\"html-safe\\\"]]\",\n    \"moduleName\": \"discourse/components/category-banner.hbs\",\n    \"isStrictMode\": false\n  });\n  class DiscourseCategoryBanners extends _component2.default {\n    static #_ = (() => dt7948.g(this.prototype, \"router\", [_service.service]))();\n    #router = (() => (dt7948.i(this, \"router\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"site\", [_service.service]))();\n    #site = (() => (dt7948.i(this, \"site\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"categoryBannerPresence\", [_service.service]))();\n    #categoryBannerPresence = (() => (dt7948.i(this, \"categoryBannerPresence\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"category\", [_tracking.tracked], function () {\n      return null;\n    }))();\n    #category = (() => (dt7948.i(this, \"category\"), void 0))();\n    static #_5 = (() => dt7948.g(this.prototype, \"keepDuringLoadingRoute\", [_tracking.tracked], function () {\n      return false;\n    }))();\n    #keepDuringLoadingRoute = (() => (dt7948.i(this, \"keepDuringLoadingRoute\"), void 0))();\n    get hasIconComponent() {\n      return (0, _application.getOwner)(this).hasRegistration(\"component:category-icon\");\n    }\n    get categorySlugPathWithID() {\n      return this.router?.currentRoute?.params?.category_slug_path_with_id;\n    }\n    get shouldRender() {\n      return this.categorySlugPathWithID || this.keepDuringLoadingRoute && this.router.currentRoute.name.includes(\"loading\");\n    }\n    get isVisible() {\n      if (this.categorySlugPathWithID) {\n        return true;\n      } else if (this.router.currentRoute.name.includes(\"loading\")) {\n        return this.keepDuringLoadingRoute;\n      }\n      return false;\n    }\n    get safeStyle() {\n      return (0, _template.htmlSafe)(`background-color: #${this.category.color}; color: #${this.category.text_color};`);\n    }\n    get consoleWarn() {\n      // eslint-disable-next-line no-console\n      return console.warn(\"The category banners component is trying to use the category icons component, but it is not available. https://meta.discourse.org/t/category-icons/104683\");\n    }\n    get displayCategoryDescription() {\n      return settings.show_description && this.category.description?.length > 0;\n    }\n    #parseExceptions(exceptionsStr) {\n      return exceptionsStr.split(\"|\").filter(Boolean).map(value => value.toLowerCase());\n    }\n    #checkTargetCategory() {\n      if (settings.categories.length === 0) {\n        return true;\n      }\n      const currentCategoryId = this.category?.id;\n      const activeCategory = settings.categories.find(category => {\n        return category.category_id[0] === currentCategoryId;\n      });\n      if (activeCategory && (activeCategory.target === \"all\" || activeCategory.target === \"no_sub\")) {\n        return true;\n      }\n      const parentCategoryId = this.category?.parentCategory?.id;\n      if (parentCategoryId) {\n        const activeParentCategory = settings.categories.find(category => {\n          return category.category_id[0] === parentCategoryId;\n        });\n        if (activeParentCategory && (activeParentCategory.target === \"all\" || activeParentCategory.target === \"only_sub\")) {\n          return true;\n        }\n      }\n      return false;\n    }\n    teardownComponent() {\n      document.body.classList.remove(\"category-header\");\n      this.category = null;\n      this.categoryBannerPresence.setTo(false);\n    }\n    static #_6 = (() => dt7948.n(this.prototype, \"teardownComponent\", [_object.action]))();\n    getCategory() {\n      if (!this.isVisible) {\n        return;\n      }\n      if (this.categorySlugPathWithID) {\n        this.category = _category3.default.findBySlugPathWithID(this.categorySlugPathWithID);\n        this.categoryBannerPresence.setTo(true);\n        this.keepDuringLoadingRoute = true;\n      } else {\n        if (!this.router.currentRoute.name.includes(\"loading\")) {\n          return this.keepDuringLoadingRoute = false;\n        }\n      }\n      const exceptions = this.#parseExceptions(settings.exceptions);\n      const isException = exceptions.includes(this.category?.name.toLowerCase());\n      const isTarget = this.#checkTargetCategory();\n      const hideMobile = this.site.mobileView && !settings.show_mobile;\n      const hideSubCategory = this.category?.parentCategory && !settings.show_subcategory;\n      const hasNoCategoryDescription = settings.hide_if_no_description && !this.category?.description_text;\n      if (isTarget && !isException && !hasNoCategoryDescription && !hideSubCategory && !hideMobile) {\n        document.body.classList.add(\"category-header\");\n      } else {\n        document.body.classList.remove(\"category-header\");\n        this.categoryBannerPresence.setTo(false);\n      }\n    }\n    static #_7 = (() => dt7948.n(this.prototype, \"getCategory\", [_object.action]))();\n  }\n  _exports.default = DiscourseCategoryBanners;\n  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DiscourseCategoryBanners);\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-9/discourse/initializers/discourse-category-banners\", [\"exports\", \"discourse/lib/api\", \"../components/category-banner\"], function (_exports, _api, _categoryBanner) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(9);\n  const themePrefix = key => `theme_translations.9.${key}`;\n  var _default = _exports.default = (0, _api.apiInitializer)(\"1.13.0\", api => {\n    api.renderInOutlet(settings.plugin_outlet, _categoryBanner.default);\n  });\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-9/discourse/services/category-banner-presence\", [\"exports\", \"@glimmer/tracking\", \"@ember/service\"], function (_exports, _tracking, _service) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(9);\n  const themePrefix = key => `theme_translations.9.${key}`;\n  class CategoryBannerPresence extends _service.default {\n    static #_ = (() => dt7948.g(this.prototype, \"isPresent\", [_tracking.tracked], function () {\n      return false;\n    }))();\n    #isPresent = (() => (dt7948.i(this, \"isPresent\"), void 0))();\n    setTo(value) {\n      this.isPresent = value;\n    }\n  }\n  _exports.default = CategoryBannerPresence;\n});\n}\n"],"mappings":"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"}