{"version":3,"file":"main.BnQWzc.js","sources":["theme-26/virtual:theme","theme-26/discourse/components/profile-tab-preference-items.gjs","theme-26/discourse/components/profile-tab-extra-items.gjs","theme-26/discourse/components/custom-profile-tab-content.gjs","theme-26/discourse/api-initializers/custom-profile-user-menu-tab.js","theme-26/discourse/components/quick-profile-link.gjs","theme-26/discourse/api-initializers/quick-profile-link-connector.js","theme-26/discourse/api-initializers/quick-profile-link-init.js","theme-26/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(26);\n\nexport function themePrefix(key) {\n  return `theme_translations.26.${key}`;\n}\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport DButton from \"discourse/components/d-button\";\nimport dIcon from \"discourse-common/helpers/d-icon\";\nimport { i18n } from \"discourse-i18n\";\n\nexport default class ProfileTabPreferenceItems extends Component {\n  @service currentUser;\n\n  get translatedItems() {\n    return settings.profile_menu_preference_items.map((item) => {\n      let translatedLabel = item.label\n        ? item.label\n        : i18n(`user.preferences_nav.${item.page}`, {\n            defaultValue: item.page,\n          });\n\n      return {\n        ...item,\n        translatedLabel,\n      };\n    });\n  }\n\n  <template>\n    {{#each this.translatedItems as |item|}}\n      <li class=\"custom-preference-item\">\n        <a\n          title={{item.translatedLabel}}\n          href=\"/u/{{this.currentUser.username_lower}}/preferences/{{item.page}}/#{{item.setting}}\"\n        >\n          {{#if item.icon}}\n            {{dIcon item.icon}}\n          {{/if}}\n          <span class=\"item-label\">\n            {{item.translatedLabel}}\n          </span>\n        </a>\n      </li>\n    {{/each}}\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport DButton from \"discourse/components/d-button\";\nimport dIcon from \"discourse-common/helpers/d-icon\";\n\nexport default class ProfileTabExtraItems extends Component {\n  @service currentUser;\n\n  <template>\n    {{#each settings.profile_menu_extra_items as |item|}}\n      <li class=\"custom-extra-item\">\n        <a\n          title={{item.label}}\n          href={{item.url}}\n        >\n          {{#if item.icon}}\n            {{dIcon item.icon}}\n          {{/if}}\n          <span class=\"item-label\">\n            {{item.label}}\n          </span>\n        </a>\n      </li>\n    {{/each}}\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { action } from \"@ember/object\";\nimport { service } from \"@ember/service\";\nimport { LinkTo } from \"@ember/routing\";\nimport routeAction from \"discourse/helpers/route-action\";\nimport DButton from \"discourse/components/d-button\";\nimport DoNotDisturbModal from \"discourse/components/modal/do-not-disturb\";\nimport UserStatusModal from \"discourse/components/modal/user-status\";\nimport formatAge from \"discourse/helpers/format-age\";\nimport dIcon from \"discourse-common/helpers/d-icon\";\nimport emoji from \"discourse/helpers/emoji\";\nimport concatClass from \"discourse/helpers/concat-class\";\nimport { ajax } from \"discourse/lib/ajax\";\nimport DoNotDisturb from \"discourse/lib/do-not-disturb\";\nimport { userPath } from \"discourse/lib/url\";\nimport { i18n } from \"discourse-i18n\";\nimport ProfileTabPreferenceItems from \"./profile-tab-preference-items\";\nimport ProfileTabExtraItems from \"./profile-tab-extra-items\";\n\nexport default class ProfileTabContent extends Component {\n  @service currentUser;\n  @service siteSettings;\n  @service userStatus;\n  @service modal;\n\n  saving = false;\n\n  get showToggleAnonymousButton() {\n    return (\n      this.currentUser.can_post_anonymously || this.currentUser.is_anonymous\n    );\n  }\n\n  get isInDoNotDisturb() {\n    return !!this.#doNotDisturbUntilDate;\n  }\n\n  get doNotDisturbDateTime() {\n    return this.#doNotDisturbUntilDate.getTime();\n  }\n\n  get showDoNotDisturbEndDate() {\n    return !DoNotDisturb.isEternal(\n      this.currentUser.get(\"do_not_disturb_until\")\n    );\n  }\n\n  get #doNotDisturbUntilDate() {\n    if (!this.currentUser.get(\"do_not_disturb_until\")) {\n      return;\n    }\n    const date = new Date(this.currentUser.get(\"do_not_disturb_until\"));\n    if (date < new Date()) {\n      return;\n    }\n    return date;\n  }\n\n  get isPresenceHidden() {\n    return this.currentUser.get(\"user_option.hide_presence\");\n  }\n\n  @action\n  doNotDisturbClick() {\n    if (this.saving) {\n      return;\n    }\n    this.saving = true;\n    if (this.currentUser.do_not_disturb_until) {\n      return this.currentUser.leaveDoNotDisturb().finally(() => {\n        this.saving = false;\n      });\n    } else {\n      this.saving = false;\n      this.args.closeUserMenu();\n      this.modal.show(DoNotDisturbModal);\n    }\n  }\n\n  @action\n  togglePresence() {\n    this.currentUser.set(\"user_option.hide_presence\", !this.isPresenceHidden);\n    this.currentUser.save([\"hide_presence\"]);\n  }\n\n  @action\n  setUserStatusClick() {\n    this.args.closeUserMenu();\n\n    this.modal.show(UserStatusModal, {\n      model: {\n        status: this.currentUser.status,\n        pauseNotifications: this.currentUser.isInDoNotDisturb(),\n        saveAction: (status, pauseNotifications) =>\n          this.userStatus.set(status, pauseNotifications),\n        deleteAction: () => this.userStatus.clear(),\n      },\n    });\n  }\n\n  @action\n  async toggleAnonymous() {\n    await ajax(userPath(\"toggle-anon\"), { type: \"POST\" });\n    window.location.reload();\n  }\n\n  <template>\n    <ul class=\"custom-profile-tab-quick-links\">\n      {{#if this.siteSettings.enable_user_status}}\n        <li class=\"set-user-status\">\n          <DButton\n            @action={{this.setUserStatusClick}}\n            class=\"btn-flat profile-tab-btn\"\n          >\n            {{#if this.currentUser.status}}\n              {{emoji this.currentUser.status.emoji}}\n              <span class=\"item-label\">\n                {{this.currentUser.status.description}}\n                {{#if this.currentUser.status.ends_at}}\n                  {{formatAge this.currentUser.status.ends_at}}\n                {{/if}}\n              </span>\n            {{else}}\n              {{dIcon \"circle-plus\"}}\n              <span class=\"item-label\">\n                {{i18n \"user_status.set_custom_status\"}}\n              </span>\n            {{/if}}\n          </DButton>\n        </li>\n      {{/if}}\n    \n      <li\n        class={{concatClass\n          \"presence-toggle\"\n          (unless this.isPresenceHidden \"enabled\")\n        }}\n        title={{i18n \"presence_toggle.title\"}}\n      >\n        <DButton @action={{this.togglePresence}} class=\"btn-flat profile-tab-btn\">\n          {{dIcon (if this.isPresenceHidden \"toggle-off\" \"toggle-on\")}}\n          <span class=\"item-label\">\n            {{#if this.isPresenceHidden}}\n              {{i18n \"presence_toggle.offline\"}}\n            {{else}}\n              {{i18n \"presence_toggle.online\"}}\n            {{/if}}\n          </span>\n        </DButton>\n      </li>\n    \n      <li\n        class={{concatClass \"do-not-disturb\" (if this.isInDoNotDisturb \"enabled\")}}\n      >\n        <DButton\n          @action={{this.doNotDisturbClick}}\n          class=\"btn-flat profile-tab-btn\"\n        >\n          {{dIcon (if this.isInDoNotDisturb \"toggle-on\" \"toggle-off\")}}\n          <span class=\"item-label\">\n            {{#if this.isInDoNotDisturb}}\n              <span>{{i18n \"pause_notifications.label\"}}</span>\n              {{#if this.showDoNotDisturbEndDate}}\n                {{formatAge this.doNotDisturbDateTime}}\n              {{/if}}\n            {{else}}\n              {{i18n \"pause_notifications.label\"}}\n            {{/if}}\n          </span>\n        </DButton>\n      </li>\n    \n      <hr />\n    \n      <li class=\"summary\">\n        <LinkTo @route=\"user.summary\" @model={{this.currentUser}}>\n          {{dIcon \"user\"}}\n          <span class=\"item-label\">\n            {{i18n \"user.summary.title\"}}\n          </span>\n        </LinkTo>\n      </li>\n    \n      <li class=\"activity\">\n        <LinkTo @route=\"userActivity\" @model={{this.currentUser}}>\n          {{dIcon \"bars-staggered\"}}\n          <span class=\"item-label\">\n            {{i18n \"user.activity_stream\"}}\n          </span>\n        </LinkTo>\n      </li>\n    \n      {{#if this.currentUser.can_invite_to_forum}}\n        <li class=\"invites\">\n          <LinkTo @route=\"userInvited\" @model={{this.currentUser}}>\n            {{dIcon \"user-plus\"}}\n            <span class=\"item-label\">\n              {{i18n \"user.invited.title\"}}\n            </span>\n          </LinkTo>\n        </li>\n      {{/if}}\n    \n      <li class=\"drafts\">\n        <LinkTo @route=\"userActivity.drafts\" @model={{this.currentUser}}>\n          {{dIcon \"user_menu.drafts\"}}\n          <span class=\"item-label\">\n            {{#if this.currentUser.draft_count}}\n              {{i18n \"drafts.label_with_count\" count=this.currentUser.draft_count}}\n            {{else}}\n              {{i18n \"drafts.label\"}}\n            {{/if}}\n          </span>\n        </LinkTo>\n      </li>\n    \n      <li class=\"preferences\">\n        <LinkTo @route=\"preferences\" @model={{this.currentUser}}>\n          {{dIcon \"gear\"}}\n          <span class=\"item-label\">\n            {{i18n \"user.preferences.title\"}}\n          </span>\n        </LinkTo>\n      </li>\n\n      <ProfileTabPreferenceItems />\n    \n      {{#if this.showToggleAnonymousButton}}\n        <li\n          class={{if\n            this.currentUser.is_anonymous\n            \"disable-anonymous\"\n            \"enable-anonymous\"\n          }}\n        >\n          <DButton\n            @action={{this.toggleAnonymous}}\n            class=\"btn-flat profile-tab-btn\"\n          >\n            {{#if this.currentUser.is_anonymous}}\n              {{dIcon \"ban\"}}\n              <span class=\"item-label\">\n                {{i18n \"switch_from_anon\"}}\n              </span>\n            {{else}}\n              {{dIcon \"user-secret\"}}\n              <span class=\"item-label\">\n                {{i18n \"switch_to_anon\"}}\n              </span>\n            {{/if}}\n          </DButton>\n        </li>\n      {{/if}}\n\n      <ProfileTabExtraItems />\n\n      <hr />\n\n      <li class=\"logout\">\n        <DButton @action={{routeAction \"logout\"}} class=\"btn-flat profile-tab-btn\">\n          {{dIcon \"right-from-bracket\"}}\n          <span class=\"item-label\">\n            {{i18n \"user.log_out\"}}\n          </span>\n        </DButton>\n      </li>\n    </ul>\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport I18n from \"discourse-i18n\";\nimport CustomProfileTabContent from \"../components/custom-profile-tab-content\";\n\nexport default apiInitializer(\"1.8.0\", (api) => {\n  \n  const userMenuTabSetting = settings.enabled_user_menu_tab;\n  \n  if (!userMenuTabSetting) {\n    return;\n  }\n  \n  api.registerUserMenuTab((UserMenuTab) => {\n    return class extends UserMenuTab {\n      id = \"custom-profile\";\n      panelComponent = CustomProfileTabContent;\n      icon = settings.user_menu_tab_icon;\n      linkWhenActive = \"/my/summary\";\n\n      get title() {\n        return I18n.t(themePrefix(\"quick_profile_link.user_menu_tab_title\"));\n      }\n    };\n  });\n});\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport { action } from \"@ember/object\";\nimport { on } from \"@ember/modifier\";\nimport DMenu from \"float-kit/components/d-menu\";\nimport DropdownMenu from \"discourse/components/dropdown-menu\";\nimport DButton from \"discourse/components/d-button\";\nimport I18n from \"discourse-i18n\";\n\nexport default class QuickProfileLink extends Component {\n  @service currentUser;\n\n  get dMenuLabel() {\n    return I18n.t(themePrefix(\"quick_profile_link.button_label\"));\n  }\n\n  @action\n  closeMenu() {\n    this.dMenu.close();\n  }\n\n  @action\n  onRegisterApi(api) {\n    this.dMenu = api;\n  }\n\n  <template>\n    {{#if this.currentUser}}\n      <li>\n        <DMenu\n          @arrow={{false}}\n          @identifier=\"quick-profile-link\"\n          @triggerClass=\"btn-default\"\n          @interactive={{true}}\n          @triggers=\"click\"\n          id=\"quick-profile-link\"\n          @icon={{settings.button_icon}}\n          @label={{this.dMenuLabel}}\n          @modalForMobile={{true}}\n          @onRegisterApi={{this.onRegisterApi}}\n        >\n          <:content>\n            <DropdownMenu as |dropdown|>\n              {{#each settings.profile_links as |link|}}\n                <dropdown.item>\n                  <DButton\n                    @translatedLabel={{link.label}}\n                    @icon={{link.icon}}\n                    class=\"btn-icon-text btn-transparent\"\n                    @href=\"/u/{{this.currentUser.username_lower}}/preferences/{{link.page}}/#{{link.setting}}\"\n                    {{on \"click\" this.closeMenu}}\n                  />\n                </dropdown.item>\n              {{/each}}\n            </DropdownMenu>\n          </:content>\n        </DMenu>\n      </li>\n    {{/if}}\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport QuickProfileLink from \"../components/quick-profile-link\";\n\nexport default apiInitializer(\"1.14.0\", (api) => {\n\n  const userProfileDropdownSetting = settings.enabled_user_profile_dropdown;\n\n  if (!userProfileDropdownSetting) {\n    return;\n  }\n\n  api.renderInOutlet(\"user-profile-controls\", QuickProfileLink);\n});\n","import { apiInitializer } from \"discourse/lib/api\";\n\nexport default apiInitializer(\"1.8.0\", (api) => {\n  api.onPageChange((url, title) => {\n    const settings = document.querySelectorAll(\n      \"body.user-preferences-page #user-content [data-setting-name]\"\n    );\n  \n    settings.forEach((setting) => {\n      const settingName = setting.getAttribute(\"data-setting-name\");\n  \n      if (!settingName) {\n        return;\n      }\n  \n      const existingElement = document.getElementById(settingName);\n  \n      if (existingElement && existingElement !== setting) {\n        return;\n      }\n  \n      setting.id = settingName;\n    });\n  });\n});\n","import * as Mod1 from \"./discourse/api-initializers/custom-profile-user-menu-tab\";\nimport * as Mod2 from \"./discourse/api-initializers/quick-profile-link-connector\";\nimport * as Mod3 from \"./discourse/api-initializers/quick-profile-link-init\";\nimport * as Mod4 from \"./discourse/components/custom-profile-tab-content\";\nimport * as Mod5 from \"./discourse/components/profile-tab-extra-items\";\nimport * as Mod6 from \"./discourse/components/profile-tab-preference-items\";\nimport * as Mod7 from \"./discourse/components/quick-profile-link\";\nconst compatModules = {\n  \"discourse/api-initializers/custom-profile-user-menu-tab\": Mod1,\n  \"discourse/api-initializers/quick-profile-link-connector\": Mod2,\n  \"discourse/api-initializers/quick-profile-link-init\": Mod3,\n  \"discourse/components/custom-profile-tab-content\": Mod4,\n  \"discourse/components/profile-tab-extra-items\": Mod5,\n  \"discourse/components/profile-tab-preference-items\": Mod6,\n  \"discourse/components/quick-profile-link\": Mod7,\n};\nexport { compatModules };\nexport default compatModules;\n"],"names":["settings","getObjectForTheme","themePrefix","key","ProfileTabPreferenceItems","Component","dt7948","g","this","prototype","service","currentUser","i","translatedItems","profile_menu_preference_items","map","item","translatedLabel","label","i18n","page","defaultValue","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","dIcon","isStrictMode","ProfileTabExtraItems","ProfileTabContent","siteSettings","userStatus","modal","saving","showToggleAnonymousButton","can_post_anonymously","is_anonymous","isInDoNotDisturb","doNotDisturbUntilDate","doNotDisturbDateTime","getTime","showDoNotDisturbEndDate","DoNotDisturb","isEternal","get","date","Date","isPresenceHidden","doNotDisturbClick","do_not_disturb_until","leaveDoNotDisturb","finally","args","closeUserMenu","show","DoNotDisturbModal","n","action","togglePresence","set","save","setUserStatusClick","UserStatusModal","model","status","pauseNotifications","saveAction","deleteAction","clear","toggleAnonymous","ajax","userPath","type","window","location","reload","DButton","emoji","formatAge","concatClass","LinkTo","routeAction","customProfileUserMenuTab","apiInitializer","api","enabled_user_menu_tab","registerUserMenuTab","UserMenuTab","panelComponent","CustomProfileTabContent","icon","user_menu_tab_icon","linkWhenActive","title","I18n","t","QuickProfileLink","dMenuLabel","closeMenu","dMenu","close","onRegisterApi","DMenu","DropdownMenu","on","quickProfileLinkConnector","enabled_user_profile_dropdown","renderInOutlet","quickProfileLinkInit","onPageChange","url","document","querySelectorAll","forEach","setting","settingName","getAttribute","existingElement","getElementById","compatModules","Mod1","Mod2","Mod4","Mod5","Mod6","Mod7"],"mappings":"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"}