{"version":3,"file":"discourse-presence.js","names":["define","_exports","_component","_computed","_service","_decorators","_templateFactory","Object","defineProperty","value","default","__COLOCATED_TEMPLATE__","createTemplateFactory","id","block","moduleName","isStrictMode","setComponentTemplate","extend","dt7948","p","tagName","presence","service","composerPresenceManager","state","replyingToTopic","editingPost","whisper","composerOpen","isReply","equal","isEdit","isWhisper","replyChannelName","topicId","whisperChannelName","this","currentUser","whisperer","editChannelName","postId","_setupChannel","channelKey","name","unsubscribe","set","getChannel","subscribe","_setupChannels","_cleanupChannels","replyingUsers","union","editingUsers","readOnly","presenceUsers","users","filter","u","slice","siteSettings","presence_max_users_shown","shouldDisplay","gt","_contentChanged","model","reply","entity","post","topic","notifyState","closeComposer","leave","observes","on","replyChannel","whisperChannel","replyUsers","whisperUsers","didReceiveAttrs","_super","arguments","staff","_destroyed","_runloop","_environment","ComposerPresenceManager","static","g","prototype","i","intent","allow_users_to_hide_profile","user_option","hide_profile_and_presence","undefined","includes","_state","_enter","isTesting","_autoLeaveTimer","debounce","KEEP_ALIVE_DURATION_SECONDS","_presentChannel","cancel","channelName","enter","willDestroy"],"sources":["discourse/plugins/discourse-presence/discourse/components/composer-presence-display.js","discourse/plugins/discourse-presence/discourse/components/topic-presence-display.js","discourse/plugins/discourse-presence/discourse/services/composer-presence-manager.js","discourse/plugins/discourse-presence/discourse/templates/connectors/before-composer-controls/presence.js","discourse/plugins/discourse-presence/discourse/templates/connectors/topic-above-footer-buttons/presence.js"],"sourcesContent":["define(\"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\", [\"exports\", \"@ember/component\", \"@ember/object/computed\", \"@ember/service\", \"discourse-common/utils/decorators\", \"@ember/template-factory\"], function (_exports, _component, _computed, _service, _decorators, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if this.shouldDisplay}}\n    <div class=\"presence-users\">\n      <div class=\"presence-avatars\">\n        {{#each this.presenceUsers as |user|}}\n          {{avatar user imageSize=\"small\"}}\n        {{/each}}\n      </div>\n      <span class=\"presence-text\">\n        <span class=\"description\">\n          {{~#if this.isReply~}}\n            {{i18n \"presence.replying\" count=this.presenceUsers.length}}\n          {{~else~}}\n            {{i18n \"presence.editing\" count=this.presenceUsers.length}}\n          {{~/if~}}\n        </span>\n        <span class=\"wave\">\n          <span class=\"dot\">.</span>\n          <span class=\"dot\">.</span>\n          <span class=\"dot\">.</span>\n        </span>\n      </span>\n    </div>\n  {{/if}}\n  */\n  {\n    \"id\": \"fKramLOc\",\n    \"block\": \"[[[41,[30,0,[\\\"shouldDisplay\\\"]],[[[1,\\\"  \\\"],[10,0],[14,0,\\\"presence-users\\\"],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"presence-avatars\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\\\"presenceUsers\\\"]]],null]],null],null,[[[1,\\\"        \\\"],[1,[28,[35,3],[[30,1]],[[\\\"imageSize\\\"],[\\\"small\\\"]]]],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"presence-text\\\"],[12],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"description\\\"],[12],[41,[30,0,[\\\"isReply\\\"]],[[[1,[28,[35,4],[\\\"presence.replying\\\"],[[\\\"count\\\"],[[30,0,[\\\"presenceUsers\\\",\\\"length\\\"]]]]]]],[]],[[[1,[28,[35,4],[\\\"presence.editing\\\"],[[\\\"count\\\"],[[30,0,[\\\"presenceUsers\\\",\\\"length\\\"]]]]]]],[]]],[13],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"wave\\\"],[12],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[\\\"user\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\",\\\"avatar\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-presence/discourse/components/composer-presence-display.hbs\",\n    \"isStrictMode\": false\n  });\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _component.default.extend(dt7948.p({\n    tagName: \"\",\n    presence: (0, _service.service)(),\n    composerPresenceManager: (0, _service.service)(),\n    state(replyingToTopic, editingPost, whisper, composerOpen) {\n      if (!composerOpen) {\n        return;\n      } else if (editingPost) {\n        return \"edit\";\n      } else if (whisper) {\n        return \"whisper\";\n      } else if (replyingToTopic) {\n        return \"reply\";\n      }\n    },\n    isReply: (0, _computed.equal)(\"state\", \"reply\"),\n    isEdit: (0, _computed.equal)(\"state\", \"edit\"),\n    isWhisper: (0, _computed.equal)(\"state\", \"whisper\"),\n    replyChannelName(topicId, isReply, isWhisper) {\n      if (topicId && (isReply || isWhisper)) {\n        return `/discourse-presence/reply/${topicId}`;\n      }\n    },\n    whisperChannelName(topicId, isReply, isWhisper) {\n      if (topicId && this.currentUser.whisperer && (isReply || isWhisper)) {\n        return `/discourse-presence/whisper/${topicId}`;\n      }\n    },\n    editChannelName(isEdit, postId) {\n      if (isEdit) {\n        return `/discourse-presence/edit/${postId}`;\n      }\n    },\n    _setupChannel(channelKey, name) {\n      if (this[channelKey]?.name !== name) {\n        this[channelKey]?.unsubscribe();\n        if (name) {\n          this.set(channelKey, this.presence.getChannel(name));\n          this[channelKey].subscribe();\n        } else if (this[channelKey]) {\n          this.set(channelKey, null);\n        }\n      }\n    },\n    _setupChannels() {\n      this._setupChannel(\"replyChannel\", this.replyChannelName);\n      this._setupChannel(\"whisperChannel\", this.whisperChannelName);\n      this._setupChannel(\"editChannel\", this.editChannelName);\n    },\n    _cleanupChannels() {\n      this._setupChannel(\"replyChannel\", null);\n      this._setupChannel(\"whisperChannel\", null);\n      this._setupChannel(\"editChannel\", null);\n    },\n    replyingUsers: (0, _computed.union)(\"replyChannel.users\", \"whisperChannel.users\"),\n    editingUsers: (0, _computed.readOnly)(\"editChannel.users\"),\n    presenceUsers(isReply, replyingUsers, editingUsers) {\n      const users = isReply ? replyingUsers : editingUsers;\n      return users?.filter(u => u.id !== this.currentUser.id)?.slice(0, this.siteSettings.presence_max_users_shown);\n    },\n    shouldDisplay: (0, _computed.gt)(\"presenceUsers.length\", 0),\n    subscribe() {\n      this._setupChannels();\n    },\n    _contentChanged() {\n      if (this.model.reply === \"\") {\n        return;\n      }\n      const entity = this.state === \"edit\" ? this.model?.post : this.model?.topic;\n      this.composerPresenceManager.notifyState(this.state, entity?.id);\n    },\n    closeComposer() {\n      this._cleanupChannels();\n      this.composerPresenceManager.leave();\n    }\n  }, [[\"method\", \"state\", [(0, _decorators.default)(\"model.replyingToTopic\", \"model.editingPost\", \"model.whisper\", \"model.composerOpened\")]], [\"method\", \"replyChannelName\", [(0, _decorators.default)(\"model.topic.id\", \"isReply\", \"isWhisper\")]], [\"method\", \"whisperChannelName\", [(0, _decorators.default)(\"model.topic.id\", \"isReply\", \"isWhisper\")]], [\"method\", \"editChannelName\", [(0, _decorators.default)(\"isEdit\", \"model.post.id\")]], [\"method\", \"_setupChannels\", [(0, _decorators.observes)(\"replyChannelName\", \"whisperChannelName\", \"editChannelName\")]], [\"method\", \"presenceUsers\", [(0, _decorators.default)(\"isReply\", \"replyingUsers.[]\", \"editingUsers.[]\")]], [\"method\", \"subscribe\", [(0, _decorators.on)(\"didInsertElement\")]], [\"method\", \"_contentChanged\", [(0, _decorators.observes)(\"model.reply\", \"state\", \"model.post.id\", \"model.topic.id\")]], [\"method\", \"closeComposer\", [(0, _decorators.on)(\"willDestroyElement\")]]])));\n});","define(\"discourse/plugins/discourse-presence/discourse/components/topic-presence-display\", [\"exports\", \"@ember/component\", \"@ember/object/computed\", \"@ember/service\", \"discourse-common/utils/decorators\", \"@ember/template-factory\"], function (_exports, _component, _computed, _service, _decorators, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if this.shouldDisplay}}\n    <div class=\"presence-users\">\n      <div class=\"presence-avatars\">\n        {{#each this.users as |user|}}\n          <UserLink @user={{user}}>\n            {{avatar user imageSize=\"small\"}}\n          </UserLink>\n        {{/each}}\n      </div>\n      <span class=\"presence-text\">\n        <span class=\"description\">\n          {{i18n \"presence.replying_to_topic\" count=this.users.length}}\n        </span>\n        <span class=\"wave\">\n          <span class=\"dot\">.</span>\n          <span class=\"dot\">.</span>\n          <span class=\"dot\">.</span>\n        </span>\n      </span>\n    </div>\n  {{/if}}\n  */\n  {\n    \"id\": \"4V683/rb\",\n    \"block\": \"[[[41,[30,0,[\\\"shouldDisplay\\\"]],[[[1,\\\"  \\\"],[10,0],[14,0,\\\"presence-users\\\"],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"presence-avatars\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\\\"users\\\"]]],null]],null],null,[[[1,\\\"        \\\"],[8,[39,3],null,[[\\\"@user\\\"],[[30,1]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[1,[28,[35,4],[[30,1]],[[\\\"imageSize\\\"],[\\\"small\\\"]]]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"presence-text\\\"],[12],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"description\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[35,5],[\\\"presence.replying_to_topic\\\"],[[\\\"count\\\"],[[30,0,[\\\"users\\\",\\\"length\\\"]]]]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"wave\\\"],[12],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[\\\"user\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\",\\\"user-link\\\",\\\"avatar\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-presence/discourse/components/topic-presence-display.hbs\",\n    \"isStrictMode\": false\n  });\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _component.default.extend(dt7948.p({\n    topic: null,\n    presence: (0, _service.service)(),\n    replyChannel: null,\n    whisperChannel: null,\n    replyUsers(users) {\n      return users?.filter(u => u.id !== this.currentUser.id);\n    },\n    whisperUsers(users) {\n      return users?.filter(u => u.id !== this.currentUser.id);\n    },\n    users: (0, _computed.union)(\"replyUsers\", \"whisperUsers\"),\n    replyChannelName(id) {\n      return `/discourse-presence/reply/${id}`;\n    },\n    whisperChannelName(id) {\n      return `/discourse-presence/whisper/${id}`;\n    },\n    shouldDisplay: (0, _computed.gt)(\"users.length\", 0),\n    didReceiveAttrs() {\n      this._super(...arguments);\n      if (this.replyChannel?.name !== this.replyChannelName) {\n        this.replyChannel?.unsubscribe();\n        this.set(\"replyChannel\", this.presence.getChannel(this.replyChannelName));\n        this.replyChannel.subscribe();\n      }\n      if (this.currentUser.staff && this.whisperChannel?.name !== this.whisperChannelName) {\n        this.whisperChannel?.unsubscribe();\n        this.set(\"whisperChannel\", this.presence.getChannel(this.whisperChannelName));\n        this.whisperChannel.subscribe();\n      }\n    },\n    _destroyed() {\n      this.replyChannel?.unsubscribe();\n      this.whisperChannel?.unsubscribe();\n    }\n  }, [[\"method\", \"replyUsers\", [(0, _decorators.default)(\"replyChannel.users.[]\")]], [\"method\", \"whisperUsers\", [(0, _decorators.default)(\"whisperChannel.users.[]\")]], [\"method\", \"replyChannelName\", [(0, _decorators.default)(\"topic.id\")]], [\"method\", \"whisperChannelName\", [(0, _decorators.default)(\"topic.id\")]], [\"method\", \"_destroyed\", [(0, _decorators.on)(\"willDestroyElement\")]]])));\n});","define(\"discourse/plugins/discourse-presence/discourse/services/composer-presence-manager\", [\"exports\", \"@ember/runloop\", \"@ember/service\", \"discourse-common/config/environment\"], function (_exports, _runloop, _service, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PRESENCE_CHANNEL_PREFIX = \"/discourse-presence\";\n  const KEEP_ALIVE_DURATION_SECONDS = 10;\n  class ComposerPresenceManager extends _service.default {\n    static #_ = (() => dt7948.g(this.prototype, \"presence\", [_service.service]))();\n    #presence = (() => (dt7948.i(this, \"presence\"), void 0))();\n    notifyState(intent, id) {\n      if (this.siteSettings.allow_users_to_hide_profile && this.currentUser.user_option.hide_profile_and_presence) {\n        return;\n      }\n      if (intent === undefined) {\n        return this.leave();\n      }\n      if (![\"reply\", \"whisper\", \"edit\"].includes(intent)) {\n        throw `Unknown intent ${intent}`;\n      }\n      const state = `${intent}/${id}`;\n      if (this._state !== state) {\n        this._enter(intent, id);\n        this._state = state;\n      }\n      if (!(0, _environment.isTesting)()) {\n        this._autoLeaveTimer = (0, _runloop.debounce)(this, this.leave, KEEP_ALIVE_DURATION_SECONDS * 1000);\n      }\n    }\n    leave() {\n      this._presentChannel?.leave();\n      this._presentChannel = null;\n      this._state = null;\n      if (this._autoLeaveTimer) {\n        (0, _runloop.cancel)(this._autoLeaveTimer);\n        this._autoLeaveTimer = null;\n      }\n    }\n    _enter(intent, id) {\n      this.leave();\n      let channelName = `${PRESENCE_CHANNEL_PREFIX}/${intent}/${id}`;\n      this._presentChannel = this.presence.getChannel(channelName);\n      this._presentChannel.enter();\n    }\n    willDestroy() {\n      this.leave();\n    }\n  }\n  _exports.default = ComposerPresenceManager;\n});","define(\"discourse/plugins/discourse-presence/discourse/templates/connectors/before-composer-controls/presence\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <ComposerPresenceDisplay @model={{this.model}} />\n  */\n  {\n    \"id\": \"G/OxL/Vj\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@model\\\"],[[30,0,[\\\"model\\\"]]]],null]],[],false,[\\\"composer-presence-display\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-presence/discourse/templates/connectors/before-composer-controls/presence.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-presence/discourse/templates/connectors/topic-above-footer-buttons/presence\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{! Note: the topic-above-footer-buttons outlet is only rendered for logged-in users }}\n  <TopicPresenceDisplay @topic={{this.model}} />\n  */\n  {\n    \"id\": \"CmudhbhK\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@topic\\\"],[[30,0,[\\\"model\\\"]]]],null]],[],false,[\\\"topic-presence-display\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-presence/discourse/templates/connectors/topic-above-footer-buttons/presence.hbs\",\n    \"isStrictMode\": false\n  });\n});"],"mappings":"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"}