{"version":3,"file":"main.CbQmnd.js","sources":["theme-127/virtual:theme","theme-127/discourse/components/topic-list-sidebar.gjs","theme-127/discourse/connectors/before-topic-list-body/topic-list-sidebar.gjs","theme-127/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(127);\n\nexport function themePrefix(key) {\n  return `theme_translations.127.${key}`;\n}\n","import Component from \"@glimmer/component\";\nimport { cached, tracked } from \"@glimmer/tracking\";\nimport { concat } from \"@ember/helper\";\nimport { action } from \"@ember/object\";\nimport didInsert from \"@ember/render-modifiers/modifiers/did-insert\";\nimport didUpdate from \"@ember/render-modifiers/modifiers/did-update\";\nimport { service } from \"@ember/service\";\nimport { htmlSafe } from \"@ember/template\";\nimport ConditionalLoadingSpinner from \"discourse/components/conditional-loading-spinner\";\nimport bodyClass from \"discourse/helpers/body-class\";\nimport { ajax } from \"discourse/lib/ajax\";\n\nexport default class TopicListSidebar extends Component {\n  @service router;\n  @service siteSettings;\n\n  @tracked sidebarContent;\n  @tracked loading = true;\n\n  findName(name) {\n    return settings.sidebars.filter((setting) => setting.name === name);\n  }\n\n  findCategory(categoryId) {\n    return settings.sidebars.filter((setting) =>\n      setting.category?.includes(categoryId)\n    );\n  }\n\n  findTag(tagName) {\n    return settings.sidebars.filter((setting) =>\n      setting.tag?.includes(tagName)\n    );\n  }\n\n  get isTopRoute() {\n    const topMenu = this.siteSettings.top_menu;\n\n    if (!topMenu) {\n      return false;\n    }\n\n    const targets = topMenu.split(\"|\").map((opt) => `discovery.${opt}`);\n    const filteredTargets = targets.filter(\n      (item) => item !== \"discovery.categories\"\n    );\n\n    return filteredTargets.includes(this.router.currentRouteName);\n  }\n\n  get categorySlugPathWithID() {\n    return this.router?.currentRoute?.params?.category_slug_path_with_id;\n  }\n\n  // TODO: Once 2026.2.0 is released, replace with `this.discovery.tag?.name`\n  // and add a `< 2026.2.0` .discourse-compatibility entry pointing to this commit.\n  get tagName() {\n    return (\n      this.router?.currentRoute?.attributes?.tag?.name ??\n      this.router?.currentRoute?.params?.tag_name\n    );\n  }\n\n  get matchedSetting() {\n    const categoryId = this.category?.id;\n    const parentCategoryId = this.category?.parentCategory?.id;\n    const tagName = this.tagName;\n\n    let result = null;\n\n    if (this.findName(\"all\") && this.isTopRoute) {\n      result = this.findName(\"all\");\n    }\n\n    if (categoryId) {\n      if (\n        settings.inherit_parent_sidebar &&\n        parentCategoryId &&\n        this.findCategory(parentCategoryId).length\n      ) {\n        result = this.findCategory(parentCategoryId);\n      }\n      if (this.findCategory(categoryId).length) {\n        result = this.findCategory(categoryId);\n      }\n    }\n\n    if (tagName) {\n      result = this.findTag(tagName);\n    }\n\n    return result;\n  }\n\n  @cached\n  get category() {\n    return (\n      this.router.currentRoute.attributes.category ||\n      this.topic?.get(\"category\")\n    );\n  }\n\n  @action\n  async fetchPostContent() {\n    this.loading = true;\n\n    // if multiple, use the last matching setting\n    const [lastSetting] = [...this.matchedSetting].reverse();\n    const topicId = lastSetting.topic_id;\n\n    try {\n      if (this.matchedSetting) {\n        const response = await ajax(`/t/${topicId}.json`);\n        this.sidebarContent = response.post_stream.posts[0].cooked;\n      }\n    } catch (error) {\n      // eslint-disable-next-line no-console\n      console.error(\"Error fetching post for sidebar:\", error);\n    } finally {\n      this.loading = false;\n    }\n\n    return this.sidebarContent;\n  }\n\n  <template>\n    {{#if this.matchedSetting}}\n      {{bodyClass \"custom-sidebar\"}}\n      {{bodyClass (concat \"sidebar-\" settings.sidebar_side)}}\n      <div\n        class=\"category-sidebar\"\n        {{didInsert this.fetchPostContent}}\n        {{didUpdate this.fetchPostContent this.category}}\n      >\n        <div class=\"sticky-sidebar\">\n          <div\n            class=\"category-sidebar-contents\"\n            data-category-sidebar={{this.category.slug}}\n            data-tag-sidebar={{this.tagName}}\n          >\n            <div class=\"cooked\">\n              {{#unless this.loading}}\n                {{htmlSafe this.sidebarContent}}\n              {{/unless}}\n              <ConditionalLoadingSpinner @condition={{this.loading}} />\n            </div>\n          </div>\n        </div>\n      </div>\n    {{/if}}\n  </template>\n}\n","/* eslint-disable ember/no-classic-components */\nimport Component from \"@ember/component\";\nimport { tagName } from \"@ember-decorators/component\";\nimport TopicListSidebar0 from \"../../components/topic-list-sidebar\";\n\n@tagName(\"\")\nexport default class TopicListSidebarConnector extends Component {\n  <template>\n    {{#unless this.site.mobileView}}\n      <TopicListSidebar0 />\n    {{/unless}}\n  </template>\n}\n","import * as Mod1 from \"./discourse/components/topic-list-sidebar\";\nimport * as Mod2 from \"./discourse/connectors/before-topic-list-body/topic-list-sidebar.gjs\";\nconst compatModules = {\n  \"discourse/components/topic-list-sidebar\": Mod1,\n  \"discourse/connectors/before-topic-list-body/topic-list-sidebar\": Mod2,\n};\nexport { compatModules };\nexport default compatModules;\n"],"names":["settings","getObjectForTheme","TopicListSidebar","Component","dt7948","g","this","prototype","service","router","i","siteSettings","tracked","sidebarContent","loading","findName","name","sidebars","filter","setting","findCategory","categoryId","category","includes","findTag","tagName","tag","isTopRoute","topMenu","top_menu","split","map","opt","item","currentRouteName","categorySlugPathWithID","currentRoute","params","category_slug_path_with_id","attributes","tag_name","matchedSetting","id","parentCategoryId","parentCategory","result","inherit_parent_sidebar","length","topic","get","n","cached","fetchPostContent","lastSetting","reverse","topicId","topic_id","response","ajax","post_stream","posts","cooked","error","console","action","setComponentTemplate","createTemplateFactory","block","moduleName","scope","bodyClass","concat","didInsert","didUpdate","htmlSafe","ConditionalLoadingSpinner","isStrictMode","TopicListSidebarConnector","c","TopicListSidebar0","compatModules","Mod1"],"mappings":"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"}