{"version":3,"file":"main.CK_tvj.js","sources":["theme-28/virtual:theme","theme-28/discourse/components/search-icon.gjs","theme-28/discourse/components/header-search.gjs","theme-28/discourse/api-initializers/init-header-search.js","theme-28/discourse/components/search-bar-icon.gjs","theme-28/discourse/components/search-bar-icons.gjs","theme-28/discourse/connectors/search-menu-before-advanced-search/search-icons.gjs","theme-28/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(28);\n\nexport function themePrefix(key) {\n  return `theme_translations.28.${key}`;\n}\n","import Component from \"@glimmer/component\";\nimport DButton from \"discourse/components/d-button\";\nimport concatClass from \"discourse/helpers/concat-class\";\n\nexport default class SearchIcon extends Component {\n  get advancedSearchButtonHref() {\n    return \"/search?expanded=true\";\n  }\n\n  <template>\n    <DButton\n      @icon=\"magnifying-glass\"\n      @translatedLabel={{@buttonText}}\n      @title=\"search.open_advanced\"\n      class={{concatClass \"btn search-icon\" @buttonClass}}\n      @href={{this.advancedSearchButtonHref}}\n    />\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport { modifier as modifierFn } from \"ember-modifier\";\nimport SearchMenu from \"discourse/components/search-menu\";\nimport bodyClass from \"discourse/helpers/body-class\";\nimport SearchIcon from \"./search-icon\";\n\nexport default class HeaderSearch extends Component {\n  @service site;\n  @service siteSettings;\n  @service currentUser;\n  @service appEvents;\n  @service search;\n\n  handleKeyboardShortcut = modifierFn(() => {\n    const cb = () => this.search.focusSearchInput();\n    this.appEvents.on(\"header:keyboard-trigger\", cb);\n    return () => this.appEvents.off(\"header:keyboard-trigger\", cb);\n  });\n\n  get displayForUser() {\n    return (\n      (this.siteSettings.login_required && this.currentUser) ||\n      !this.siteSettings.login_required\n    );\n  }\n\n  get shouldDisplay() {\n    return (\n      this.displayForUser &&\n      !this.site.mobileView &&\n      !this.args.outletArgs?.topicInfoVisible\n    );\n  }\n\n  <template>\n    {{#if this.shouldDisplay}}\n      {{bodyClass \"search-header--visible\"}}\n      <div\n        class=\"floating-search-input-wrapper\"\n        {{this.handleKeyboardShortcut}}\n      >\n        <div class=\"floating-search-input\">\n          <div class=\"search-banner\">\n            <div class=\"search-banner-inner wrap\">\n              <div class=\"search-menu\">\n                <SearchIcon />\n                <SearchMenu @searchInputId=\"advanced-header-search-input\" />\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    {{/if}}\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport HeaderSearch from \"../components/header-search\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"before-header-panel\", HeaderSearch);\n});\n","import icon from \"discourse/helpers/d-icon\";\n\nconst SearchBarIcon = <template>\n  <a\n    href={{@item.url}}\n    target={{@item.target}}\n    class=\"search-bar-icons--icon search-extra-icon-{{@item.name}}\"\n  >\n    {{icon @item.icon}}\n  </a>\n</template>;\n\nexport default SearchBarIcon;\n","import Component from \"@glimmer/component\";\nimport { getOwner } from \"@ember/owner\";\nimport { service } from \"@ember/service\";\nimport SearchBarIcon from \"./search-bar-icon\";\n\nexport default class SearchBarIcons extends Component {\n  @service router;\n  @service search;\n\n  get searchIconItems() {\n    const searchIcons = [];\n    const currentRoute = this.router.currentRoute;\n    let categoryId = currentRoute.attributes?.category?.id;\n\n    // when not in a category route, see if topic has same category id\n    if (!categoryId && currentRoute.name.startsWith(\"topic.\")) {\n      const topic = getOwner(this).lookup(\"controller:topic\");\n      categoryId = topic?.model?.category_id;\n    }\n\n    if (this.search.activeGlobalSearchTerm !== \"\") {\n      JSON.parse(settings.extra_search_icons).forEach((item) => {\n        if (item.params) {\n          item.params.forEach((p) => {\n            item[p.name] = p.value;\n          });\n\n          if (item.prefix) {\n            item.url = `${item.prefix}${this.search.activeGlobalSearchTerm}`;\n          }\n\n          delete item.params;\n        }\n\n        const showInCategories = item.showInCategories\n          ? item.showInCategories.split(\",\").map(Number)\n          : [];\n        const excludeFromCategories = item.excludeFromCategories\n          ? item.excludeFromCategories.split(\",\").map(Number)\n          : [];\n\n        switch (true) {\n          case excludeFromCategories.includes(categoryId):\n            // skip if explicitly excluded for this category ID\n            break;\n\n          default:\n            // when not excluded, show icon if:\n            // - `showInCategories` param isn't used OR\n            // - category ID included in `showInCategories`\n            if (\n              showInCategories.length === 0 ||\n              showInCategories.includes(categoryId)\n            ) {\n              searchIcons.push(item);\n            }\n            break;\n        }\n      });\n\n      return searchIcons;\n    }\n  }\n\n  <template>\n    {{#if this.searchIconItems}}\n      <span class=\"extra-search-icons\">\n        {{#each this.searchIconItems as |item|}}\n          <SearchBarIcon @item={{item}} />\n        {{/each}}\n      </span>\n    {{/if}}\n  </template>\n}\n","/* eslint-disable ember/no-classic-components */\nimport Component from \"@ember/component\";\nimport { tagName } from \"@ember-decorators/component\";\nimport SearchBarIcons from \"../../components/search-bar-icons\";\n\n@tagName(\"\")\nexport default class SearchIcons extends Component {\n  <template><SearchBarIcons /></template>\n}\n","import * as Mod1 from \"./discourse/api-initializers/init-header-search\";\nimport * as Mod2 from \"./discourse/components/header-search\";\nimport * as Mod3 from \"./discourse/components/search-bar-icon\";\nimport * as Mod4 from \"./discourse/components/search-bar-icons\";\nimport * as Mod5 from \"./discourse/components/search-icon\";\nimport * as Mod6 from \"./discourse/connectors/search-menu-before-advanced-search/search-icons.gjs\";\nconst compatModules = {\n  \"discourse/api-initializers/init-header-search\": Mod1,\n  \"discourse/components/header-search\": Mod2,\n  \"discourse/components/search-bar-icon\": Mod3,\n  \"discourse/components/search-bar-icons\": Mod4,\n  \"discourse/components/search-icon\": Mod5,\n  \"discourse/connectors/search-menu-before-advanced-search/search-icons\": Mod6,\n};\nexport { compatModules };\nexport default compatModules;\n"],"names":["settings","getObjectForTheme","SearchIcon","Component","advancedSearchButtonHref","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","DButton","concatClass","isStrictMode","this","HeaderSearch","dt7948","g","prototype","service","site","i","siteSettings","currentUser","appEvents","search","handleKeyboardShortcut","modifierFn","cb","focusSearchInput","on","off","displayForUser","login_required","shouldDisplay","mobileView","args","outletArgs","topicInfoVisible","bodyClass","SearchMenu","initHeaderSearch","apiInitializer","api","renderInOutlet","SearchBarIcon","icon","templateOnly","SearchBarIcons","router","searchIconItems","searchIcons","currentRoute","categoryId","attributes","category","name","startsWith","topic","getOwner","lookup","model","category_id","activeGlobalSearchTerm","JSON","parse","extra_search_icons","forEach","item","params","p","value","prefix","url","showInCategories","split","map","Number","excludeFromCategories","includes","length","push","SearchIcons","c","tagName","compatModules","Mod1","Mod2","Mod3","Mod4","Mod5"],"mappings":"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"}