{"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","_composerPresenceDisplay","_templateOnly","Presence","undefined","_helper","_template","_avatarUtils","_topicPresenceDisplay","AVATAR_SIZE","avatarDimensions","translateSize","htmlSafe","concat","_runloop","_environment","ComposerPresenceManager","keepAlive","arguments","length","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/connectors/before-composer-controls/presence.js","discourse/plugins/discourse-presence/discourse/connectors/topic-above-footer-buttons/presence.js","discourse/plugins/discourse-presence/discourse/services/composer-presence-manager.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=@avatarSize}}\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\": \"nq1M/yEk\",\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\\\"],[[30,2]]]]],[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\\\",\\\"@avatarSize\\\"],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/connectors/before-composer-controls/presence\", [\"exports\", \"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _composerPresenceDisplay, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Presence = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <div class=\"before-composer-controls-outlet presence\">\n      <ComposerPresenceDisplay @model={{@outletArgs.model}} />\n    </div>\n  \n  */\n  {\n    \"id\": \"ic5m4qg5\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"before-composer-controls-outlet presence\\\"],[12],[1,\\\"\\\\n    \\\"],[8,[32,0],null,[[\\\"@model\\\"],[[30,1,[\\\"model\\\"]]]],null],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@outletArgs\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/connectors/before-composer-controls/presence.js\",\n    \"scope\": () => [_composerPresenceDisplay.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"presence:Presence\"));\n  var _default = _exports.default = Presence;\n});","define(\"discourse/plugins/discourse-presence/discourse/connectors/topic-above-footer-buttons/presence\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/template\", \"discourse/lib/avatar-utils\", \"discourse/plugins/discourse-presence/discourse/components/topic-presence-display\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _template, _avatarUtils, _topicPresenceDisplay, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const AVATAR_SIZE = \"small\";\n  class Presence extends _component.default {\n    get avatarDimensions() {\n      return (0, _avatarUtils.translateSize)(AVATAR_SIZE);\n    }\n    static #_ = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div\n          style={{htmlSafe\n            (concat \"--avatar-min-height: \" this.avatarDimensions \"px\")\n          }}\n          class=\"topic-above-footer-buttons-outlet presence\"\n        >\n          <TopicPresenceDisplay\n            @topic={{@outletArgs.model}}\n            @avatarSize={{AVATAR_SIZE}}\n          />\n        </div>\n      \n    */\n    {\n      \"id\": \"1blYWYl1\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[15,5,[28,[32,0],[[28,[32,1],[\\\"--avatar-min-height: \\\",[30,0,[\\\"avatarDimensions\\\"]],\\\"px\\\"],null]],null]],[14,0,\\\"topic-above-footer-buttons-outlet presence\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,2],null,[[\\\"@topic\\\",\\\"@avatarSize\\\"],[[30,1,[\\\"model\\\"]],[32,3]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@outletArgs\\\"],false,[]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-presence/discourse/connectors/topic-above-footer-buttons/presence.js\",\n      \"scope\": () => [_template.htmlSafe, _helper.concat, _topicPresenceDisplay.default, AVATAR_SIZE],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = Presence;\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});"],"mappings":"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","ignoreList":[]}