{"version":3,"file":"virtual_main.js","sources":["theme-6/virtual:init-settings","theme-6/virtual:theme","theme-6/discourse/components/category-boxes.js","theme-6/discourse/components/category-boxes.hbs","theme-6/discourse/components/category-box.js","theme-6/discourse/components/category-box.hbs","theme-6/discourse/components/category-button.hbs","theme-6/discourse/components/category-button.js","theme-6/discourse/components/category-header.js","theme-6/discourse/components/category-header.hbs","theme-6/discourse/components/custom-category-boxes.js","theme-6/discourse/components/custom-category-boxes.hbs","theme-6/discourse/initializers/initialize-category-boxes.js","theme-6/virtual:main"],"sourcesContent":["import { registerSettings } from \"discourse/lib/theme-settings-store\";\n\nregisterSettings(6, {\n  \"first_categories_header\": \"Browse categories\",\n  \"first_categories\": \"27|22|26|23|33|35|28|30\",\n  \"second_categories_header\": \"\",\n  \"second_categories\": \"29|64|63|25\",\n  \"third_categories_header\": \"Third Categories Header\",\n  \"third_categories\": \"\",\n  \"fourth_categories_header\": \"Fourth Categories Header\",\n  \"fourth_categories\": \"\",\n  \"fifth_categories_header\": \"Fifth Categories Header\",\n  \"fifth_categories\": \"\"\n});\n","import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(6);\n\nexport function themePrefix(key) {\n  return `theme_translations.6.${key}`;\n}\n","import templateOnly from '@ember/component/template-only';\nexport default templateOnly();\n","<span class=\"custom-category-boxes\">\n  {{#each @categories as |category|}}\n    <CategoryBox @category={{category}} />\n  {{/each}}\n</span>","import Component from \"@glimmer/component\";\nimport { htmlSafe } from \"@ember/template\";\n\nexport default class extends Component {\n  get backgroundColor() {\n    return htmlSafe(`background-color: #${this.args.category.color}`);\n  }\n\n  get getAbbreviation() {\n    let abbr = this.args.category.name.replace(\" and\", \"\").split(\" \");\n\n    if (abbr.length > 1) {\n      abbr = abbr[0].charAt(0).toUpperCase() + abbr[1].charAt(0).toLowerCase();\n    } else {\n      abbr = abbr[0].charAt(0).toUpperCase() + abbr[0].charAt(1).toLowerCase();\n    }\n\n    return abbr;\n  }\n}\n","{{! template-lint-disable no-nested-interactive }}\n\n<a\n  href={{@category.url}}\n  data-category-id={{@category.id}}\n  data-notification-level={{@category.notificationLevelString}}\n  data-url={{@category.url}}\n  class=\"category category-box category-box-{{@category.slug}}\n    {{if @category.isMuted 'muted'}}\n    {{if noCategoryStyle 'no-category-boxes-style'}}\"\n>\n  <div class=\"category-box-inner\">\n    <div\n      class=\"category-logo\n        {{if @category.uploaded_logo.url '' 'no-logo-present'}}\"\n      style={{this.backgroundColor}}\n    >\n      {{#if @category.uploaded_logo.url}}\n        {{cdn-img\n          src=@category.uploaded_logo.url\n          class=\"logo\"\n          width=@category.uploaded_logo.width\n          height=@category.uploaded_logo.height\n          alt=\"\"\n        }}\n      {{else}}\n        <span class=\"category-abbreviation\">\n          {{this.getAbbreviation}}\n        </span>\n      {{/if}}\n    </div>\n\n    <div class=\"category-details\">\n      <div class=\"category-box-heading\">\n        <a class=\"parent-box-link\" href={{@category.url}}>\n          <h3>\n            {{category-title-before category=@category}}\n            {{#if @category.read_restricted}}\n              {{d-icon \"lock\"}}\n            {{/if}}\n            {{@category.name}}\n          </h3>\n        </a>\n      </div>\n\n      {{!-- <div class=\"description\">\n        <p>{{html-safe @category.description_excerpt}}</p>\n      </div> --}}\n\n      {{#if @category.isGrandParent}}\n        {{#each @category.subcategories as |subcategory|}}\n          <a\n            href={{subcategory.url}}\n            data-category-id={{subcategory.id}}\n            data-notification-level={{subcategory.notificationLevelString}}\n            style={{border-color subcategory.color}}\n            class=\"subcategory with-subcategories\n              {{if subcategory.uploaded_logo.url 'has-logo' 'no-logo'}}\"\n          >\n            <div class=\"subcategory-box-inner\">\n              {{category-title-link tagName=\"h4\" category=subcategory}}\n              {{#if subcategory.subcategories}}\n                <div class=\"subcategories\">\n                  {{#each subcategory.subcategories as |subsubcategory|}}\n                    {{#unless subsubcategory.isMuted}}\n                      <span class=\"subcategory\">\n                        {{category-title-before category=subsubcategory}}\n                        {{category-link subsubcategory hideParent=\"true\"}}\n                      </span>\n                    {{/unless}}\n                  {{/each}}\n                </div>\n              {{/if}}\n            </div>\n          </a>\n        {{/each}}\n      {{else if @category.subcategories}}\n        <div class=\"subcategories\">\n          {{#each @category.subcategories as |sc|}}\n            <a class=\"subcategory\" href={{sc.url}}>\n              <span class=\"subcategory-image-placeholder\">\n                {{cdn-img\n                  src=sc.uploaded_logo.url\n                  class=\"logo\"\n                  width=sc.uploaded_logo.width\n                  height=sc.uploaded_logo.height\n                  alt=\"\"\n                }}\n              </span>\n              {{category-link sc hideParent=\"true\"}}\n            </a>\n          {{/each}}\n        </div>\n      {{/if}}\n    </div>\n\n    {{plugin-outlet\n      name=\"category-box-below-each-category\"\n      connectorTagName=\"\"\n      tagName=\"\"\n      args=(hash category=@category)\n    }}\n  </div>\n</a>","<button class=\"btn btn-default all-categories\" {{on \"click\" this.toggle}}>See more categories</button>\r\n{{#if this.showAdditionalCategories}}\r\n  {{#if @secondCategories}}\r\n    <CategoryHeader @header={{theme-setting \"second_categories_header\"}} />\r\n    <CategoryBoxes @categories={{@secondCategories}} />\r\n  {{/if}}\r\n  {{#if @thirdCategories}}\r\n    <CategoryHeader @header={{theme-setting \"third_categories_header\"}} />\r\n    <CategoryBoxes @categories={{@thirdCategories}} />\r\n  {{/if}}\r\n  {{#if @fourthCategories}}\r\n    <CategoryHeader @header={{theme-setting \"fourth_categories_header\"}} />\r\n    <CategoryBoxes @categories={{@fourthCategories}} />\r\n  {{/if}}\r\n  {{#if @fifthCategories}}\r\n    <CategoryHeader @header={{theme-setting \"fifth_categories_header\"}} />\r\n    <CategoryBoxes @categories={{@fifthCategories}} />\r\n  {{/if}}\r\n{{/if}}\r\n","\r\nimport Component from '@glimmer/component';\r\nimport { action } from '@ember/object';\r\nimport { tracked } from '@glimmer/tracking';\r\n\r\nexport default class CategoryButtonComponent extends Component {\r\n    @tracked showAdditionalCategories = false;\r\n\r\n    @action\r\n    toggle() {\r\n        console.log(\"toggle\");\r\n      this.showAdditionalCategories = !this.showAdditionalCategories;\r\n    }  \r\n}\r\n","import templateOnly from '@ember/component/template-only';\nexport default templateOnly();\n","{{#if (gt @header.length 0)}}\n  <h1 class=\"custom-category-header\">\n    {{@header}}\n  </h1>\n{{/if}}","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\n\nexport default class extends Component {\n  @service router;\n  @service site;\n\n  get classNames() {\n    const classNames = [\"custom-category-boxes-container\"];\n\n    if (this.noneSelected) {\n      classNames.push(\"none-selected\");\n    }\n\n    return classNames.join(\" \");\n  }\n\n  #allowedCategories(selectedCategories) {\n    // filters categories to only include selected categories for each section\n    let availableCategories = this.site.categories.filter((category) => {\n      if (selectedCategories.indexOf(category.id) !== -1) {\n        return true;\n      } else {\n        return false;\n      }\n    });\n\n    return availableCategories;\n  }\n\n  get shouldRenderHeadings() {\n    let isCategoryPage = this.router.currentRoute.name.includes(\"category\");\n    let hasCategoriesSet = false;\n\n    if (\n      settings.first_categories ||\n      settings.second_categories ||\n      settings.third_categories ||\n      settings.fourth_categories ||\n      settings.fifth_categories\n    ) {\n      hasCategoriesSet = true;\n    }\n\n    if (!isCategoryPage && hasCategoriesSet) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  get noneSelected() {\n    return this.router.currentRoute.name.includes(\"None\");\n  }\n\n  get firstCategories() {\n    return this.#allowedCategories(\n      settings.first_categories.split(\"|\").map((id) => Number(id))\n    );\n  }\n\n  get secondCategories() {\n    return this.#allowedCategories(\n      settings.second_categories.split(\"|\").map((id) => Number(id))\n    );\n  }\n\n  get thirdCategories() {\n    return this.#allowedCategories(\n      settings.third_categories.split(\"|\").map((id) => Number(id))\n    );\n  }\n\n  get fourthCategories() {\n    return this.#allowedCategories(\n      settings.fourth_categories.split(\"|\").map((id) => Number(id))\n    );\n  }\n\n  get fifthCategories() {\n    return this.#allowedCategories(\n      settings.fifth_categories.split(\"|\").map((id) => Number(id))\n    );\n  }\n}\n","<div class={{this.classNames}}>\n  {{#if this.shouldRenderHeadings}}\n    {{#if this.firstCategories}}\n      <CategoryHeader @header={{theme-setting \"first_categories_header\"}} />\n      <CategoryBoxes @categories={{this.firstCategories}} />\n    {{/if}}\n <CategoryButton \n      @secondCategories={{this.secondCategories}} \n      @thirdCategories={{this.thirdCategories}} \n      @fourthCategories={{this.fourthCategories}} \n      @fifthCategories={{this.fifthCategories}} \n    />\n  {{else}}\n    <CategoryBoxes @categories={{@outletArgs.categories}} />\n  {{/if}}\n</div>","import { apiInitializer } from \"discourse/lib/api\";\nimport CustomCategoryBoxes from \"../components/custom-category-boxes\";\n\nexport default apiInitializer(\"1.14.0\", (api) => {\n  api.renderInOutlet(\"above-discovery-categories\", CustomCategoryBoxes);\n});\n","import \"virtual:init-settings\";\n\nconst themeCompatModules = {};\nimport * as Mod1 from \"./discourse/components/category-boxes\";\nthemeCompatModules[\"discourse/components/category-boxes\"] = Mod1;\n\nimport * as Mod2 from \"./discourse/components/category-box\";\nthemeCompatModules[\"discourse/components/category-box\"] = Mod2;\n\nimport * as Mod3 from \"./discourse/components/category-box\";\nthemeCompatModules[\"discourse/components/category-box\"] = Mod3;\n\nimport * as Mod4 from \"./discourse/components/category-button\";\nthemeCompatModules[\"discourse/components/category-button\"] = Mod4;\n\nimport * as Mod5 from \"./discourse/components/category-button\";\nthemeCompatModules[\"discourse/components/category-button\"] = Mod5;\n\nimport * as Mod6 from \"./discourse/components/category-header\";\nthemeCompatModules[\"discourse/components/category-header\"] = Mod6;\n\nimport * as Mod7 from \"./discourse/components/custom-category-boxes\";\nthemeCompatModules[\"discourse/components/custom-category-boxes\"] = Mod7;\n\nimport * as Mod8 from \"./discourse/components/custom-category-boxes\";\nthemeCompatModules[\"discourse/components/custom-category-boxes\"] = Mod8;\n\nimport * as Mod9 from \"./discourse/initializers/initialize-category-boxes\";\nthemeCompatModules[\"discourse/initializers/initialize-category-boxes\"] = Mod9;\n\nexport default themeCompatModules;\n"],"names":["registerSettings","first_categories_header","first_categories","second_categories_header","second_categories","third_categories_header","third_categories","fourth_categories_header","fourth_categories","fifth_categories_header","fifth_categories","settings","getObjectForTheme","categoryBoxes","_setComponentTemplate","createTemplateFactory","id","block","moduleName","isStrictMode","templateOnly","categoryBox","scope","deprecationsHelper","Component","backgroundColor","htmlSafe","this","args","category","color","getAbbreviation","abbr","name","replace","split","length","charAt","toUpperCase","toLowerCase","CategoryButtonComponent","static","dt7948","g","prototype","tracked","showAdditionalCategories","i","toggle","console","log","n","action","__COLOCATED_TEMPLATE__","categoryHeader","CustomCategoryBoxes","service","router","site","classNames","noneSelected","push","join","allowedCategories","selectedCategories","categories","filter","indexOf","shouldRenderHeadings","isCategoryPage","currentRoute","includes","hasCategoriesSet","firstCategories","map","Number","secondCategories","thirdCategories","fourthCategories","fifthCategories","initializeCategoryBoxes","apiInitializer","api","renderInOutlet","themeCompatModules","Mod1","Mod2","Mod3","Mod4","Mod5","Mod6","Mod7","Mod8","Mod9"],"mappings":"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"}