{"version":3,"file":"main.kucnbz.js","sources":["theme--2/virtual:theme","theme--2/discourse/api-initializers/ai-discovery-source-avatar.js","theme--2/discourse/components/composer-peek-mode-toggle.gjs","theme--2/discourse/api-initializers/composer-peek-toggle-connector.js","theme--2/discourse/api-initializers/full-width-logo-behavior.js","theme--2/discourse/api-initializers/hamburger-click-outside-transformer.js","theme--2/discourse/components/experimental-screen.gjs","theme--2/discourse/components/user-color-palette-menu-item.gjs","theme--2/discourse/components/user-color-palette-selector.gjs","theme--2/discourse/api-initializers/horizon.gjs","theme--2/discourse/api-initializers/reposition-bulk-select.js","theme--2/discourse/components/sidebar-new-topic-button.gjs","theme--2/discourse/api-initializers/sidebar-new-topic-button-connector.js","theme--2/discourse/lib/topic-activity.js","theme--2/discourse/lib/topic-status-badge.js","theme--2/discourse/components/card/high-context-topic-card.gjs","theme--2/discourse/components/card/topic-activity-column.gjs","theme--2/discourse/components/card/topic-category-column.gjs","theme--2/discourse/components/card/topic-creator-column.gjs","theme--2/discourse/components/card/topic-likes-column.gjs","theme--2/discourse/components/card/topic-replies-column.gjs","theme--2/discourse/components/card/topic-status-column.gjs","theme--2/discourse/initializers/topic-list-columns.gjs","theme--2/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(-2);\n\nexport function themePrefix(key) {\n  return `theme_translations.-2.${key}`;\n}\n","import { apiInitializer } from \"discourse/lib/api\";\n\n// Horizon's related discussions list is roomy enough for the author's face.\nexport default apiInitializer((api) => {\n  api.registerValueTransformer(\"ai-discovery-source-avatar\", () => true);\n});\n","import Component from \"@glimmer/component\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { action } from \"@ember/object\";\nimport { service } from \"@ember/service\";\nimport bodyClass from \"discourse/helpers/body-class\";\nimport DButton from \"discourse/ui-kit/d-button\";\n\nexport default class ComposerPeekModeToggle extends Component {\n  @service composer;\n  @service keyValueStore;\n\n  @tracked\n  peekModeActive = this.keyValueStore.getItem(\"peekModeActive\") === \"true\";\n\n  get bodyCssClass() {\n    return this.peekModeActive && !this.composer.isPreviewVisible\n      ? \"peek-mode-active\"\n      : \"\";\n  }\n\n  @action\n  togglePeekMode() {\n    this.peekModeActive = !this.peekModeActive;\n    this.keyValueStore.setItem(\"peekModeActive\", this.peekModeActive);\n    if (this.composer.showPreview) {\n      this.composer.togglePreview();\n    }\n  }\n\n  <template>\n    {{bodyClass this.bodyCssClass}}\n    <DButton\n      class=\"btn-small no-text peek-mode-toggle btn-transparent\"\n      @action={{this.togglePeekMode}}\n      @icon=\"discourse-sidebar\"\n      @preventFocus={{true}}\n      @title=\"composer.peek_mode_toggle\"\n    />\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport ComposerPeekModeToggle from \"../components/composer-peek-mode-toggle.gjs\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"before-composer-toggles\", ComposerPeekModeToggle);\n});\n","import { apiInitializer } from \"discourse/lib/api\";\n\nexport default apiInitializer((api) => {\n  document.body.classList.add(\"full-width-enabled\");\n\n  // When the sidebar is visible, force the HomeLogo to be in an 'un-minimized' state.\n  api.registerValueTransformer?.(\n    \"home-logo-minimized\",\n    ({ value, context }) => {\n      if (value && context.showSidebar) {\n        return false;\n      }\n      return value;\n    }\n  );\n});\n","import { apiInitializer } from \"discourse/lib/api\";\n\nexport default apiInitializer((api) => {\n  api.registerValueTransformer(\n    \"hamburger-dropdown-click-outside-exceptions\",\n    ({ value }) => {\n      return [...value, \".topic-drafts-menu-content\"];\n    }\n  );\n});\n","import Component from \"@glimmer/component\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { action } from \"@ember/object\";\nimport didInsert from \"@ember/render-modifiers/modifiers/did-insert\";\nimport { service } from \"@ember/service\";\nimport { trustHTML } from \"@ember/template\";\nimport { bind } from \"discourse/lib/decorators\";\n\nconst DO_NOT_RENDER_LIST = [\"login\"];\n\nexport default class ExperimentalScreen extends Component {\n  @service router;\n\n  @tracked left = 0;\n  @tracked right = 0;\n  resizeObserver;\n\n  willDestroy() {\n    super.willDestroy(...arguments);\n    this.resizeObserver.disconnect();\n  }\n\n  get distanceStyles() {\n    return trustHTML(\n      `--left-distance: ${this.left}px; --right-distance: ${this.right}px;`\n    );\n  }\n\n  get shouldRender() {\n    return !DO_NOT_RENDER_LIST.includes(this.router.currentRouteName);\n  }\n\n  @bind\n  calculateDistance(element) {\n    const distance = element.getBoundingClientRect();\n    this.left = distance.left;\n    this.right = distance.right;\n  }\n\n  @action\n  onInsert(element) {\n    this.calculateDistance(element);\n\n    this.resizeObserver = new ResizeObserver((entries) => {\n      for (const entry of entries) {\n        this.calculateDistance(entry.target);\n      }\n    });\n\n    this.resizeObserver.observe(element);\n  }\n\n  <template>\n    {{#if this.shouldRender}}\n      <ul\n        class=\"experimental-screen\"\n        style={{this.distanceStyles}}\n        {{didInsert this.onInsert}}\n      >\n        <li class=\"experimental-screen__top-left\"></li>\n        <li class=\"experimental-screen__top-right\"></li>\n        <li class=\"experimental-screen__bottom-left\"></li>\n        <li class=\"experimental-screen__bottom-right\"></li>\n        <li class=\"experimental-screen__bottom-bar\"></li>\n      </ul>\n    {{/if}}\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { action } from \"@ember/object\";\nimport { trustHTML } from \"@ember/template\";\nimport DButton from \"discourse/ui-kit/d-button\";\nimport dConcatClass from \"discourse/ui-kit/helpers/d-concat-class\";\n\nexport default class UserColorPaletteMenuItem extends Component {\n  get siteStyle() {\n    return `--icon-color: ${this.args.colorPalette.accent}`;\n  }\n\n  get activeClass() {\n    if (this.args.selectedColorPaletteId === this.args.colorPalette.id) {\n      return \"active\";\n    }\n  }\n\n  @action\n  paletteSelected() {\n    this.args.paletteSelected(this.args.colorPalette);\n  }\n\n  <template>\n    <div\n      class=\"user-color-palette-menu__item\"\n      data-color-palette={{@colorPalette.name}}\n    >\n      <DButton\n        class={{dConcatClass\n          \"btn-flat user-color-palette-menu__item-choice\"\n          this.activeClass\n        }}\n        style={{trustHTML this.siteStyle}}\n        @action={{this.paletteSelected}}\n        @icon=\"circle\"\n        @translatedLabel={{@colorPalette.name}}\n      />\n    </div>\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { action } from \"@ember/object\";\nimport { service } from \"@ember/service\";\nimport { isEmpty } from \"@ember/utils\";\nimport { Promise } from \"rsvp\";\nimport DMenu from \"discourse/float-kit/components/d-menu\";\nimport { reload } from \"discourse/helpers/page-reloader\";\nimport { ajax } from \"discourse/lib/ajax\";\nimport {\n  listColorSchemes,\n  updateColorSchemeCookie,\n} from \"discourse/lib/color-scheme-picker\";\nimport cookie from \"discourse/lib/cookie\";\nimport dConcatClass from \"discourse/ui-kit/helpers/d-concat-class\";\nimport dIcon from \"discourse/ui-kit/helpers/d-icon\";\nimport UserColorPaletteMenuItem from \"./user-color-palette-menu-item.gjs\";\n\nconst HORIZON_PALETTES = [\n  \"Horizon\",\n  \"Marigold\",\n  \"Violet\",\n  \"Lily\",\n  \"Clover\",\n  \"Royal\",\n];\n\nexport default class UserColorPaletteSelector extends Component {\n  @service currentUser;\n  @service site;\n  @service session;\n\n  @tracked anonColorPaletteId = this.#loadAnonColorPalette();\n  @tracked userColorPaletteId = this.session.userColorSchemeId;\n  @tracked cssLoaded = true;\n\n  get userColorPalettes() {\n    const availablePalettes = listColorSchemes(this.site)\n      ?.map((userPalette) => {\n        const hex = userPalette.colors.find(\n          (color) => color.name === \"tertiary\"\n        )?.hex;\n        return {\n          ...userPalette,\n          accent: hex && `#${hex}`,\n        };\n      })\n      .filter((userPalette) => {\n        return HORIZON_PALETTES.some((palette) => {\n          return (\n            userPalette.name.toLowerCase().includes(palette.toLowerCase()) &&\n            userPalette.accent\n          );\n        });\n      })\n      .sort();\n\n    // Match the light scheme with the corresponding dark id based in the name\n    return (\n      availablePalettes\n        ?.map((palette) => {\n          if (palette.is_dark) {\n            return palette;\n          }\n\n          const normalizedLightName = palette.name.toLowerCase();\n\n          const correspondingDarkModeId = availablePalettes.find(\n            (item) =>\n              item.is_dark &&\n              normalizedLightName ===\n                item.name.toLowerCase().replace(/\\s+dark$/, \"\")\n          )?.id;\n\n          return {\n            ...palette,\n            correspondingDarkModeId,\n          };\n        })\n        // Only want to show palettes that have corresponding light/dark modes\n        .filter((palette) => !palette.is_dark)\n    );\n  }\n\n  get selectedColorPaletteId() {\n    if (this.currentUser) {\n      return this.userColorPaletteId;\n    }\n\n    return this.anonColorPaletteId;\n  }\n\n  @action\n  onRegisterMenu(api) {\n    this.dMenu = api;\n  }\n\n  @action\n  paletteSelected(selectedPalette) {\n    if (selectedPalette.id === this.selectedColorPaletteId) {\n      return;\n    }\n\n    this.#updatePreference(selectedPalette);\n    this.#changeSiteColorPalette(selectedPalette);\n    this.dMenu.close();\n  }\n\n  #updatePreference(selectedPalette) {\n    updateColorSchemeCookie(selectedPalette.id);\n    updateColorSchemeCookie(selectedPalette.correspondingDarkModeId, {\n      dark: true,\n    });\n\n    if (!this.currentUser) {\n      this.anonColorPaletteId = selectedPalette.id;\n    } else {\n      this.userColorPaletteId = selectedPalette.id;\n    }\n  }\n\n  #loadAnonColorPalette() {\n    const storedAnonPaletteId = cookie(\"color_scheme_id\");\n    if (storedAnonPaletteId) {\n      return parseInt(storedAnonPaletteId, 10);\n    }\n  }\n\n  async #changeSiteColorPalette(colorPalette) {\n    this.cssLoaded = false;\n\n    const lightPaletteId = colorPalette.id;\n    const darkPaletteId = colorPalette.correspondingDarkModeId;\n    const darkTag = document.querySelector(\"link.dark-scheme\");\n\n    // TODO(osama) once we have built-in light/dark modes for each palette, we\n    // can stop making the 2nd ajax call for the dark palette and replace it\n    // with a include_dark_scheme param on the ajax call for the light\n    // palette which will include the href for the dark palette in the response\n    if (!darkTag) {\n      reload();\n      return;\n    }\n\n    const lightPaletteInfo = await ajax(\n      `/color-scheme-stylesheet/${lightPaletteId}/${colorPalette.theme_id}.json`\n    );\n    const darkPaletteInfo = await ajax(\n      `/color-scheme-stylesheet/${darkPaletteId}/${colorPalette.theme_id}.json`\n    );\n\n    Promise.all([\n      this.#preloadAndSwapCSS(lightPaletteInfo.new_href, \"light-scheme\"),\n      this.#preloadAndSwapCSS(darkPaletteInfo.new_href, \"dark-scheme\"),\n    ]).then(() => {\n      this.cssLoaded = true;\n    });\n  }\n\n  #preloadAndSwapCSS(newHref, existingLinkClass) {\n    return new Promise((resolve) => {\n      const existingLink = document.querySelector(\n        `link[rel='stylesheet'].${existingLinkClass}`\n      );\n      const newTag = document.createElement(\"link\");\n\n      newTag.rel = \"preload\";\n      newTag.href = newHref;\n      newTag.as = \"style\";\n      newTag.onload = () => {\n        existingLink.href = newHref;\n        newTag.remove();\n        resolve();\n      };\n\n      document.head.appendChild(newTag);\n    });\n  }\n\n  <template>\n    {{#unless (isEmpty this.userColorPalettes)}}\n      <DMenu\n        class={{dConcatClass\n          \"btn-flat user-color-palette-selector sidebar-footer-actions-button\"\n          (if this.cssLoaded \"user-color-palette-css-loaded\")\n        }}\n        data-selected-color-palette-id={{this.selectedColorPaletteId}}\n        @identifier=\"user-color-palette-selector\"\n        @inline={{true}}\n        @onRegisterApi={{this.onRegisterMenu}}\n        @placementStrategy=\"fixed\"\n      >\n        <:trigger>\n          {{dIcon \"paintbrush\"}}\n        </:trigger>\n        <:content>\n          <div class=\"user-color-palette-menu\">\n            <div class=\"user-color-palette-menu__content\">\n              {{#each this.userColorPalettes as |colorPalette|}}\n                <UserColorPaletteMenuItem\n                  @colorPalette={{colorPalette}}\n                  @paletteSelected={{this.paletteSelected}}\n                  @selectedColorPaletteId={{this.selectedColorPaletteId}}\n                />\n              {{/each}}\n            </div>\n          </div>\n        </:content>\n      </DMenu>\n    {{/unless}}\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport ExperimentalScreen from \"../components/experimental-screen.gjs\";\nimport UserColorPaletteSelector from \"../components/user-color-palette-selector.gjs\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"above-main-container\", ExperimentalScreen);\n  api.renderInOutlet(\"sidebar-footer-actions\", UserColorPaletteSelector);\n});\n","import { apiInitializer } from \"discourse/lib/api\";\n\nexport default apiInitializer((api) => {\n  api.registerValueTransformer(\"bulk-select-in-nav-controls\", () => {\n    return true;\n  });\n});\n","import Component from \"@glimmer/component\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { inject as controller } from \"@ember/controller\";\nimport { action } from \"@ember/object\";\nimport didInsert from \"@ember/render-modifiers/modifiers/did-insert\";\nimport didUpdate from \"@ember/render-modifiers/modifiers/did-update\";\nimport willDestroy from \"@ember/render-modifiers/modifiers/will-destroy\";\nimport { service } from \"@ember/service\";\nimport CreateTopicButton from \"discourse/components/create-topic-button\";\nimport bodyClass from \"discourse/helpers/body-class\";\nimport { applyValueTransformer } from \"discourse/lib/transformer\";\n\nexport default class SidebarNewTopicButton extends Component {\n  @service composer;\n  @service currentUser;\n  @service siteSettings;\n  @service site;\n  @service router;\n  @service header;\n  @service appEvents;\n  @service sidebarState;\n  @controller application;\n\n  @tracked category;\n  @tracked tag;\n\n  // Keyed on the panel that owns the sidebar rather than on the path: every takeover displaces\n  // the forum navigation this button is part of, and most have no distinguishing URL prefix.\n  // `isForcingSidebar` is not equivalent, since a panel can take over without setting it.\n  get shouldRender() {\n    return (\n      this.currentUser &&\n      this.sidebarState.showMainPanel &&\n      this.application.sidebarEnabled\n    );\n  }\n\n  get canCreateTopic() {\n    return this.currentUser?.can_create_topic;\n  }\n\n  get draftCount() {\n    return this.currentUser?.get(\"draft_count\");\n  }\n\n  get createTopicLabel() {\n    const defaultKey = \"topic.create\";\n    let value = defaultKey;\n\n    if (\n      this.site.shared_drafts_category_id &&\n      this.category?.id === this.site.shared_drafts_category_id\n    ) {\n      value = \"topic.create_shared_draft\";\n    }\n\n    return applyValueTransformer(\"create-topic-label\", value, {\n      site: this.site,\n      defaultKey,\n      category: this.category,\n      currentUser: this.currentUser,\n    });\n  }\n\n  get createTopicIcon() {\n    const defaultIcon = \"far-pen-to-square\";\n\n    return applyValueTransformer(\"create-topic-icon\", defaultIcon, {\n      site: this.site,\n      defaultIcon,\n      category: this.category,\n      currentUser: this.currentUser,\n    });\n  }\n\n  get createTopicTargetCategory() {\n    let subcategory;\n\n    if (\n      !this.category?.canCreateTopic &&\n      this.siteSettings.default_subcategory_on_read_only_category\n    ) {\n      subcategory = this.category?.subcategoryWithCreateTopicPermission;\n    }\n\n    return subcategory ?? this.category;\n  }\n\n  @action\n  createNewTopic() {\n    this.composer.openNewTopic({\n      category: this.createTopicTargetCategory,\n      tags: this.tag?.name,\n    });\n  }\n\n  @action\n  getCategoryAndTag() {\n    this.category = this.router.currentRoute.attributes?.category || null;\n    this.tag = this.router.currentRoute.attributes?.tag || null;\n  }\n\n  @action\n  watchForComposer() {\n    // this covers opening drafts from the hamburger menu\n    this.appEvents.on(\"composer:will-open\", this, this.closeHamburger);\n  }\n\n  @action\n  stopWatchingForComposer() {\n    this.appEvents.off(\"composer:will-open\", this, this.closeHamburger);\n  }\n\n  @action\n  closeHamburger() {\n    this.header.hamburgerVisible = false;\n  }\n\n  <template>\n    {{#if this.shouldRender}}\n      {{bodyClass \"horizon-new-topic-button-enabled\"}}\n      <CreateTopicButton\n        class=\"sidebar-new-topic-button__wrapper\"\n        @action={{this.createNewTopic}}\n        @btnClass=\"sidebar-new-topic-button\"\n        @btnTypeClass=\"btn-primary\"\n        @canCreateTopic={{this.canCreateTopic}}\n        @icon={{this.createTopicIcon}}\n        @label={{this.createTopicLabel}}\n        @showDrafts={{gt this.draftCount 0}}\n        {{didInsert this.getCategoryAndTag}}\n        {{didUpdate this.getCategoryAndTag this.router.currentRoute}}\n        {{didInsert this.watchForComposer}}\n        {{willDestroy this.stopWatchingForComposer}}\n      />\n    {{/if}}\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport SidebarNewTopicButton from \"../components/sidebar-new-topic-button.gjs\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"before-sidebar-sections\", SidebarNewTopicButton);\n});\n","const UPDATED_AFTER_LAST_POST_THRESHOLD_DAYS = 1;\n\nexport function topicWasUpdatedAfterLastPost(topic) {\n  const bumpedAt = moment(topic.bumped_at);\n  const lastPostedAt = moment(topic.last_posted_at);\n  const bumpedLastPostedDaysDiff = moment\n    .duration(bumpedAt.diff(lastPostedAt))\n    .asDays();\n\n  return (\n    bumpedAt.isAfter(lastPostedAt) &&\n    bumpedLastPostedDaysDiff > UPDATED_AFTER_LAST_POST_THRESHOLD_DAYS\n  );\n}\n","export function getTopicStatusBadge(topic) {\n  if (topic.is_hot) {\n    return {\n      icon: \"fire\",\n      text: \"topic_statuses.hot.title\",\n      className: \"--hot\",\n    };\n  }\n\n  if (topic.pinned || topic.pinned_globally) {\n    return {\n      icon: \"thumbtack\",\n      text: \"topic_statuses.pinned.title\",\n      className: \"--pinned\",\n    };\n  }\n\n  return null;\n}\n","import Component from \"@glimmer/component\";\nimport { on } from \"@ember/modifier\";\nimport { action } from \"@ember/object\";\nimport { service } from \"@ember/service\";\nimport { themePrefix } from \"virtual:theme\";\nimport PluginOutlet from \"discourse/components/plugin-outlet\";\nimport BulkSelectCheckbox from \"discourse/components/topic-list/bulk-select-checkbox\";\nimport TopicExcerpt from \"discourse/components/topic-list/topic-excerpt\";\nimport TopicLink from \"discourse/components/topic-list/topic-link\";\nimport UnreadIndicator from \"discourse/components/topic-list/unread-indicator\";\nimport TopicPostBadges from \"discourse/components/topic-post-badges\";\nimport TopicStatus from \"discourse/components/topic-status\";\nimport lazyHash from \"discourse/helpers/lazy-hash\";\nimport topicFeaturedLink from \"discourse/helpers/topic-featured-link\";\nimport { shortDateNoYear } from \"discourse/lib/formatter\";\nimport dAvatar from \"discourse/ui-kit/helpers/d-avatar\";\nimport { categoryLinkHTML } from \"discourse/ui-kit/helpers/d-category-link\";\nimport dConcatClass from \"discourse/ui-kit/helpers/d-concat-class\";\nimport dDiscourseTags from \"discourse/ui-kit/helpers/d-discourse-tags\";\nimport dFormatDate from \"discourse/ui-kit/helpers/d-format-date\";\nimport dIcon from \"discourse/ui-kit/helpers/d-icon\";\nimport dNumber from \"discourse/ui-kit/helpers/d-number\";\nimport { i18n } from \"discourse-i18n\";\nimport { topicWasUpdatedAfterLastPost } from \"../../lib/topic-activity.js\";\nimport { getTopicStatusBadge } from \"../../lib/topic-status-badge.js\";\n\nexport default class HighContextTopicCard extends Component {\n  @service capabilities;\n\n  get hasSolved() {\n    return (\n      this.args.topic.has_accepted_answer || this.args.topic.accepted_answer\n    );\n  }\n\n  get hasVotes() {\n    return this.args.topic.can_vote && this.args.topic.vote_count > 0;\n  }\n\n  get voteCountLabel() {\n    return i18n(themePrefix(\"vote_count\"), {\n      count: this.args.topic.vote_count,\n    });\n  }\n\n  get hasAssigned() {\n    return this.args.topic.assigned_to_user || this.hasIndirectAssignments;\n  }\n\n  get assignedUser() {\n    return this.args.topic.assigned_to_user;\n  }\n\n  get hasIndirectAssignments() {\n    const indirect = this.args.topic.indirectly_assigned_to;\n    return indirect && Object.keys(indirect).length > 0;\n  }\n\n  get indirectAssignees() {\n    const indirect = this.args.topic.indirectly_assigned_to;\n    if (!indirect) {\n      return [];\n    }\n    return Object.values(indirect).map((assignment) => ({\n      user: assignment.assigned_to,\n      postNumber: assignment.post_number,\n    }));\n  }\n\n  get hasTags() {\n    return this.args.topic.tags?.length > 0;\n  }\n\n  get hasReplies() {\n    return this.args.topic.replyCount > 0;\n  }\n\n  get hasLikes() {\n    return this.args.topic.like_count > 0;\n  }\n\n  get replyCountLabel() {\n    return i18n(themePrefix(\"reply_count\"), {\n      count: this.args.topic.replyCount,\n    });\n  }\n\n  get likeCountLabel() {\n    return i18n(themePrefix(\"like_count\"), {\n      count: this.args.topic.like_count,\n    });\n  }\n\n  get hasExcerpt() {\n    return this.args.topic.excerpt || this.args.topic.hasExcerpt;\n  }\n\n  get statusBadge() {\n    return getTopicStatusBadge(this.args.topic);\n  }\n\n  get topicCreator() {\n    return this.args.topic.creator;\n  }\n\n  get hasLastReplyContext() {\n    return this.hasReplies && !topicWasUpdatedAfterLastPost(this.args.topic);\n  }\n\n  get hasContext() {\n    return this.hasLastReplyContext || this.hasAssigned;\n  }\n\n  get lastPoster() {\n    return {\n      user: this.args.topic.lastPosterUser,\n      username: this.args.topic.last_poster_username,\n    };\n  }\n\n  get topicTimestamp() {\n    return shortDateNoYear(new Date(this.args.topic.created_at));\n  }\n\n  @action\n  onTitleFocus(event) {\n    event.target.closest(\".topic-list-item\").classList.add(\"selected\");\n  }\n\n  @action\n  onTitleBlur(event) {\n    event.target.closest(\".topic-list-item\").classList.remove(\"selected\");\n  }\n\n  <template>\n    {{#if @bulkSelectEnabled}}\n      <BulkSelectCheckbox\n        class=\"hc-topic-card__bulk-select\"\n        @isSelected={{@isSelected}}\n        @onToggle={{@onBulkSelectToggle}}\n        @topic={{@topic}}\n      />\n    {{/if}}\n\n    <td class=\"hc-topic-card\">\n      <div class=\"hc-topic-card__header\">\n        <div class=\"hc-topic-card__op\">\n          <div class=\"hc-topic-card__avatar\">\n            {{dAvatar this.topicCreator imageSize=\"medium\"}}\n          </div>\n          <div class=\"hc-topic-card__op-info\">\n            <span class=\"hc-topic-card__op-timestamp\">\n              {{i18n (themePrefix \"posted\")}}\n              {{this.topicTimestamp}}\n            </span>\n            <span class=\"hc-topic-card__op-name\">\n              {{i18n\n                (themePrefix \"by_username\")\n                username=this.topicCreator.username\n              }}</span>\n          </div>\n\n        </div>\n        <div class=\"hc-topic-card__status-tags\">\n          {{#if this.hasSolved}}\n            <span\n              aria-label={{i18n (themePrefix \"solved\")}}\n              class=\"hc-topic-card__status --solved\"\n            >\n              {{#if this.capabilities.viewport.sm}}\n                {{i18n (themePrefix \"solved\")}}\n              {{/if}}\n              {{dIcon \"square-check\"}}\n            </span>\n          {{/if}}\n\n          {{#if this.statusBadge}}\n            <span\n              aria-label={{i18n this.statusBadge.text}}\n              class={{dConcatClass\n                \"hc-topic-card__status\"\n                this.statusBadge.className\n              }}\n            >\n              {{dIcon this.statusBadge.icon}}\n\n              {{#if this.capabilities.viewport.sm}}\n                <span class=\"hc-topic-card__status-text\">{{i18n\n                    this.statusBadge.text\n                  }}</span>\n              {{/if}}\n            </span>\n          {{/if}}\n          <PluginOutlet\n            @name=\"topic-list-before-link\"\n            @outletArgs={{lazyHash topic=@topic}}\n          />\n        </div>\n      </div>\n\n      <div class=\"hc-topic-card__content\">\n        <div aria-level=\"2\" class=\"hc-topic-card__title\" role=\"heading\">\n          <TopicStatus @context=\"topic-list\" @topic={{@topic}} />\n          <TopicLink\n            class=\"hc-topic-card__title raw-link raw-topic-link\"\n            @topic={{@topic}}\n            {{on \"focus\" this.onTitleFocus}}\n            {{on \"blur\" this.onTitleBlur}}\n          />\n          {{~#if @topic.featured_link~}}\n            &nbsp;{{topicFeaturedLink @topic}}\n          {{~/if~}}\n          <PluginOutlet\n            @name=\"topic-list-after-title\"\n            @outletArgs={{lazyHash topic=@topic}}\n          />\n          <UnreadIndicator @topic={{@topic}} />\n          <TopicPostBadges\n            @unreadPosts={{@topic.unread_posts}}\n            @unseen={{@topic.unseen}}\n            @url={{@topic.lastUnreadUrl}}\n          />\n        </div>\n\n        {{#if this.hasExcerpt}}\n          <TopicExcerpt class=\"hc-topic-card__excerpt\" @topic={{@topic}} />\n        {{/if}}\n      </div>\n\n      {{#if this.hasContext}}\n        <div class=\"hc-topic-card__context\">\n          {{#if this.hasLastReplyContext}}\n            <div class=\"hc-topic-card__last-reply\">\n              {{dAvatar this.lastPoster.user imageSize=\"tiny\"}}\n              <span\n                class=\"hc-topic-card__last-reply-name\"\n              >{{this.lastPoster.username}}</span>\n              <span>{{i18n (themePrefix \"replied\")}}</span>\n              <span class=\"hc-topic-card__time\">\n                {{dFormatDate @topic.last_posted_at leaveAgo=\"true\"}}\n              </span>\n            </div>\n          {{/if}}\n          {{#if this.hasAssigned}}\n            {{#if this.assignedUser}}\n              <div class=\"hc-topic-card__assigned\">\n                {{dIcon \"user-plus\"}}\n                <span class=\"sr-only\">{{i18n\n                    \"discourse_assign.assigned_to\"\n                  }}</span>\n                <span\n                  class=\"hc-topic-card__assigned-name\"\n                >{{this.assignedUser.username}}</span>\n              </div>\n            {{/if}}\n            {{#each this.indirectAssignees as |assignment|}}\n              <div class=\"hc-topic-card__assigned\">\n                {{dIcon \"user-plus\"}}\n                <span class=\"sr-only\">{{i18n\n                    \"discourse_assign.assigned_to\"\n                  }}</span>\n                <span\n                  class=\"hc-topic-card__assigned-name\"\n                >{{assignment.user.username}}</span>\n                <span\n                  class=\"hc-topic-card__assigned-post\"\n                >#{{assignment.postNumber}}</span>\n              </div>\n            {{/each}}\n          {{/if}}\n        </div>\n      {{/if}}\n\n      <div class=\"hc-topic-card__footer\">\n        <div class=\"hc-topic-card__category-tags\">\n          {{#unless @hideCategory}}\n            <div class=\"hc-topic-card__category\">\n              {{categoryLinkHTML @topic.category}}\n            </div>\n          {{/unless}}\n\n          {{#if this.hasTags}}\n            {{dDiscourseTags\n              @topic\n              mode=\"list\"\n              className=\"hc-topic-card__tags\"\n            }}\n          {{/if}}\n        </div>\n\n        <div class=\"hc-topic-card__stats\">\n          {{#if this.hasVotes}}\n            <span\n              aria-label={{this.voteCountLabel}}\n              class=\"hc-topic-card__votes\"\n              title={{this.voteCountLabel}}\n            >\n              {{dIcon \"check-to-slot\" skipTitle=true}}\n              <span class=\"hc-topic-card__votes-count\">{{dNumber\n                  @topic.vote_count\n                }}</span>\n            </span>\n          {{/if}}\n\n          {{#if this.hasReplies}}\n            <span\n              aria-label={{this.replyCountLabel}}\n              class=\"hc-topic-card__replies\"\n              title={{this.replyCountLabel}}\n            >\n              {{dIcon \"reply\" skipTitle=true}}\n              <span class=\"hc-topic-card__count\">{{dNumber\n                  @topic.replyCount\n                }}</span>\n            </span>\n          {{/if}}\n\n          {{#if this.hasLikes}}\n            <span\n              aria-label={{this.likeCountLabel}}\n              class=\"hc-topic-card__likes\"\n              title={{this.likeCountLabel}}\n            >\n              {{dIcon \"heart\" skipTitle=true}}\n              <span class=\"hc-topic-card__count\">{{dNumber\n                  @topic.like_count\n                }}</span>\n            </span>\n          {{/if}}\n        </div>\n      </div>\n    </td>\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport dConcatClass from \"discourse/ui-kit/helpers/d-concat-class\";\nimport dFormatDate from \"discourse/ui-kit/helpers/d-format-date\";\nimport { topicWasUpdatedAfterLastPost } from \"../../lib/topic-activity.js\";\n\nexport default class TopicActivityColumn extends Component {\n  get topicUser() {\n    if (topicWasUpdatedAfterLastPost(this.args.topic)) {\n      return {\n        username: undefined,\n        class: \"--updated\",\n      };\n    }\n\n    if (this.args.topic.posts_count > 1) {\n      return {\n        username: this.args.topic.last_poster_username,\n        class: \"--replied\",\n      };\n    } else if (this.args.topic.posts_count === 1) {\n      return {\n        username: this.args.topic.last_poster_username,\n        class: \"--created\",\n      };\n    } else {\n      return;\n    }\n  }\n\n  <template>\n    <span class={{dConcatClass \"topic-activity\" this.topicUser.class}}>\n      {{#if this.topicUser.username}}\n        <span\n          class=\"topic-activity__username\"\n        >{{this.topicUser.username}}</span>\n        <span class=\"dot-separator\"></span>\n      {{/if}}\n      <div class=\"topic-activity__time\">\n        {{dFormatDate @topic.bumpedAt leaveAgo=\"true\" format=\"tiny\"}}\n      </div>\n    </span>\n  </template>\n}\n","import { categoryLinkHTML } from \"discourse/ui-kit/helpers/d-category-link\";\n\nconst TopicCategoryColumn = <template>\n  {{categoryLinkHTML @topic.category}}\n</template>;\n\nexport default TopicCategoryColumn;\n","import Component from \"@glimmer/component\";\nimport dAvatar from \"discourse/ui-kit/helpers/d-avatar\";\n\nexport default class TopicCreatorColumn extends Component {\n  get topicCreator() {\n    return {\n      user: this.args.topic.creator,\n      class: \"--topic-creator\",\n    };\n  }\n\n  <template>\n    <div class={{this.topicCreator.class}}>\n      {{dAvatar this.topicCreator.user imageSize=\"small\"}}\n    </div>\n  </template>\n}\n","import { themePrefix } from \"virtual:theme\";\nimport dIcon from \"discourse/ui-kit/helpers/d-icon\";\nimport { i18n } from \"discourse-i18n\";\n\nconst TopicLikesColumn = <template>\n  {{#if @topic.like_count}}\n    <span\n      aria-label={{i18n (themePrefix \"like_count\") count=@topic.like_count}}\n      class=\"topic-likes\"\n    >{{dIcon \"heart\"}}{{@topic.like_count}}</span>\n  {{/if}}\n</template>;\n\nexport default TopicLikesColumn;\n","import { themePrefix } from \"virtual:theme\";\nimport dIcon from \"discourse/ui-kit/helpers/d-icon\";\nimport dNumber from \"discourse/ui-kit/helpers/d-number\";\nimport { i18n } from \"discourse-i18n\";\n\nconst TopicRepliesColumn = <template>\n  {{#if @topic.replyCount}}\n    <span\n      aria-label={{i18n (themePrefix \"reply_count\") count=@topic.replyCount}}\n      class=\"topic-replies\"\n    >{{dIcon \"reply\"}}{{dNumber @topic.replyCount}}</span>\n  {{/if}}\n</template>;\n\nexport default TopicRepliesColumn;\n","import Component from \"@glimmer/component\";\nimport dIcon from \"discourse/ui-kit/helpers/d-icon\";\nimport { i18n } from \"discourse-i18n\";\nimport { getTopicStatusBadge } from \"../../lib/topic-status-badge.js\";\n\nexport default class TopicStatusColumn extends Component {\n  get badge() {\n    return getTopicStatusBadge(this.args.topic);\n  }\n\n  <template>\n    {{#if this.badge}}\n      <span class=\"topic-status-card {{this.badge.className}}\">{{dIcon\n          this.badge.icon\n        }}<p class=\"topic-status-card__name\">{{i18n this.badge.text}}</p></span>\n    {{/if}}\n  </template>\n}\n","import { settings } from \"virtual:theme\";\nimport HeaderTopicCell from \"discourse/components/topic-list/header/topic-cell\";\nimport { withPluginApi } from \"discourse/lib/plugin-api\";\nimport HighContextTopicCard from \"../components/card/high-context-topic-card.gjs\";\nimport TopicActivityColumn from \"../components/card/topic-activity-column.gjs\";\nimport TopicCategoryColumn from \"../components/card/topic-category-column.gjs\";\nimport TopicCreatorColumn from \"../components/card/topic-creator-column.gjs\";\nimport TopicRepliesColumn from \"../components/card/topic-replies-column.gjs\";\nimport TopicStatusColumn from \"../components/card/topic-status-column.gjs\";\n\nconst TOPIC_CARD_CONTEXTS = [\n  \"discovery\",\n  \"suggested\",\n  \"related\",\n  \"group-activity\",\n  \"user-activity\",\n];\n\nconst SIMPLE_CARD_CONTEXTS = [\"suggested\", \"related\"];\n\nconst isTopicCardContext = ({ listContext, category }) =>\n  TOPIC_CARD_CONTEXTS.includes(listContext) && !category?.doc_index_topic_id;\n\nconst isSimpleCardContext = ({ listContext }) =>\n  SIMPLE_CARD_CONTEXTS.includes(listContext);\n\nconst TopicActivity = <template>\n  <td class=\"topic-activity-data\">\n    <TopicActivityColumn @topic={{@topic}} />\n  </td>\n</template>;\n\nconst TopicStatus = <template>\n  <td class=\"topic-status-data\">\n    <TopicStatusColumn @topic={{@topic}} />\n  </td>\n</template>;\n\nconst TopicCategory = <template>\n  <td class=\"topic-category-data\">\n    <TopicCategoryColumn @topic={{@topic}} />\n  </td>\n</template>;\n\nconst TopicReplies = <template>\n  <td class=\"topic-likes-replies-data\">\n    <TopicRepliesColumn @topic={{@topic}} />\n  </td>\n</template>;\n\nconst TopicCreator = <template>\n  <td class=\"topic-creator-data\">\n    <TopicCreatorColumn @topic={{@topic}} />\n  </td>\n</template>;\n\nconst HighContextCard = <template>\n  <HighContextTopicCard\n    @bulkSelectEnabled={{@bulkSelectEnabled}}\n    @hideCategory={{@hideCategory}}\n    @isSelected={{@isSelected}}\n    @onBulkSelectToggle={{@onBulkSelectToggle}}\n    @topic={{@topic}}\n  />\n</template>;\n\nexport default {\n  name: \"topic-list-customizations\",\n\n  initialize() {\n    const isHighContext = settings.topic_card_high_context;\n\n    function applySimpleLayout(columns) {\n      columns.add(\"topic-status\", {\n        item: TopicStatus,\n        after: \"topic-author\",\n      });\n      columns.add(\"topic-category\", {\n        item: TopicCategory,\n        after: \"topic-status\",\n      });\n      columns.add(\"topic-likes-replies\", {\n        item: TopicReplies,\n        after: \"topic-author-avatar\",\n      });\n      columns.add(\"topic-creator\", {\n        item: TopicCreator,\n        after: \"topic-author-avatar\",\n      });\n\n      columns.delete(\"views\");\n      columns.delete(\"replies\");\n\n      columns.add(\"topic-activity\", {\n        item: TopicActivity,\n        after: \"title\",\n      });\n      columns.delete(\"posters\");\n      columns.delete(\"activity\");\n    }\n\n    function applyHighContextLayout(columns) {\n      columns.delete(\"topic\");\n      columns.delete(\"posters\");\n      columns.delete(\"replies\");\n      columns.delete(\"views\");\n      columns.delete(\"activity\");\n      columns.add(\"high-context-card\", {\n        header: HeaderTopicCell,\n        item: HighContextCard,\n      });\n    }\n\n    withPluginApi((api) => {\n      api.registerValueTransformer(\n        \"topic-list-class\",\n        ({ value: classes, context }) => {\n          if (isTopicCardContext(context)) {\n            classes.push(\"--d-topic-cards\");\n          }\n          return classes;\n        }\n      );\n\n      api.registerValueTransformer(\n        \"topic-list-columns\",\n        ({ value: columns, context }) => {\n          if (!isTopicCardContext(context)) {\n            return columns;\n          }\n\n          isHighContext && !isSimpleCardContext(context)\n            ? applyHighContextLayout(columns)\n            : applySimpleLayout(columns);\n\n          return columns;\n        }\n      );\n\n      api.registerValueTransformer(\n        \"topic-list-item-class\",\n        ({ value: classes, context }) => {\n          if (!isTopicCardContext(context)) {\n            return classes;\n          }\n\n          if (isHighContext && !isSimpleCardContext(context)) {\n            classes.push(\"--high-context\");\n          }\n\n          if (context.topic.replyCount) {\n            classes.push(\"--has-replies\");\n          }\n\n          if (\n            context.topic.is_hot ||\n            context.topic.pinned ||\n            context.topic.pinned_globally\n          ) {\n            classes.push(\"--has-status-card\");\n          }\n\n          return classes;\n        }\n      );\n\n      // Disable mobile layout for topic card contexts\n      api.registerValueTransformer(\n        \"topic-list-item-mobile-layout\",\n        ({ value, context }) => {\n          if (isTopicCardContext(context)) {\n            return false;\n          }\n          return value;\n        }\n      );\n\n      api.registerBehaviorTransformer(\n        \"topic-list-item-click\",\n        ({ context, next }) => {\n          const { event, topic, listContext } = context;\n\n          if (\n            !isTopicCardContext({\n              listContext,\n              category: topic?.category,\n            })\n          ) {\n            return next();\n          }\n\n          if (\n            (event.target.closest(\"a, button, input\") &&\n              !event.target.closest(\".topic-excerpt\")) ||\n            event.target.closest(\".topic-excerpt-more\")\n          ) {\n            return next();\n          }\n\n          event.preventDefault();\n          event.stopPropagation();\n\n          const topicLink = event.target\n            .closest(\"tr\")\n            .querySelector(\"a.raw-topic-link\");\n\n          if (event.button === 1) {\n            // click events with button=1 can't naturally trigger browser navigation\n            window.open(topicLink.href, \"_blank\", \"noopener,noreferrer\");\n            return;\n          }\n\n          topicLink.dispatchEvent(\n            new MouseEvent(\"click\", {\n              ctrlKey: event.ctrlKey,\n              metaKey: event.metaKey,\n              shiftKey: event.shiftKey,\n              button: event.button,\n              which: event.which,\n              bubbles: true,\n              cancelable: true,\n            })\n          );\n        }\n      );\n    });\n  },\n};\n","import * as Mod1 from \"./discourse/api-initializers/ai-discovery-source-avatar\";\nimport * as Mod2 from \"./discourse/api-initializers/composer-peek-toggle-connector\";\nimport * as Mod3 from \"./discourse/api-initializers/full-width-logo-behavior\";\nimport * as Mod4 from \"./discourse/api-initializers/hamburger-click-outside-transformer\";\nimport * as Mod5 from \"./discourse/api-initializers/horizon\";\nimport * as Mod6 from \"./discourse/api-initializers/reposition-bulk-select\";\nimport * as Mod7 from \"./discourse/api-initializers/sidebar-new-topic-button-connector\";\nimport * as Mod8 from \"./discourse/components/card/high-context-topic-card\";\nimport * as Mod9 from \"./discourse/components/card/topic-activity-column\";\nimport * as Mod10 from \"./discourse/components/card/topic-category-column\";\nimport * as Mod11 from \"./discourse/components/card/topic-creator-column\";\nimport * as Mod12 from \"./discourse/components/card/topic-likes-column\";\nimport * as Mod13 from \"./discourse/components/card/topic-replies-column\";\nimport * as Mod14 from \"./discourse/components/card/topic-status-column\";\nimport * as Mod15 from \"./discourse/components/composer-peek-mode-toggle\";\nimport * as Mod16 from \"./discourse/components/experimental-screen\";\nimport * as Mod17 from \"./discourse/components/sidebar-new-topic-button\";\nimport * as Mod18 from \"./discourse/components/user-color-palette-menu-item\";\nimport * as Mod19 from \"./discourse/components/user-color-palette-selector\";\nimport * as Mod20 from \"./discourse/initializers/topic-list-columns\";\nimport * as Mod21 from \"./discourse/lib/topic-activity\";\nimport * as Mod22 from \"./discourse/lib/topic-status-badge\";\nconst compatModules = {\n  \"discourse/api-initializers/ai-discovery-source-avatar\": Mod1,\n  \"discourse/api-initializers/composer-peek-toggle-connector\": Mod2,\n  \"discourse/api-initializers/full-width-logo-behavior\": Mod3,\n  \"discourse/api-initializers/hamburger-click-outside-transformer\": Mod4,\n  \"discourse/api-initializers/horizon\": Mod5,\n  \"discourse/api-initializers/reposition-bulk-select\": Mod6,\n  \"discourse/api-initializers/sidebar-new-topic-button-connector\": Mod7,\n  \"discourse/components/card/high-context-topic-card\": Mod8,\n  \"discourse/components/card/topic-activity-column\": Mod9,\n  \"discourse/components/card/topic-category-column\": Mod10,\n  \"discourse/components/card/topic-creator-column\": Mod11,\n  \"discourse/components/card/topic-likes-column\": Mod12,\n  \"discourse/components/card/topic-replies-column\": Mod13,\n  \"discourse/components/card/topic-status-column\": Mod14,\n  \"discourse/components/composer-peek-mode-toggle\": Mod15,\n  \"discourse/components/experimental-screen\": Mod16,\n  \"discourse/components/sidebar-new-topic-button\": Mod17,\n  \"discourse/components/user-color-palette-menu-item\": Mod18,\n  \"discourse/components/user-color-palette-selector\": Mod19,\n  \"discourse/initializers/topic-list-columns\": Mod20,\n  \"discourse/lib/topic-activity\": Mod21,\n  \"discourse/lib/topic-status-badge\": Mod22,\n};\nexport { compatModules };\nexport default compatModules;\n"],"names":["settings","getObjectForTheme","themePrefix","key","aiDiscoverySourceAvatar","apiInitializer","api","registerValueTransformer","ComposerPeekModeToggle","Component","dt7948","g","this","prototype","service","composer","i","keyValueStore","tracked","getItem","peekModeActive","bodyCssClass","isPreviewVisible","togglePeekMode","setItem","showPreview","togglePreview","n","action","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","bodyClass","DButton","isStrictMode","composerPeekToggleConnector","renderInOutlet","fullWidthLogoBehavior","document","body","classList","add","value","context","showSidebar","hamburgerClickOutsideTransformer","DO_NOT_RENDER_LIST","ExperimentalScreen","router","left","right","resizeObserver","willDestroy","super","arguments","disconnect","distanceStyles","trustHTML","shouldRender","includes","currentRouteName","calculateDistance","element","distance","getBoundingClientRect","bind","onInsert","ResizeObserver","entries","entry","target","observe","didInsert","UserColorPaletteMenuItem","siteStyle","args","colorPalette","accent","activeClass","selectedColorPaletteId","paletteSelected","dConcatClass","HORIZON_PALETTES","UserColorPaletteSelector","currentUser","site","session","loadAnonColorPalette","anonColorPaletteId","userColorSchemeId","userColorPaletteId","cssLoaded","userColorPalettes","availablePalettes","listColorSchemes","map","userPalette","hex","colors","find","color","name","filter","some","palette","toLowerCase","sort","is_dark","normalizedLightName","correspondingDarkModeId","item","replace","onRegisterMenu","dMenu","selectedPalette","updatePreference","changeSiteColorPalette","close","updateColorSchemeCookie","dark","storedAnonPaletteId","cookie","parseInt","lightPaletteId","darkPaletteId","querySelector","reload","lightPaletteInfo","ajax","theme_id","darkPaletteInfo","Promise","all","preloadAndSwapCSS","new_href","then","newHref","existingLinkClass","resolve","existingLink","newTag","createElement","rel","href","as","onload","remove","head","appendChild","isEmpty","DMenu","dIcon","horizon","repositionBulkSelect","SidebarNewTopicButton","siteSettings","header","appEvents","sidebarState","controller","application","category","tag","showMainPanel","sidebarEnabled","canCreateTopic","can_create_topic","draftCount","get","createTopicLabel","defaultKey","shared_drafts_category_id","applyValueTransformer","createTopicIcon","defaultIcon","createTopicTargetCategory","subcategory","default_subcategory_on_read_only_category","subcategoryWithCreateTopicPermission","createNewTopic","openNewTopic","tags","getCategoryAndTag","currentRoute","attributes","watchForComposer","on","closeHamburger","stopWatchingForComposer","off","hamburgerVisible","CreateTopicButton","__keyword__gt","didUpdate","sidebarNewTopicButtonConnector","topicWasUpdatedAfterLastPost","topic","bumpedAt","moment","bumped_at","lastPostedAt","last_posted_at","bumpedLastPostedDaysDiff","duration","diff","asDays","isAfter","getTopicStatusBadge","is_hot","icon","text","className","pinned","pinned_globally","HighContextTopicCard","capabilities","hasSolved","has_accepted_answer","accepted_answer","hasVotes","can_vote","vote_count","voteCountLabel","i18n","count","hasAssigned","assigned_to_user","hasIndirectAssignments","assignedUser","indirect","indirectly_assigned_to","Object","keys","length","indirectAssignees","values","assignment","user","assigned_to","postNumber","post_number","hasTags","hasReplies","replyCount","hasLikes","like_count","replyCountLabel","likeCountLabel","hasExcerpt","excerpt","statusBadge","topicCreator","creator","hasLastReplyContext","hasContext","lastPoster","lastPosterUser","username","last_poster_username","topicTimestamp","shortDateNoYear","Date","created_at","onTitleFocus","event","closest","onTitleBlur","BulkSelectCheckbox","dAvatar","PluginOutlet","lazyHash","TopicStatus","TopicLink","topicFeaturedLink","UnreadIndicator","TopicPostBadges","TopicExcerpt","dFormatDate","categoryLinkHTML","dDiscourseTags","dNumber","TopicActivityColumn","topicUser","undefined","class","posts_count","TopicCategoryColumn","templateOnly","TopicCreatorColumn","TopicLikesColumn","TopicRepliesColumn","TopicStatusColumn","badge","TOPIC_CARD_CONTEXTS","SIMPLE_CARD_CONTEXTS","isTopicCardContext","listContext","doc_index_topic_id","isSimpleCardContext","TopicActivity","TopicCategory","TopicReplies","TopicCreator","HighContextCard","topicListColumns","initialize","isHighContext","topic_card_high_context","withPluginApi","classes","push","columns","delete","HeaderTopicCell","applyHighContextLayout","after","applySimpleLayout","registerBehaviorTransformer","next","preventDefault","stopPropagation","topicLink","button","dispatchEvent","MouseEvent","ctrlKey","metaKey","shiftKey","which","bubbles","cancelable","window","open","compatModules","Mod1","Mod2","Mod3","Mod4","Mod5","Mod6","Mod7","Mod8","Mod9","Mod10","Mod11","Mod12","Mod13","Mod14","Mod15","Mod16","Mod17","Mod18","Mod19","Mod21","Mod22"],"mappings":"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"}