{"version":3,"file":"discourse-presence.js","names":["define","_exports","_component","_tracking","_service","_truthHelpers","_userLink","_avatar","_helperFn","_discourseI18n","_component2","_templateFactory","Object","defineProperty","value","default","ComposerPresenceDisplay","static","dt7948","g","this","prototype","service","presence","i","composerPresenceManager","currentUser","siteSettings","tracked","replyChannel","whisperChannel","editChannel","setupReplyChannel","_","on","topic","args","model","isReply","name","id","getChannel","subscribe","cleanup","unsubscribe","setupWhisperChannel","whisperer","setupEditChannel","post","isEdit","notifyState","replyDirty","entity","state","leave","editingPost","whisper","replyingToTopic","n","cached","users","filter","u","slice","presence_max_users_shown","setComponentTemplate","createTemplateFactory","block","moduleName","scope","gt","i18n","isStrictMode","TopicPresenceDisplay","_runloop","_environment","ComposerPresenceManager","keepAlive","arguments","length","undefined","canHideProfile","allow_users_to_hide_profile","isHidingPresence","user_option","hide_presence","_name","_channel","enter","isTesting","_autoLeaveTimer","debounce","cancel"],"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\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/service\", \"truth-helpers\", \"discourse/components/user-link\", \"discourse/helpers/avatar\", \"discourse/helpers/helper-fn\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _service, _truthHelpers, _userLink, _avatar, _helperFn, _discourseI18n, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class ComposerPresenceDisplay extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"presence\", [_service.service]))();\n    #presence = (() => (dt7948.i(this, \"presence\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"composerPresenceManager\", [_service.service]))();\n    #composerPresenceManager = (() => (dt7948.i(this, \"composerPresenceManager\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n    #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n    static #_5 = (() => dt7948.g(this.prototype, \"replyChannel\", [_tracking.tracked]))();\n    #replyChannel = (() => (dt7948.i(this, \"replyChannel\"), void 0))();\n    static #_6 = (() => dt7948.g(this.prototype, \"whisperChannel\", [_tracking.tracked]))();\n    #whisperChannel = (() => (dt7948.i(this, \"whisperChannel\"), void 0))();\n    static #_7 = (() => dt7948.g(this.prototype, \"editChannel\", [_tracking.tracked]))();\n    #editChannel = (() => (dt7948.i(this, \"editChannel\"), void 0))();\n    setupReplyChannel = (() => (0, _helperFn.default)((_, on) => {\n      const {\n        topic\n      } = this.args.model;\n      if (!topic || !this.isReply) {\n        return;\n      }\n      const name = `/discourse-presence/reply/${topic.id}`;\n      const replyChannel = this.presence.getChannel(name);\n      this.replyChannel = replyChannel;\n      replyChannel.subscribe();\n      on.cleanup(() => replyChannel.unsubscribe());\n    }))();\n    setupWhisperChannel = (() => (0, _helperFn.default)((_, on) => {\n      const {\n        topic\n      } = this.args.model;\n      const {\n        whisperer\n      } = this.currentUser;\n      if (!topic || !this.isReply || !whisperer) {\n        return;\n      }\n      const name = `/discourse-presence/whisper/${topic.id}`;\n      const whisperChannel = this.presence.getChannel(name);\n      this.whisperChannel = whisperChannel;\n      whisperChannel.subscribe();\n      on.cleanup(() => whisperChannel.unsubscribe());\n    }))();\n    setupEditChannel = (() => (0, _helperFn.default)((_, on) => {\n      const {\n        post\n      } = this.args.model;\n      if (!post || !this.isEdit) {\n        return;\n      }\n      const name = `/discourse-presence/edit/${post.id}`;\n      const editChannel = this.presence.getChannel(name);\n      this.editChannel = editChannel;\n      editChannel.subscribe();\n      on.cleanup(() => editChannel.unsubscribe());\n    }))();\n    notifyState = (() => (0, _helperFn.default)((_, on) => {\n      const {\n        topic,\n        post,\n        replyDirty\n      } = this.args.model;\n      const entity = this.isEdit ? post : topic;\n      if (entity) {\n        const name = `/discourse-presence/${this.state}/${entity.id}`;\n        this.composerPresenceManager.notifyState(name, replyDirty);\n      }\n      on.cleanup(() => this.composerPresenceManager.leave());\n    }))();\n    get isReply() {\n      return this.state === \"reply\" || this.state === \"whisper\";\n    }\n    get isEdit() {\n      return this.state === \"edit\";\n    }\n    get state() {\n      const {\n        editingPost,\n        whisper,\n        replyingToTopic\n      } = this.args.model;\n      if (editingPost) {\n        return \"edit\";\n      } else if (whisper) {\n        return \"whisper\";\n      } else if (replyingToTopic) {\n        return \"reply\";\n      }\n    }\n    static #_8 = (() => dt7948.n(this.prototype, \"state\", [_tracking.cached]))();\n    get users() {\n      let users;\n      if (this.isEdit) {\n        users = this.editChannel?.users || [];\n      } else {\n        const replyUsers = this.replyChannel?.users || [];\n        const whisperUsers = this.whisperChannel?.users || [];\n        users = [...replyUsers, ...whisperUsers];\n      }\n      return users.filter(u => u.id !== this.currentUser.id).slice(0, this.siteSettings.presence_max_users_shown);\n    }\n    static #_9 = (() => dt7948.n(this.prototype, \"users\", [_tracking.cached]))();\n    static #_10 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        {{#if this.currentUser}}\n          {{this.setupReplyChannel}}\n          {{this.setupWhisperChannel}}\n          {{this.setupEditChannel}}\n          {{this.notifyState}}\n    \n          {{#if (gt this.users.length 0)}}\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    \n              <span class=\"presence-text\">\n                <span class=\"description\">\n                  {{~#if this.isReply~}}\n                    {{i18n \"presence.replying\" count=this.users.length}}\n                  {{~else~}}\n                    {{i18n \"presence.editing\" count=this.users.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        {{/if}}\n      \n    */\n    {\n      \"id\": \"yT15VqnX\",\n      \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"currentUser\\\"]],[[[1,\\\"      \\\"],[1,[30,0,[\\\"setupReplyChannel\\\"]]],[1,\\\"\\\\n      \\\"],[1,[30,0,[\\\"setupWhisperChannel\\\"]]],[1,\\\"\\\\n      \\\"],[1,[30,0,[\\\"setupEditChannel\\\"]]],[1,\\\"\\\\n      \\\"],[1,[30,0,[\\\"notifyState\\\"]]],[1,\\\"\\\\n\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"users\\\",\\\"length\\\"]],0],null],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"presence-users\\\"],[12],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"presence-avatars\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"users\\\"]]],null]],null],null,[[[1,\\\"              \\\"],[8,[32,1],null,[[\\\"@user\\\"],[[30,1]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[1,[28,[32,2],[[30,1]],[[\\\"imageSize\\\"],[\\\"small\\\"]]]],[1,\\\"\\\\n              \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n\\\\n          \\\"],[10,1],[14,0,\\\"presence-text\\\"],[12],[1,\\\"\\\\n            \\\"],[10,1],[14,0,\\\"description\\\"],[12],[41,[30,0,[\\\"isReply\\\"]],[[[1,[28,[32,3],[\\\"presence.replying\\\"],[[\\\"count\\\"],[[30,0,[\\\"users\\\",\\\"length\\\"]]]]]]],[]],[[[1,[28,[32,3],[\\\"presence.editing\\\"],[[\\\"count\\\"],[[30,0,[\\\"users\\\",\\\"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]],[]],null],[1,\\\"  \\\"]],[\\\"user\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/components/composer-presence-display.js\",\n      \"scope\": () => [_truthHelpers.gt, _userLink.default, _avatar.default, _discourseI18n.i18n],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = ComposerPresenceDisplay;\n});","define(\"discourse/plugins/discourse-presence/discourse/components/topic-presence-display\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/service\", \"truth-helpers\", \"discourse/components/user-link\", \"discourse/helpers/avatar\", \"discourse/helpers/helper-fn\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _service, _truthHelpers, _userLink, _avatar, _helperFn, _discourseI18n, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class TopicPresenceDisplay extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"presence\", [_service.service]))();\n    #presence = (() => (dt7948.i(this, \"presence\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"replyChannel\", [_tracking.tracked]))();\n    #replyChannel = (() => (dt7948.i(this, \"replyChannel\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"whisperChannel\", [_tracking.tracked]))();\n    #whisperChannel = (() => (dt7948.i(this, \"whisperChannel\"), void 0))();\n    setupReplyChannel = (() => (0, _helperFn.default)((_, on) => {\n      const {\n        topic\n      } = this.args;\n      if (!topic) {\n        return;\n      }\n      const name = `/discourse-presence/reply/${topic.id}`;\n      const replyChannel = this.presence.getChannel(name);\n      this.replyChannel = replyChannel;\n      replyChannel.subscribe();\n      on.cleanup(() => replyChannel.unsubscribe());\n    }))();\n    setupWhisperChannel = (() => (0, _helperFn.default)((_, on) => {\n      const {\n        topic\n      } = this.args;\n      const {\n        whisperer\n      } = this.currentUser;\n      if (!topic || !whisperer) {\n        return;\n      }\n      const name = `/discourse-presence/whisper/${topic.id}`;\n      const whisperChannel = this.presence.getChannel(name);\n      this.whisperChannel = whisperChannel;\n      whisperChannel.subscribe();\n      on.cleanup(() => whisperChannel.unsubscribe());\n    }))();\n    get users() {\n      const replyUsers = this.replyChannel?.users || [];\n      const whisperUsers = this.whisperChannel?.users || [];\n      return [...replyUsers, ...whisperUsers].filter(u => u.id !== this.currentUser.id);\n    }\n    static #_5 = (() => dt7948.n(this.prototype, \"users\", [_tracking.cached]))();\n    static #_6 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        {{#if this.currentUser}}\n          {{this.setupReplyChannel}}\n          {{this.setupWhisperChannel}}\n    \n          {{#if (gt this.users.length 0)}}\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    \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        {{/if}}\n      \n    */\n    {\n      \"id\": \"EVHiquID\",\n      \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"currentUser\\\"]],[[[1,\\\"      \\\"],[1,[30,0,[\\\"setupReplyChannel\\\"]]],[1,\\\"\\\\n      \\\"],[1,[30,0,[\\\"setupWhisperChannel\\\"]]],[1,\\\"\\\\n\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"users\\\",\\\"length\\\"]],0],null],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"presence-users\\\"],[12],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"presence-avatars\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"users\\\"]]],null]],null],null,[[[1,\\\"              \\\"],[8,[32,1],null,[[\\\"@user\\\"],[[30,1]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[1,[28,[32,2],[[30,1]],[[\\\"imageSize\\\"],[\\\"small\\\"]]]],[1,\\\"\\\\n              \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n\\\\n          \\\"],[10,1],[14,0,\\\"presence-text\\\"],[12],[1,\\\"\\\\n            \\\"],[10,1],[14,0,\\\"description\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,3],[\\\"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]],[]],null],[1,\\\"  \\\"]],[\\\"user\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/components/topic-presence-display.js\",\n      \"scope\": () => [_truthHelpers.gt, _userLink.default, _avatar.default, _discourseI18n.i18n],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = TopicPresenceDisplay;\n});","define(\"discourse/plugins/discourse-presence/discourse/services/composer-presence-manager\", [\"exports\", \"@ember/runloop\", \"@ember/service\", \"discourse/lib/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 KEEP_ALIVE = 10 * 1000; // 10 seconds\n\n  class ComposerPresenceManager extends _service.default {\n    static #_ = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"presence\", [_service.service]))();\n    #presence = (() => (dt7948.i(this, \"presence\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n    #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n    notifyState(name) {\n      let replying = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n      let keepAlive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : KEEP_ALIVE;\n      if (!replying) {\n        this.leave();\n        return;\n      }\n      const canHideProfile = this.siteSettings.allow_users_to_hide_profile;\n      const isHidingPresence = this.currentUser.user_option.hide_presence;\n      if (canHideProfile && isHidingPresence) {\n        return;\n      }\n      if (this._name !== name) {\n        this.leave();\n        this._name = name;\n        this._channel = this.presence.getChannel(name);\n        this._channel.enter();\n        if (!(0, _environment.isTesting)()) {\n          this._autoLeaveTimer = (0, _runloop.debounce)(this, this.leave, keepAlive);\n        }\n      }\n    }\n    leave() {\n      if (this._autoLeaveTimer) {\n        (0, _runloop.cancel)(this._autoLeaveTimer);\n        this._autoLeaveTimer = null;\n      }\n      this._channel?.leave();\n      this._channel = null;\n      this._name = null;\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={{@outletArgs.model}} />\n  */\n  {\n    \"id\": \"CkgOp30y\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@model\\\"],[[30,1,[\\\"model\\\"]]]],null]],[\\\"@outletArgs\\\"],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    <TopicPresenceDisplay @topic={{@outletArgs.model}} />\n  */\n  {\n    \"id\": \"+1wbySXZ\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@topic\\\"],[[30,1,[\\\"model\\\"]]]],null]],[\\\"@outletArgs\\\"],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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","ignoreList":[]}