{"version":3,"file":"discourse-reactions.js","names":["define","_exports","_rest","Object","defineProperty","value","default","DiscourseReactionsAdapter","basePath","_discourseReactionsAdapter","DiscourseReactionsCustomReaction","pathFor","store","type","findArgs","path","this","pluralize","apiNameFor","appendQueryParams","_helper","_mountWidget","_component","_templateFactory","_templateOnly","ReactionsActionButton","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","hash","isStrictMode","undefined","_component2","ReactionsActionSummary","static","shouldRender","args","context","owner","lookup","mobileView","post","deleted","mainReaction","discourse_reactions_reaction_for_like","reactions","length","_tracking","_object","_computed","_service","_ajax","_getUrl","_text","__COLOCATED_TEMPLATE__","cachedNames","Map","pendingSearch","DiscourseReactionsReactionPost","dt7948","g","prototype","service","site","i","siteSettings","tracked","reaction","excerpt","updatedExcerpt","expandedExcerpt","updatedExpandedExcerpt","equal","moderatorAction","constructor","super","arguments","updateMentionedUsernames","replaceMentionsWithFullNames","n","action","text","Promise","all","split","map","async","part","index","searchUsername","join","username","toLowerCase","has","get","usernames","size","add","results","search","searchedUsernames","includes","fullName","data","users","find","user","name","groups","group","full_name","set","deferSearch","usernamesList","Set","resolve","setTimeout","Array","from","ajax","include_groups","show_fullname_for_groups","postUrl","url","emojiUrl","reactionValue","reaction_value","emojiUrlFor","_controller","_discourseReactionsCustomReaction","UserActivityReactions","inject","application","canLoadMore","loading","beforeLikeId","beforeReactionUserId","getLastIdFrom","array","updateBeforeIds","reactionUsers","includeLikes","likes","reduce","memo","elem","push","loadMore","model","opts","actingUsername","findReactions","reactionsUrl","then","newReactionUsers","addObjects","finally","resource","route","_iconLibrary","_pluginApi","_url","_utilities","_discourseI18n","_discourseReactionsActions","_discourseReactionsActionsButton","_discourseReactionsActionsSummary","PLUGIN_ID","initializeDiscourseReactions","api","registerValueTransformer","_ref","dag","buttonKeys","replace","LIKE","after","REPLIES","customizePostMenu","addKeyboardShortcut","click","modifyClass","pluginId","didInsertElement","_super","topicId","posts","firstObject","topic_id","messageBus","subscribe","dirtyKeys","keyDirty","post_id","onRefresh","refreshArg","_refresh","unsubscribe","didReceiveAttrs","setting","values","mainEmoji","collection","findBy","isEditable","unshiftObject","isEditing","ignoreMissing","replaceIcon","registerNotificationTypeRenderer","NotificationTypeBase","linkTitle","i18n","linkHref","superHref","activityName","notification","reaction_icon","userPath","currentUser","display_username","icon","notificationName","label","count","nameOrUsername","prioritize_full_name_in_ux","display_name","username2","nameOrUsername2","name2","formatUsername","labelClasses","description","initialize","container","discourse_reactions_enabled","withPluginApi","teardown","resetCurrentReaction","_category","_post","_topic","_user","CustomReaction","toggle","reactionId","result","appEvents","trigger","current_user_reaction","before_reaction_user_id","before_like_id","include_likes","acting_username","create","topic","post_user","category","findById","category_id","postAttrs","findReactionUsers","postId","init","__type","_discourse","modelFor","setupController","controller","loadedAll","controllerFor","setProperties","UserNotificationsReactionsReceived","templateName","controllerName","queryParams","refreshModel","params","_runloop","_core","_jquery","_rsvp","_environment","_widget","_currentReactionWidget","_popperPicker","moveReactionAnimation","postContainer","startPosition","endPosition","complete","isTesting","fakeReaction","img","document","createElement","src","classList","buildFakeReaction","querySelector","appendChild","style","top","opacity","animate","duration","remove","scaleReactionAnimation","start","end","run","stop","css","textIndent","step","now","addClass","removeClass","createWidget","tagName","services","defaultState","reactionsPickerExpanded","statePanelExpanded","buildKey","attrs","position","buildClasses","hasReactions","hasReacted","classes","filter","yours","current_user_used_main_reaction","can_undo","likeAction","canToggle","toggleReactions","event","state","scheduleExpand","expandReactionsPicker","touchStart","_validTouch","cancel","_touchTimeout","capabilities","touch","documentElement","_touchStartAt","Date","later","touchMove","touchEnd","originalEvent","changedTouches","endTarget","elementFromPoint","clientX","clientY","parentNode","contains","target","toggleFromButton","showLogin","userHasBeenActive","canVibrate","navigator","vibrate","pickedReaction","CSS","escape","scales","list","toggleReaction","catch","e","dialog","alert","_extractErrors","_rollbackState","collapseAllPanels","scheduleRerender","every","splice","reaction_users_count","isAvailable","newReaction","tempReactions","assign","newReactionIndex","sort","reaction1","reaction2","indexOf","mainReactionName","user_id","selector","cancelCollapse","_collapseHandler","cancelExpand","_expandHandler","handler","scheduleCollapse","buildId","clickOutside","_setupPopper","expandStatePanel","collapseStatePanel","collapseReactionsPicker","updatePopperPosition","update","html","items","payload","attach","selectors","schedule","popper","destroy","_applyPopper","button","picker","createPopper","placement","modifiers","options","offset","padding","xhr","jqXHR","status","responseJSON","errors","_virtualDom","reactionsChanged","uniq","forEach","getUsers","reactionsUsers","response","reaction_users","reactionUser","callWidgetFunction","mouseDown","stopImmediatePropagation","mouseUp","stopPropagation","preventDefault","toggleStatePanel","mainReactionIcon","discourse_reactions_like_icon","h","toString","iconNode","pointerOver","pointerType","pointerOut","relatedTarget","closest","_rawHtml","_popperReactionUserPanel","loadingReactions","debounce","_loadReactionUsers","displayUsers","slice","displayName","prioritize_username_in_ux","elements","emojiUnescape","skipTitle","class","discourse_reactions_desaturated_reaction_panel","elementId","popperElement","discourse_reactions_enabled_reactions","Boolean","unshift","currentUserReaction","_getOptimalColsCount","isUsed","canUndo","title","titleOptions","actionParam","className","contents","x","colsByRow","rest","_utils","isBlank","buildAttributes","hasUsedMainReaction","alt","isDisplayed","sendWidgetAction","firsLineUsers","avatarFor","template","avatar_template","more","columnsCount","charsCount","Math","max","mapBy","showUsers","displayedReactionId","hideUsers","keys"],"sources":["discourse/plugins/discourse-reactions/discourse/adapters/discourse-reactions-adapter.js","discourse/plugins/discourse-reactions/discourse/adapters/discourse-reactions-custom-reaction.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-button.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-summary.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-post.js","discourse/plugins/discourse-reactions/discourse/controllers/user-activity-reactions.js","discourse/plugins/discourse-reactions/discourse/discourse-reactions-user-activity-route-map.js","discourse/plugins/discourse-reactions/discourse/discourse-reactions-user-notifications-route-map.js","discourse/plugins/discourse-reactions/discourse/initializers/discourse-reactions.js","discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction.js","discourse/plugins/discourse-reactions/discourse/routes/user-activity-reactions.js","discourse/plugins/discourse-reactions/discourse/routes/user-notifications-reactions-received.js","discourse/plugins/discourse-reactions/discourse/templates/connectors/user-activity-bottom/discourse-reactions-user-activity-reactions.js","discourse/plugins/discourse-reactions/discourse/templates/connectors/user-notifications-bottom/discourse-reactions-user-notification-reactions.js","discourse/plugins/discourse-reactions/discourse/templates/user-activity-reactions.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-actions.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-counter.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-double-button.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-list-emoji.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-list.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-picker.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-reaction-button.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-state-panel-reaction.js","discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-state-panel.js"],"sourcesContent":["define(\"discourse/plugins/discourse-reactions/discourse/adapters/discourse-reactions-adapter\", [\"exports\", \"discourse/adapters/rest\"], function (_exports, _rest) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class DiscourseReactionsAdapter extends _rest.default {\n    basePath() {\n      return \"/discourse-reactions/\";\n    }\n  }\n  _exports.default = DiscourseReactionsAdapter;\n});","define(\"discourse/plugins/discourse-reactions/discourse/adapters/discourse-reactions-custom-reaction\", [\"exports\", \"discourse/plugins/discourse-reactions/discourse/adapters/discourse-reactions-adapter\"], function (_exports, _discourseReactionsAdapter) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class DiscourseReactionsCustomReaction extends _discourseReactionsAdapter.default {\n    pathFor(store, type, findArgs) {\n      const path = this.basePath(store, type, findArgs) + store.pluralize(this.apiNameFor(type));\n      return this.appendQueryParams(path, findArgs);\n    }\n    apiNameFor() {\n      return \"custom-reaction\";\n    }\n  }\n  _exports.default = DiscourseReactionsCustomReaction;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-button\", [\"exports\", \"@ember/helper\", \"discourse/components/mount-widget\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _mountWidget, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const ReactionsActionButton = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{! template-lint-disable no-capital-arguments }}\n    <MountWidget\n      class=\"discourse-reactions-actions-button-shim\"\n      @widget=\"discourse-reactions-actions\"\n      @args={{hash post=@post showLogin=@buttonActions.showLogin}}\n    />\n  \n  */\n  {\n    \"id\": \"L0ZVm9QZ\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[1,\\\"  \\\"],[8,[32,0],[[24,0,\\\"discourse-reactions-actions-button-shim\\\"]],[[\\\"@widget\\\",\\\"@args\\\"],[\\\"discourse-reactions-actions\\\",[28,[32,1],null,[[\\\"post\\\",\\\"showLogin\\\"],[[30,1],[30,2,[\\\"showLogin\\\"]]]]]]],null],[1,\\\"\\\\n\\\"]],[\\\"@post\\\",\\\"@buttonActions\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-button.js\",\n    \"scope\": () => [_mountWidget.default, _helper.hash],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"discourse-reactions-actions-button:ReactionsActionButton\"));\n  var _default = _exports.default = ReactionsActionButton;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-summary\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"discourse/components/mount-widget\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _mountWidget, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class ReactionsActionSummary extends _component.default {\n    static extraControls = true;\n    static shouldRender(args, context, owner) {\n      const site = owner.lookup(\"service:site\");\n      if (site.mobileView || args.post.deleted) {\n        return false;\n      }\n      const siteSettings = owner.lookup(\"service:site-settings\");\n      const mainReaction = siteSettings.discourse_reactions_reaction_for_like;\n      return !(args.post.reactions && args.post.reactions.length === 1 && args.post.reactions[0].id === mainReaction);\n    }\n    static #_ = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        {{#if @shouldRender}}\n          {{! template-lint-disable no-capital-arguments }}\n          <MountWidget\n            @widget=\"discourse-reactions-actions\"\n            @args={{hash post=@post position=\"left\"}}\n          />\n        {{/if}}\n      \n    */\n    {\n      \"id\": \"twcpD1kO\",\n      \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1],[[[1,\\\"      \\\"],[8,[32,0],null,[[\\\"@widget\\\",\\\"@args\\\"],[\\\"discourse-reactions-actions\\\",[28,[32,1],null,[[\\\"post\\\",\\\"position\\\"],[[30,2],\\\"left\\\"]]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"@shouldRender\\\",\\\"@post\\\"],false,[\\\"if\\\"]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-summary.js\",\n      \"scope\": () => [_mountWidget.default, _helper.hash],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = ReactionsActionSummary;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-post\", [\"exports\", \"@ember/component\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/object/computed\", \"@ember/service\", \"discourse/lib/ajax\", \"discourse/lib/get-url\", \"discourse/lib/text\", \"@ember/template-factory\"], function (_exports, _component, _component2, _tracking, _object, _computed, _service, _ajax, _getUrl, _text, _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    <UserStreamItem\n    @item={{hash\n      username=@reaction.post_user.username\n      name=@reaction.post_user.name\n      avatar_template=@reaction.post_user.avatar_template\n      created_at=@reaction.created_at\n      postUrl=this.postUrl\n      category=@reaction.category\n      title=@reaction.topic.title\n      expandedExcerpt=this.updatedExpandedExcerpt\n      excerpt=this.updatedExcerpt\n      topic_id=@reaction.topic_id\n      post_id=@reaction.post_id\n      user_id=@reaction.user_id\n    }}\n  >\n    <:bottom>\n      {{#if @reaction.reaction.reaction_users_count}}\n        <div class=\"discourse-reactions-my-reaction\">\n          <img src={{this.emojiUrl}} class=\"reaction-emoji\" />\n          <a\n            href={{@reaction.user.userUrl}}\n            data-user-card={{@reaction.user.username}}\n            class=\"avatar-link\"\n          >\n            {{avatar\n              @reaction.user\n              imageSize=\"tiny\"\n              extraClasses=\"actor\"\n              ignoreTitle=\"true\"\n            }}\n          </a>\n        </div>\n      {{/if}}\n    </:bottom>\n  </UserStreamItem>\n  */\n  {\n    \"id\": \"qSbb+shu\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@item\\\"],[[28,[37,1],null,[[\\\"username\\\",\\\"name\\\",\\\"avatar_template\\\",\\\"created_at\\\",\\\"postUrl\\\",\\\"category\\\",\\\"title\\\",\\\"expandedExcerpt\\\",\\\"excerpt\\\",\\\"topic_id\\\",\\\"post_id\\\",\\\"user_id\\\"],[[30,1,[\\\"post_user\\\",\\\"username\\\"]],[30,1,[\\\"post_user\\\",\\\"name\\\"]],[30,1,[\\\"post_user\\\",\\\"avatar_template\\\"]],[30,1,[\\\"created_at\\\"]],[30,0,[\\\"postUrl\\\"]],[30,1,[\\\"category\\\"]],[30,1,[\\\"topic\\\",\\\"title\\\"]],[30,0,[\\\"updatedExpandedExcerpt\\\"]],[30,0,[\\\"updatedExcerpt\\\"]],[30,1,[\\\"topic_id\\\"]],[30,1,[\\\"post_id\\\"]],[30,1,[\\\"user_id\\\"]]]]]]],[[\\\"bottom\\\"],[[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"reaction\\\",\\\"reaction_users_count\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"discourse-reactions-my-reaction\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"img\\\"],[15,\\\"src\\\",[30,0,[\\\"emojiUrl\\\"]]],[14,0,\\\"reaction-emoji\\\"],[12],[13],[1,\\\"\\\\n        \\\"],[10,3],[15,6,[30,1,[\\\"user\\\",\\\"userUrl\\\"]]],[15,\\\"data-user-card\\\",[30,1,[\\\"user\\\",\\\"username\\\"]]],[14,0,\\\"avatar-link\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[28,[35,7],[[30,1,[\\\"user\\\"]]],[[\\\"imageSize\\\",\\\"extraClasses\\\",\\\"ignoreTitle\\\"],[\\\"tiny\\\",\\\"actor\\\",\\\"true\\\"]]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[]]]]]],[\\\"@reaction\\\"],false,[\\\"user-stream-item\\\",\\\"hash\\\",\\\":bottom\\\",\\\"if\\\",\\\"div\\\",\\\"img\\\",\\\"a\\\",\\\"avatar\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-post.hbs\",\n    \"isStrictMode\": false\n  });\n  let cachedNames = new Map();\n  let pendingSearch = null;\n  class DiscourseReactionsReactionPost extends _component2.default {\n    static #_ = (() => dt7948.g(this.prototype, \"site\", [_service.service]))();\n    #site = (() => (dt7948.i(this, \"site\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n    #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"updatedExcerpt\", [_tracking.tracked], function () {\n      return this.args.reaction.post.excerpt;\n    }))();\n    #updatedExcerpt = (() => (dt7948.i(this, \"updatedExcerpt\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"updatedExpandedExcerpt\", [_tracking.tracked], function () {\n      return this.args.reaction.post.expandedExcerpt;\n    }))();\n    #updatedExpandedExcerpt = (() => (dt7948.i(this, \"updatedExpandedExcerpt\"), void 0))();\n    static #_5 = (() => dt7948.g(this.prototype, \"moderatorAction\", [(0, _computed.equal)(\"args.reaction.post.post_type\", \"site.post_types.moderator_action\")]))();\n    #moderatorAction = (() => (dt7948.i(this, \"moderatorAction\"), void 0))();\n    constructor() {\n      super(...arguments);\n      this.updateMentionedUsernames();\n    }\n    async updateMentionedUsernames() {\n      this.updatedExcerpt = await this.replaceMentionsWithFullNames(this.args.reaction.post.excerpt);\n      this.updatedExpandedExcerpt = await this.replaceMentionsWithFullNames(this.args.reaction.post.expandedExcerpt);\n    }\n    static #_6 = (() => dt7948.n(this.prototype, \"updateMentionedUsernames\", [_object.action]))();\n    async replaceMentionsWithFullNames(text) {\n      if (!text) {\n        return text;\n      }\n      const mentionRegex = /@([\\p{L}\\d._]+)/gu;\n      const replacedText = await Promise.all(text.split(mentionRegex).map(async (part, index) => {\n        if (index % 2 === 1) {\n          const fullName = await this.searchUsername(part);\n          return `@${fullName || part}`;\n        }\n        return part;\n      }));\n      return replacedText.join(\"\");\n    }\n    async searchUsername(username) {\n      username = username.toLowerCase();\n      if (cachedNames.has(username)) {\n        return cachedNames.get(username);\n      }\n      if (pendingSearch?.usernames.size <= 50) {\n        pendingSearch.usernames.add(username);\n        const results = await pendingSearch.search;\n        if (results.searchedUsernames.includes(username)) {\n          const fullName = results.data.users?.find(user => user.username.toLowerCase() === username)?.name || results.data.groups?.find(group => group.name.toLowerCase() === username)?.full_name;\n          cachedNames.set(username, fullName);\n          return fullName;\n        }\n      }\n      return this.deferSearch(username);\n    }\n    async deferSearch(username) {\n      const usernamesList = new Set([username]);\n      pendingSearch = {\n        search: new Promise(resolve => {\n          setTimeout(async () => {\n            const searchedUsernames = Array.from(usernamesList);\n            pendingSearch = null;\n            const data = await (0, _ajax.ajax)(\"/u/search/users.json\", {\n              data: {\n                usernames: searchedUsernames.join(\",\"),\n                include_groups: this.siteSettings.show_fullname_for_groups\n              }\n            });\n            resolve({\n              searchedUsernames,\n              data\n            });\n          }, 20);\n        }),\n        usernames: usernamesList\n      };\n      return this.searchUsername(username);\n    }\n    get postUrl() {\n      return (0, _getUrl.default)(this.args.reaction.post.url);\n    }\n    get emojiUrl() {\n      const reactionValue = this.args.reaction.reaction.reaction_value;\n      return reactionValue ? (0, _text.emojiUrlFor)(reactionValue) : null;\n    }\n  }\n  _exports.default = DiscourseReactionsReactionPost;\n  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DiscourseReactionsReactionPost);\n});","define(\"discourse/plugins/discourse-reactions/discourse/controllers/user-activity-reactions\", [\"exports\", \"@glimmer/tracking\", \"@ember/controller\", \"@ember/object\", \"@ember/service\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _tracking, _controller, _object, _service, _discourseReactionsCustomReaction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class UserActivityReactions extends _controller.default {\n    static #_ = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n    #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"application\", [_controller.inject]))();\n    #application = (() => (dt7948.i(this, \"application\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"canLoadMore\", [_tracking.tracked], function () {\n      return true;\n    }))();\n    #canLoadMore = (() => (dt7948.i(this, \"canLoadMore\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"loading\", [_tracking.tracked], function () {\n      return false;\n    }))();\n    #loading = (() => (dt7948.i(this, \"loading\"), void 0))();\n    static #_5 = (() => dt7948.g(this.prototype, \"beforeLikeId\", [_tracking.tracked], function () {\n      return null;\n    }))();\n    #beforeLikeId = (() => (dt7948.i(this, \"beforeLikeId\"), void 0))();\n    static #_6 = (() => dt7948.g(this.prototype, \"beforeReactionUserId\", [_tracking.tracked], function () {\n      return null;\n    }))();\n    #beforeReactionUserId = (() => (dt7948.i(this, \"beforeReactionUserId\"), void 0))();\n    #getLastIdFrom(array) {\n      return array.length ? array[array.length - 1].get(\"id\") : null;\n    }\n    #updateBeforeIds(reactionUsers) {\n      if (this.includeLikes) {\n        const mainReaction = this.siteSettings.discourse_reactions_reaction_for_like;\n        const [likes, reactions] = reactionUsers.reduce((memo, elem) => {\n          if (elem.reaction.reaction_value === mainReaction) {\n            memo[0].push(elem);\n          } else {\n            memo[1].push(elem);\n          }\n          return memo;\n        }, [[], []]);\n        this.beforeLikeId = this.#getLastIdFrom(likes);\n        this.beforeReactionUserId = this.#getLastIdFrom(reactions);\n      } else {\n        this.beforeReactionUserId = this.#getLastIdFrom(reactionUsers);\n      }\n    }\n    loadMore() {\n      if (!this.canLoadMore || this.loading) {\n        return;\n      }\n      this.loading = true;\n      const reactionUsers = this.model;\n      if (!this.beforeReactionUserId) {\n        this.#updateBeforeIds(reactionUsers);\n      }\n      const opts = {\n        actingUsername: this.actingUsername,\n        includeLikes: this.includeLikes,\n        beforeLikeId: this.beforeLikeId,\n        beforeReactionUserId: this.beforeReactionUserId\n      };\n      _discourseReactionsCustomReaction.default.findReactions(this.reactionsUrl, this.username, opts).then(newReactionUsers => {\n        reactionUsers.addObjects(newReactionUsers);\n        this.#updateBeforeIds(newReactionUsers);\n        if (newReactionUsers.length === 0) {\n          this.canLoadMore = false;\n        }\n      }).finally(() => {\n        this.loading = false;\n      });\n    }\n    static #_7 = (() => dt7948.n(this.prototype, \"loadMore\", [_object.action]))();\n  }\n  _exports.default = UserActivityReactions;\n});","define(\"discourse/plugins/discourse-reactions/discourse/discourse-reactions-user-activity-route-map\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    resource: \"user.userActivity\",\n    map() {\n      this.route(\"reactions\");\n    }\n  };\n});","define(\"discourse/plugins/discourse-reactions/discourse/discourse-reactions-user-notifications-route-map\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    resource: \"user.userNotifications\",\n    map() {\n      this.route(\"reactionsReceived\", {\n        path: \"reactions-received\"\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-reactions/discourse/initializers/discourse-reactions\", [\"exports\", \"discourse/lib/icon-library\", \"discourse/lib/plugin-api\", \"discourse/lib/text\", \"discourse/lib/url\", \"discourse/lib/utilities\", \"discourse-i18n\", \"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-actions\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-button\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-summary\"], function (_exports, _iconLibrary, _pluginApi, _text, _url, _utilities, _discourseI18n, _discourseReactionsActions, _discourseReactionsActionsButton, _discourseReactionsActionsSummary) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PLUGIN_ID = \"discourse-reactions\";\n  (0, _iconLibrary.replaceIcon)(\"notification.reaction\", \"bell\");\n  function initializeDiscourseReactions(api) {\n    customizePostMenu(api);\n    api.addKeyboardShortcut(\"l\", null, {\n      click: \".topic-post.selected .discourse-reactions-reaction-button\"\n    });\n    api.modifyClass(\"component:scrolling-post-stream\", {\n      pluginId: PLUGIN_ID,\n      didInsertElement() {\n        this._super(...arguments);\n        const topicId = this?.posts?.firstObject?.topic_id;\n        if (topicId) {\n          this.messageBus.subscribe(`/topic/${topicId}/reactions`, data => {\n            this.dirtyKeys.keyDirty(`discourse-reactions-counter-${data.post_id}`, {\n              onRefresh: \"reactionsChanged\",\n              refreshArg: data\n            });\n            this._refresh({\n              id: data.post_id\n            });\n          });\n        }\n      }\n    });\n    api.modifyClass(\"controller:topic\", {\n      pluginId: PLUGIN_ID,\n      unsubscribe() {\n        this._super(...arguments);\n        const topicId = this.model.id;\n        topicId && this.messageBus.unsubscribe(`/topic/${topicId}/reactions`);\n      }\n    });\n    api.modifyClass(\"component:emoji-value-list\", {\n      pluginId: PLUGIN_ID,\n      didReceiveAttrs() {\n        this._super(...arguments);\n        if (this.setting.setting !== \"discourse_reactions_enabled_reactions\") {\n          return;\n        }\n        let defaultValue = this.values.includes(this.siteSettings.discourse_reactions_reaction_for_like);\n        if (!defaultValue) {\n          this.collection.unshiftObject({\n            emojiUrl: (0, _text.emojiUrlFor)(this.siteSettings.discourse_reactions_reaction_for_like),\n            isEditable: false,\n            isEditing: false,\n            value: this.siteSettings.discourse_reactions_reaction_for_like\n          });\n        } else {\n          const mainEmoji = this.collection.findBy(\"value\", this.siteSettings.discourse_reactions_reaction_for_like);\n          if (mainEmoji) {\n            mainEmoji.isEditable = false;\n          }\n        }\n      }\n    },\n    // It's an admin component so it's not always present\n    {\n      ignoreMissing: true\n    });\n    api.replaceIcon(\"notification.reaction\", \"discourse-emojis\");\n    if (api.registerNotificationTypeRenderer) {\n      api.registerNotificationTypeRenderer(\"reaction\", NotificationTypeBase => {\n        return class extends NotificationTypeBase {\n          get linkTitle() {\n            return (0, _discourseI18n.i18n)(\"notifications.titles.reaction\");\n          }\n          get linkHref() {\n            const superHref = super.linkHref;\n            if (superHref) {\n              return superHref;\n            }\n            let activityName = \"reactions-received\";\n            // All collapsed notifications were \"likes\"\n            if (this.notification.data.reaction_icon) {\n              activityName = \"likes-received\";\n            }\n            return (0, _url.userPath)(`${this.currentUser.username}/notifications/${activityName}?acting_username=${this.notification.data.display_username}&include_likes=true`);\n          }\n          get icon() {\n            return this.notification.data.reaction_icon || `notification.${this.notificationName}`;\n          }\n          get label() {\n            const count = this.notification.data.count;\n            const nameOrUsername = this.siteSettings.prioritize_full_name_in_ux ? this.notification.data.display_name || this.username : this.username;\n            if (!count || count === 1 || !this.notification.data.username2) {\n              return nameOrUsername;\n            }\n            if (count > 2) {\n              return (0, _discourseI18n.i18n)(\"notifications.reaction_multiple_users\", {\n                username: nameOrUsername,\n                count: count - 1\n              });\n            } else {\n              const nameOrUsername2 = this.siteSettings.prioritize_full_name_in_ux ? this.notification.data.name2 || (0, _utilities.formatUsername)(this.notification.data.username2) : (0, _utilities.formatUsername)(this.notification.data.username2);\n              return (0, _discourseI18n.i18n)(\"notifications.reaction_2_users\", {\n                username: nameOrUsername,\n                username2: nameOrUsername2\n              });\n            }\n          }\n          get labelClasses() {\n            if (this.notification.data.username2) {\n              if (this.notification.data.count > 2) {\n                return [\"multi-user\"];\n              } else {\n                return [\"double-user\"];\n              }\n            }\n          }\n          get description() {\n            if (this.notification.data.count > 1 && !this.notification.data.username2) {\n              return (0, _discourseI18n.i18n)(\"notifications.reaction_1_user_multiple_posts\", {\n                count: this.notification.data.count\n              });\n            }\n            return super.description;\n          }\n        };\n      });\n    }\n  }\n  function customizePostMenu(api) {\n    api.registerValueTransformer(\"post-menu-buttons\", _ref => {\n      let {\n        value: dag,\n        context: {\n          buttonKeys\n        }\n      } = _ref;\n      dag.replace(buttonKeys.LIKE, _discourseReactionsActionsButton.default);\n      dag.add(\"discourse-reactions-actions\", _discourseReactionsActionsSummary.default, {\n        after: buttonKeys.REPLIES\n      });\n    });\n  }\n  var _default = _exports.default = {\n    name: \"discourse-reactions\",\n    initialize(container) {\n      const siteSettings = container.lookup(\"service:site-settings\");\n      if (siteSettings.discourse_reactions_enabled) {\n        (0, _pluginApi.withPluginApi)(\"1.34.0\", initializeDiscourseReactions);\n      }\n    },\n    teardown() {\n      (0, _discourseReactionsActions.resetCurrentReaction)();\n    }\n  };\n});","define(\"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\", [\"exports\", \"@ember/object\", \"discourse/lib/ajax\", \"discourse/models/category\", \"discourse/models/post\", \"discourse/models/rest\", \"discourse/models/topic\", \"discourse/models/user\"], function (_exports, _object, _ajax, _category, _post, _rest, _topic, _user) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class CustomReaction extends _rest.default {\n    static toggle(post, reactionId) {\n      return (0, _ajax.ajax)(`/discourse-reactions/posts/${post.id}/custom-reactions/${reactionId}/toggle.json`, {\n        type: \"PUT\"\n      }).then(result => {\n        post.appEvents.trigger(\"discourse-reactions:reaction-toggled\", {\n          post: result,\n          reaction: result.current_user_reaction\n        });\n      });\n    }\n    static findReactions(url, username, opts) {\n      opts = opts || {};\n      const data = {\n        username\n      };\n      if (opts.beforeReactionUserId) {\n        data.before_reaction_user_id = opts.beforeReactionUserId;\n      }\n      if (opts.beforeLikeId) {\n        data.before_like_id = opts.beforeLikeId;\n      }\n      if (opts.includeLikes) {\n        data.include_likes = opts.includeLikes;\n      }\n      if (opts.actingUsername) {\n        data.acting_username = opts.actingUsername;\n      }\n      return (0, _ajax.ajax)(`/discourse-reactions/posts/${url}.json`, {\n        data\n      }).then(reactions => {\n        return reactions.map(reaction => {\n          reaction.user = _user.default.create(reaction.user);\n          reaction.topic = _topic.default.create(reaction.post.topic);\n          reaction.post_user = _user.default.create(reaction.post.user);\n          reaction.category = _category.default.findById(reaction.post.category_id);\n          const postAttrs = {\n            ...reaction.post\n          };\n          delete postAttrs.url; // Auto-calculated by Model implementation\n\n          reaction.post = _post.default.create(postAttrs);\n          return _object.default.create(reaction);\n        });\n      });\n    }\n    static findReactionUsers(postId, opts) {\n      opts = opts || {};\n      const data = {};\n      if (opts.reactionValue) {\n        data.reaction_value = opts.reactionValue;\n      }\n      return (0, _ajax.ajax)(`/discourse-reactions/posts/${postId}/reactions-users.json`, {\n        data\n      });\n    }\n    init() {\n      super.init(...arguments);\n      this.__type = \"discourse-reactions-custom-reaction\";\n    }\n  }\n  _exports.default = CustomReaction;\n});","define(\"discourse/plugins/discourse-reactions/discourse/routes/user-activity-reactions\", [\"exports\", \"discourse/routes/discourse\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _discourse, _discourseReactionsCustomReaction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class UserActivityReactions extends _discourse.default {\n    model() {\n      return _discourseReactionsCustomReaction.default.findReactions(\"reactions\", this.modelFor(\"user\").get(\"username\"));\n    }\n    setupController(controller, model) {\n      let loadedAll = model.length < 20;\n      this.controllerFor(\"user-activity-reactions\").setProperties({\n        model,\n        canLoadMore: !loadedAll,\n        reactionsUrl: \"reactions\",\n        username: this.modelFor(\"user\").get(\"username\")\n      });\n    }\n  }\n  _exports.default = UserActivityReactions;\n});","define(\"discourse/plugins/discourse-reactions/discourse/routes/user-notifications-reactions-received\", [\"exports\", \"discourse/routes/discourse\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _discourse, _discourseReactionsCustomReaction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class UserNotificationsReactionsReceived extends _discourse.default {\n    templateName = \"user-activity-reactions\";\n    controllerName = \"user-activity-reactions\";\n    queryParams = {\n      acting_username: {\n        refreshModel: true\n      },\n      include_likes: {\n        refreshModel: true\n      }\n    };\n    model(params) {\n      return _discourseReactionsCustomReaction.default.findReactions(\"reactions-received\", this.modelFor(\"user\").get(\"username\"), {\n        actingUsername: params.acting_username,\n        includeLikes: params.include_likes\n      });\n    }\n    setupController(controller, model) {\n      let loadedAll = model.length < 20;\n      this.controllerFor(\"user-activity-reactions\").setProperties({\n        model,\n        canLoadMore: !loadedAll,\n        reactionsUrl: \"reactions-received\",\n        username: this.modelFor(\"user\").get(\"username\"),\n        actingUsername: controller.acting_username,\n        includeLikes: controller.include_likes\n      });\n      this.controllerFor(\"application\").set(\"showFooter\", loadedAll);\n    }\n  }\n  _exports.default = UserNotificationsReactionsReceived;\n});","define(\"discourse/plugins/discourse-reactions/discourse/templates/connectors/user-activity-bottom/discourse-reactions-user-activity-reactions\", [\"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    {{#if this.siteSettings.discourse_reactions_enabled}}\n    <LinkTo @route=\"userActivity.reactions\">\n      {{d-icon \"far-face-smile\"}}\n      <span>{{i18n \"discourse_reactions.reactions_title\"}}</span>\n    </LinkTo>\n  {{/if}}\n  */\n  {\n    \"id\": \"DCXJdd7J\",\n    \"block\": \"[[[41,[30,0,[\\\"siteSettings\\\",\\\"discourse_reactions_enabled\\\"]],[[[1,\\\"  \\\"],[8,[39,1],null,[[\\\"@route\\\"],[\\\"userActivity.reactions\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[1,[28,[35,2],[\\\"far-face-smile\\\"],null]],[1,\\\"\\\\n    \\\"],[10,1],[12],[1,[28,[35,4],[\\\"discourse_reactions.reactions_title\\\"],null]],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],null]],[],false,[\\\"if\\\",\\\"link-to\\\",\\\"d-icon\\\",\\\"span\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-reactions/discourse/templates/connectors/user-activity-bottom/discourse-reactions-user-activity-reactions.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/templates/connectors/user-notifications-bottom/discourse-reactions-user-notification-reactions\", [\"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    {{#if this.siteSettings.discourse_reactions_enabled}}\n    <LinkTo @route=\"userNotifications.reactionsReceived\">\n      {{d-icon \"far-face-smile\"}}\n      <span>{{i18n \"discourse_reactions.reactions_title\"}}</span>\n    </LinkTo>\n  {{/if}}\n  */\n  {\n    \"id\": \"Mgs9xR0w\",\n    \"block\": \"[[[41,[30,0,[\\\"siteSettings\\\",\\\"discourse_reactions_enabled\\\"]],[[[1,\\\"  \\\"],[8,[39,1],null,[[\\\"@route\\\"],[\\\"userNotifications.reactionsReceived\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[1,[28,[35,2],[\\\"far-face-smile\\\"],null]],[1,\\\"\\\\n    \\\"],[10,1],[12],[1,[28,[35,4],[\\\"discourse_reactions.reactions_title\\\"],null]],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],null]],[],false,[\\\"if\\\",\\\"link-to\\\",\\\"d-icon\\\",\\\"span\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-reactions/discourse/templates/connectors/user-notifications-bottom/discourse-reactions-user-notification-reactions.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/templates/user-activity-reactions\", [\"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    <LoadMore @selector=\".user-stream-item\" @action={{action \"loadMore\"}}>\n    <div class=\"user-stream\">\n      {{#each @model as |reaction|}}\n        <DiscourseReactionsReactionPost @reaction={{reaction}} />\n      {{else}}\n        <div class=\"alert alert-info\">{{i18n \"notifications.empty\"}}</div>\n      {{/each}}\n    </div>\n  \n    <ConditionalLoadingSpinner @condition={{this.loading}} />\n  </LoadMore>\n  */\n  {\n    \"id\": \"6thmHTAX\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@selector\\\",\\\"@action\\\"],[\\\".user-stream-item\\\",[28,[37,1],[[30,0],\\\"loadMore\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"user-stream\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,4],[[28,[37,4],[[30,1]],null]],null],null,[[[1,\\\"      \\\"],[8,[39,5],null,[[\\\"@reaction\\\"],[[30,2]]],null],[1,\\\"\\\\n\\\"]],[2]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"alert alert-info\\\"],[12],[1,[28,[35,6],[\\\"notifications.empty\\\"],null]],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\\n  \\\"],[8,[39,7],null,[[\\\"@condition\\\"],[[30,0,[\\\"loading\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]]]]]],[\\\"@model\\\",\\\"reaction\\\"],false,[\\\"load-more\\\",\\\"action\\\",\\\"div\\\",\\\"each\\\",\\\"-track-array\\\",\\\"discourse-reactions-reaction-post\\\",\\\"i18n\\\",\\\"conditional-loading-spinner\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-reactions/discourse/templates/user-activity-reactions.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-actions\", [\"exports\", \"@ember/runloop\", \"@popperjs/core\", \"jquery\", \"rsvp\", \"discourse/lib/environment\", \"discourse/lib/text\", \"discourse/widgets/widget\", \"discourse-i18n\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _runloop, _core, _jquery, _rsvp, _environment, _text, _widget, _discourseI18n, _discourseReactionsCustomReaction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  _exports.resetCurrentReaction = resetCurrentReaction;\n  const VIBRATE_DURATION = 5;\n  let _popperPicker;\n  let _currentReactionWidget;\n  function resetCurrentReaction() {\n    _currentReactionWidget = null;\n  }\n  function buildFakeReaction(reactionId) {\n    const img = document.createElement(\"img\");\n    img.src = (0, _text.emojiUrlFor)(reactionId);\n    img.classList.add(\"btn-toggle-reaction-emoji\", \"reaction-button\", \"fake-reaction\");\n    return img;\n  }\n  function moveReactionAnimation(postContainer, reactionId, startPosition, endPosition, complete) {\n    if ((0, _environment.isTesting)()) {\n      return;\n    }\n    const fakeReaction = buildFakeReaction(reactionId);\n    const reactionButton = postContainer.querySelector(\".reaction-button\");\n    reactionButton.appendChild(fakeReaction);\n    let done = () => {\n      fakeReaction.remove();\n      complete();\n    };\n    fakeReaction.style.top = startPosition;\n    fakeReaction.style.opacity = 0;\n    (0, _jquery.default)(fakeReaction).animate({\n      top: endPosition,\n      opacity: 1\n    }, {\n      duration: 350,\n      complete: done\n    }, \"swing\");\n  }\n  function addReaction(list, reactionId, complete) {\n    moveReactionAnimation(list, reactionId, \"-50px\", \"8px\", complete);\n  }\n  function dropReaction(list, reactionId, complete) {\n    moveReactionAnimation(list, reactionId, \"8px\", \"42px\", complete);\n  }\n  function scaleReactionAnimation(mainReaction, start, end, complete) {\n    if ((0, _environment.isTesting)()) {\n      return (0, _runloop.run)(this, complete);\n    }\n    return (0, _jquery.default)(mainReaction).stop().css(\"textIndent\", start).animate({\n      textIndent: end\n    }, {\n      complete,\n      step(now) {\n        (0, _jquery.default)(this).css(\"transform\", `scale(${now})`).addClass(\"far-heart\").removeClass(\"heart\");\n      },\n      duration: 150\n    }, \"linear\");\n  }\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-actions\", {\n    tagName: \"div.discourse-reactions-actions\",\n    services: [\"dialog\"],\n    defaultState() {\n      return {\n        reactionsPickerExpanded: false,\n        statePanelExpanded: false\n      };\n    },\n    buildKey: attrs => `discourse-reactions-actions-${attrs.post.id}-${attrs.position || \"right\"}`,\n    buildClasses(attrs) {\n      if (!attrs.post.reactions) {\n        return;\n      }\n      const post = attrs.post;\n      const hasReactions = post.reactions.length;\n      const hasReacted = post.current_user_reaction;\n      const customReactionUsed = post.reactions.length && post.reactions.filter(reaction => reaction.id !== this.siteSettings.discourse_reactions_reaction_for_like).length;\n      const classes = [];\n      if (customReactionUsed) {\n        classes.push(\"custom-reaction-used\");\n      }\n      if (post.yours) {\n        classes.push(\"my-post\");\n      }\n      if (hasReactions) {\n        classes.push(\"has-reactions\");\n      }\n      if (hasReacted) {\n        classes.push(\"has-reacted\");\n      }\n      if (post.current_user_used_main_reaction) {\n        classes.push(\"has-used-main-reaction\");\n      }\n      if ((!post.current_user_reaction || post.current_user_reaction.can_undo) && post.likeAction?.canToggle) {\n        classes.push(\"can-toggle-reaction\");\n      }\n      return classes;\n    },\n    toggleReactions(event) {\n      if (!this.state.reactionsPickerExpanded) {\n        if (this.state.statePanelExpanded) {\n          this.scheduleExpand(\"expandReactionsPicker\");\n        } else {\n          this.expandReactionsPicker(event);\n        }\n      }\n    },\n    touchStart() {\n      this._validTouch = true;\n      (0, _runloop.cancel)(this._touchTimeout);\n      if (this.capabilities.touch) {\n        document.documentElement?.classList?.toggle(\"discourse-reactions-no-select\", true);\n        this._touchStartAt = Date.now();\n        this._touchTimeout = (0, _runloop.later)(() => {\n          this._touchStartAt = null;\n          this.toggleReactions();\n        }, 400);\n        return false;\n      }\n    },\n    touchMove() {\n      // if users move while touching we consider it as a scroll and don't want to\n      // trigger the reaction or the picker\n      this._validTouch = false;\n      (0, _runloop.cancel)(this._touchTimeout);\n    },\n    touchEnd(event) {\n      (0, _runloop.cancel)(this._touchTimeout);\n      if (!this._validTouch) {\n        return;\n      }\n      if (this.capabilities.touch) {\n        if (event.originalEvent.changedTouches.length) {\n          const endTarget = document.elementFromPoint(event.originalEvent.changedTouches[0].clientX, event.originalEvent.changedTouches[0].clientY);\n          if (endTarget) {\n            const parentNode = endTarget.parentNode;\n            if (endTarget.classList.contains(\"pickable-reaction\")) {\n              endTarget.click();\n              return;\n            } else if (parentNode && parentNode.classList.contains(\"pickable-reaction\")) {\n              parentNode.click();\n              return;\n            }\n          }\n        }\n        const duration = Date.now() - (this._touchStartAt || 0);\n        this._touchStartAt = null;\n        if (duration > 400) {\n          if (event.originalEvent && event.originalEvent.target && event.originalEvent.target.classList.contains(\"discourse-reactions-reaction-button\")) {\n            this.toggleReactions(event);\n          }\n        } else {\n          if (event.target && (event.target.classList.contains(\"discourse-reactions-reaction-button\") || event.target.classList.contains(\"reaction-button\"))) {\n            this.toggleFromButton({\n              reaction: this.attrs.post.current_user_reaction ? this.attrs.post.current_user_reaction.id : this.siteSettings.discourse_reactions_reaction_for_like\n            });\n          }\n        }\n      }\n    },\n    toggle(params) {\n      if (!this.currentUser) {\n        if (this.attrs.showLogin) {\n          this.attrs.showLogin();\n          return;\n        }\n      }\n      if (!this.attrs.post.current_user_reaction || this.attrs.post.current_user_reaction.can_undo && this.attrs.post.likeAction.canToggle) {\n        if (this.capabilities.userHasBeenActive && this.capabilities.canVibrate) {\n          navigator.vibrate(VIBRATE_DURATION);\n        }\n        const pickedReaction = document.querySelector(`[data-post-id=\"${params.postId}\"] .discourse-reactions-picker .pickable-reaction.${CSS.escape(params.reaction)} .emoji`);\n        const scales = [1.0, 1.75];\n        return new _rsvp.Promise(resolve => {\n          scaleReactionAnimation(pickedReaction, scales[0], scales[1], () => {\n            scaleReactionAnimation(pickedReaction, scales[1], scales[0], () => {\n              const post = this.attrs.post;\n              const postContainer = document.querySelector(`[data-post-id=\"${params.postId}\"]`);\n              if (post.current_user_reaction && post.current_user_reaction.id === params.reaction) {\n                this.toggleReaction(params);\n                (0, _runloop.later)(() => {\n                  dropReaction(postContainer, params.reaction, () => {\n                    return _discourseReactionsCustomReaction.default.toggle(this.attrs.post, params.reaction).then(resolve).catch(e => {\n                      this.dialog.alert(this._extractErrors(e));\n                      this._rollbackState(post);\n                    });\n                  });\n                }, 100);\n              } else {\n                addReaction(postContainer, params.reaction, () => {\n                  this.toggleReaction(params);\n                  _discourseReactionsCustomReaction.default.toggle(this.attrs.post, params.reaction).then(resolve).catch(e => {\n                    this.dialog.alert(this._extractErrors(e));\n                    this._rollbackState(post);\n                  });\n                });\n              }\n            });\n          });\n        }).finally(() => {\n          this.collapseAllPanels();\n          this.scheduleRerender();\n        });\n      }\n    },\n    toggleReaction(attrs) {\n      this.collapseAllPanels();\n      if (this.attrs.post.current_user_reaction && !this.attrs.post.current_user_reaction.can_undo && !this.attrs.post.likeAction.canToggle) {\n        return;\n      }\n      const post = this.attrs.post;\n      if (post.current_user_reaction) {\n        post.reactions.every((reaction, index) => {\n          if (reaction.count <= 1 && reaction.id === post.current_user_reaction.id) {\n            post.reactions.splice(index, 1);\n            return false;\n          } else if (reaction.id === post.current_user_reaction.id) {\n            post.reactions[index].count -= 1;\n            return false;\n          }\n          return true;\n        });\n      }\n      if (attrs.reaction && (!post.current_user_reaction || attrs.reaction !== post.current_user_reaction.id)) {\n        let isAvailable = false;\n        post.reactions.every((reaction, index) => {\n          if (reaction.id === attrs.reaction) {\n            post.reactions[index].count += 1;\n            isAvailable = true;\n            return false;\n          }\n          return true;\n        });\n        if (!isAvailable) {\n          const newReaction = {\n            id: attrs.reaction,\n            type: \"emoji\",\n            count: 1\n          };\n          const tempReactions = Object.assign([], post.reactions);\n          tempReactions.push(newReaction);\n\n          //sorts reactions and get index of new reaction\n          const newReactionIndex = tempReactions.sort((reaction1, reaction2) => {\n            if (reaction1.count > reaction2.count) {\n              return -1;\n            }\n            if (reaction1.count < reaction2.count) {\n              return 1;\n            }\n\n            //if count is same, sort it by id\n            if (reaction1.id > reaction2.id) {\n              return 1;\n            }\n            if (reaction1.id < reaction2.id) {\n              return -1;\n            }\n          }).indexOf(newReaction);\n          post.reactions.splice(newReactionIndex, 0, newReaction);\n        }\n        if (!post.current_user_reaction) {\n          post.reaction_users_count += 1;\n        }\n        post.current_user_reaction = {\n          id: attrs.reaction,\n          type: \"emoji\",\n          can_undo: true\n        };\n      } else {\n        post.reaction_users_count -= 1;\n        post.current_user_reaction = null;\n      }\n      if (post.current_user_reaction && post.current_user_reaction.id === this.siteSettings.discourse_reactions_reaction_for_like) {\n        post.current_user_used_main_reaction = true;\n      } else {\n        post.current_user_used_main_reaction = false;\n      }\n    },\n    toggleFromButton(attrs) {\n      if (!this.currentUser) {\n        if (this.attrs.showLogin) {\n          this.attrs.showLogin();\n          return;\n        }\n      }\n      this.collapseAllPanels();\n      const mainReactionName = this.siteSettings.discourse_reactions_reaction_for_like;\n      const post = this.attrs.post;\n      const current_user_reaction = post.current_user_reaction;\n      if (post.likeAction && !(post.likeAction.canToggle || post.likeAction.can_undo)) {\n        return;\n      }\n      if (this.attrs.post.current_user_reaction && !this.attrs.post.current_user_reaction.can_undo) {\n        return;\n      }\n      if (!this.currentUser || post.user_id === this.currentUser.id) {\n        return;\n      }\n      if (this.capabilities.userHasBeenActive && this.capabilities.canVibrate) {\n        navigator.vibrate(VIBRATE_DURATION);\n      }\n      if (current_user_reaction && current_user_reaction.id === attrs.reaction) {\n        this.toggleReaction(attrs);\n        return _discourseReactionsCustomReaction.default.toggle(this.attrs.post, attrs.reaction).catch(e => {\n          this.dialog.alert(this._extractErrors(e));\n          this._rollbackState(post);\n        });\n      }\n      let selector;\n      if (post.reactions && post.reactions.length === 1 && post.reactions[0].id === mainReactionName) {\n        selector = `[data-post-id=\"${this.attrs.post.id}\"] .discourse-reactions-double-button .discourse-reactions-reaction-button .d-icon`;\n      } else {\n        if (!attrs.reaction || attrs.reaction === mainReactionName) {\n          selector = `[data-post-id=\"${this.attrs.post.id}\"] .discourse-reactions-reaction-button .d-icon`;\n        } else {\n          selector = `[data-post-id=\"${this.attrs.post.id}\"] .discourse-reactions-reaction-button .reaction-button .btn-toggle-reaction-emoji`;\n        }\n      }\n      const mainReaction = document.querySelector(selector);\n      const scales = [1.0, 1.5];\n      return new _rsvp.Promise(resolve => {\n        scaleReactionAnimation(mainReaction, scales[0], scales[1], () => {\n          scaleReactionAnimation(mainReaction, scales[1], scales[0], () => {\n            this.toggleReaction(attrs);\n            let toggleReaction = attrs.reaction && attrs.reaction !== mainReactionName ? attrs.reaction : this.siteSettings.discourse_reactions_reaction_for_like;\n            _discourseReactionsCustomReaction.default.toggle(this.attrs.post, toggleReaction).then(resolve).catch(e => {\n              this.dialog.alert(this._extractErrors(e));\n              this._rollbackState(post);\n            });\n          });\n        });\n      });\n    },\n    cancelCollapse() {\n      (0, _runloop.cancel)(this._collapseHandler);\n    },\n    cancelExpand() {\n      (0, _runloop.cancel)(this._expandHandler);\n    },\n    scheduleExpand(handler) {\n      this.cancelExpand();\n      this._expandHandler = (0, _runloop.later)(this, this[handler], 250);\n    },\n    scheduleCollapse(handler) {\n      this.cancelCollapse();\n      this._collapseHandler = (0, _runloop.later)(this, this[handler], 500);\n    },\n    buildId: attrs => `discourse-reactions-actions-${attrs.post.id}-${attrs.position || \"right\"}`,\n    clickOutside() {\n      if (this.state.reactionsPickerExpanded || this.state.statePanelExpanded) {\n        this.collapseAllPanels();\n      }\n    },\n    expandReactionsPicker() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      _currentReactionWidget?.collapseAllPanels();\n      this.state.statePanelExpanded = false;\n      this.state.reactionsPickerExpanded = true;\n      this.scheduleRerender();\n      this._setupPopper([\".discourse-reactions-reaction-button\", \".discourse-reactions-picker\"]);\n    },\n    expandStatePanel() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      _currentReactionWidget?.collapseAllPanels();\n      this.state.statePanelExpanded = true;\n      this.state.reactionsPickerExpanded = false;\n      this.scheduleRerender();\n      this._setupPopper([\".discourse-reactions-counter\", \".discourse-reactions-state-panel\"]);\n    },\n    collapseStatePanel() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      this._collapseHandler = null;\n      this.state.statePanelExpanded = false;\n      this.scheduleRerender();\n    },\n    collapseReactionsPicker() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      this._collapseHandler = null;\n      this.state.reactionsPickerExpanded = false;\n      this.scheduleRerender();\n    },\n    collapseAllPanels() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      document.documentElement?.classList?.toggle(\"discourse-reactions-no-select\", false);\n      this._collapseHandler = null;\n      this.state.statePanelExpanded = false;\n      this.state.reactionsPickerExpanded = false;\n      this.scheduleRerender();\n    },\n    updatePopperPosition() {\n      _popperPicker?.update();\n    },\n    html(attrs) {\n      const post = attrs.post;\n      const items = [];\n      const mainReaction = this.siteSettings.discourse_reactions_reaction_for_like;\n      const payload = Object.assign({}, attrs, {\n        reactionsPickerExpanded: this.state.reactionsPickerExpanded,\n        statePanelExpanded: this.state.statePanelExpanded\n      });\n      if (this.currentUser && post.user_id !== this.currentUser.id) {\n        items.push(this.attach(\"discourse-reactions-picker\", payload));\n      }\n      if (attrs.position === \"left\") {\n        items.push(this.attach(\"discourse-reactions-counter\", payload));\n        return items;\n      }\n      if (post.reactions && post.reactions.length === 1 && post.reactions[0].id === mainReaction) {\n        items.push(this.attach(\"discourse-reactions-double-button\", payload));\n      } else if (this.site.mobileView) {\n        if (!post.yours) {\n          items.push(this.attach(\"discourse-reactions-counter\", payload));\n          items.push(this.attach(\"discourse-reactions-reaction-button\", payload));\n        } else if (post.yours && post.reactions && post.reactions.length) {\n          items.push(this.attach(\"discourse-reactions-counter\", payload));\n        }\n      } else {\n        if (!post.yours) {\n          items.push(this.attach(\"discourse-reactions-reaction-button\", payload));\n        }\n      }\n      return items;\n    },\n    _setupPopper(selectors) {\n      (0, _runloop.schedule)(\"afterRender\", () => {\n        const position = this.attrs.position || \"right\";\n        const id = this.attrs.post.id;\n        const trigger = document.querySelector(`#discourse-reactions-actions-${id}-${position} ${selectors[0]}`);\n        const popper = document.querySelector(`#discourse-reactions-actions-${id}-${position} ${selectors[1]}`);\n        _popperPicker?.destroy();\n        _popperPicker = this._applyPopper(trigger, popper);\n        _currentReactionWidget = this;\n      });\n    },\n    _applyPopper(button, picker) {\n      return (0, _core.createPopper)(button, picker, {\n        placement: \"top\",\n        modifiers: [{\n          name: \"offset\",\n          options: {\n            offset: [0, -5]\n          }\n        }, {\n          name: \"preventOverflow\",\n          options: {\n            padding: 5\n          }\n        }]\n      });\n    },\n    _rollbackState(post) {\n      const current_user_reaction = post.current_user_reaction;\n      const current_user_used_main_reaction = post.current_user_used_main_reaction;\n      const reactions = Object.assign([], post.reactions);\n      const reaction_users_count = post.reaction_users_count;\n      post.current_user_reaction = current_user_reaction;\n      post.current_user_used_main_reaction = current_user_used_main_reaction;\n      post.reactions = reactions;\n      post.reaction_users_count = reaction_users_count;\n      this.scheduleRerender();\n    },\n    _extractErrors(e) {\n      const xhr = e.xhr || e.jqXHR;\n      if (!xhr || !xhr.status) {\n        return (0, _discourseI18n.i18n)(\"errors.desc.network\");\n      }\n      if (xhr.status === 429 && xhr.responseJSON && xhr.responseJSON.errors && xhr.responseJSON.errors[0]) {\n        return xhr.responseJSON.errors[0];\n      } else if (xhr.status === 403) {\n        return (0, _discourseI18n.i18n)(\"discourse_reactions.reaction.forbidden\");\n      } else {\n        return (0, _discourseI18n.i18n)(\"errors.desc.unknown\");\n      }\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-counter\", [\"exports\", \"virtual-dom\", \"discourse/lib/icon-library\", \"discourse/widgets/widget\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _virtualDom, _iconLibrary, _widget, _discourseReactionsCustomReaction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-counter\", {\n    tagName: \"div\",\n    buildKey: attrs => `discourse-reactions-counter-${attrs.post.id}-${attrs.position || \"right\"}`,\n    buildId: attrs => `discourse-reactions-counter-${attrs.post.id}-${attrs.position || \"right\"}`,\n    reactionsChanged(data) {\n      data.reactions.uniq().forEach(reaction => {\n        this.getUsers(reaction);\n      });\n    },\n    defaultState() {\n      return {\n        reactionsUsers: {},\n        statePanelExpanded: false\n      };\n    },\n    getUsers(reactionValue) {\n      return _discourseReactionsCustomReaction.default.findReactionUsers(this.attrs.post.id, {\n        reactionValue\n      }).then(response => {\n        response.reaction_users.forEach(reactionUser => {\n          this.state.reactionsUsers[reactionUser.id] = reactionUser.users;\n        });\n        this.scheduleRerender();\n        this.callWidgetFunction(\"updatePopperPosition\");\n      });\n    },\n    mouseDown(event) {\n      event.stopImmediatePropagation();\n      return false;\n    },\n    mouseUp(event) {\n      event.stopImmediatePropagation();\n      return false;\n    },\n    click(event) {\n      this.callWidgetFunction(\"cancelCollapse\");\n      if (!this.capabilities.touch || !this.site.mobileView) {\n        event.stopPropagation();\n        event.preventDefault();\n        if (!this.attrs.statePanelExpanded) {\n          this.getUsers();\n        }\n        this.toggleStatePanel(event);\n      }\n    },\n    clickOutside() {\n      if (this.attrs.statePanelExpanded) {\n        this.callWidgetFunction(\"collapseAllPanels\");\n      }\n    },\n    touchStart(event) {\n      this.callWidgetFunction(\"cancelCollapse\");\n      if (event.target.classList.contains(\"show-users\") || event.target.classList.contains(\"avatar\")) {\n        return true;\n      }\n      if (this.attrs.statePanelExpanded) {\n        event.stopPropagation();\n        event.preventDefault();\n        return;\n      }\n      if (this.capabilities.touch) {\n        event.stopPropagation();\n        event.preventDefault();\n        this.getUsers();\n        this.toggleStatePanel(event);\n      }\n    },\n    buildClasses(attrs) {\n      const classes = [];\n      const mainReaction = this.siteSettings.discourse_reactions_reaction_for_like;\n      if (attrs.post.reactions && attrs.post.reactions.length === 1 && attrs.post.reactions[0].id === mainReaction) {\n        classes.push(\"only-like\");\n      }\n      if (attrs.post.reaction_users_count > 0) {\n        classes.push(\"discourse-reactions-counter\");\n      }\n      return classes;\n    },\n    html(attrs) {\n      if (attrs.post.reaction_users_count) {\n        const post = attrs.post;\n        const count = post.reaction_users_count;\n        if (count <= 0) {\n          return;\n        }\n        const mainReaction = this.siteSettings.discourse_reactions_reaction_for_like;\n        const mainReactionIcon = this.siteSettings.discourse_reactions_like_icon;\n        const items = [];\n        items.push(this.attach(\"discourse-reactions-state-panel\", Object.assign({}, attrs, {\n          reactionsUsers: this.state.reactionsUsers\n        })));\n        if (!(post.reactions.length === 1 && post.reactions[0].id === mainReaction)) {\n          items.push(this.attach(\"discourse-reactions-list\", {\n            reactionsUsers: this.state.reactionsUsers,\n            post: attrs.post\n          }));\n        }\n        items.push((0, _virtualDom.h)(\"span.reactions-counter\", count.toString()));\n        if (post.yours && post.reactions && post.reactions.length === 1 && post.reactions[0].id === mainReaction) {\n          items.push((0, _virtualDom.h)(\"div.discourse-reactions-reaction-button.my-likes\", (0, _virtualDom.h)(\"button.btn-toggle-reaction-like.btn-icon.no-text.reaction-button\", [(0, _iconLibrary.iconNode)(`${mainReactionIcon}`)])));\n        }\n        return items;\n      }\n    },\n    toggleStatePanel() {\n      if (!this.attrs.statePanelExpanded) {\n        this.callWidgetFunction(\"expandStatePanel\");\n      } else {\n        this.callWidgetFunction(\"collapseStatePanel\");\n      }\n    },\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.callWidgetFunction(\"cancelCollapse\");\n    },\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      if (!event.relatedTarget?.closest(`#${this.buildId(this.attrs)}`)) {\n        this.callWidgetFunction(\"scheduleCollapse\", \"collapseStatePanel\");\n      }\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-double-button\", [\"exports\", \"discourse/widgets/widget\"], function (_exports, _widget) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-double-button\", {\n    tagName: \"div.discourse-reactions-double-button\",\n    buildKey: attrs => `discourse-reactions-double-button-${attrs.post.id}`,\n    html(attrs) {\n      const items = [];\n      const count = attrs.post.reaction_users_count;\n      if (count > 0) {\n        items.push(this.attach(\"discourse-reactions-counter\", attrs));\n      }\n      if (!attrs.post.yours) {\n        items.push(this.attach(\"discourse-reactions-reaction-button\", attrs));\n      }\n      return items;\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-list-emoji\", [\"exports\", \"@ember/runloop\", \"@popperjs/core\", \"virtual-dom\", \"discourse/lib/text\", \"discourse/widgets/raw-html\", \"discourse/widgets/widget\", \"discourse-i18n\"], function (_exports, _runloop, _core, _virtualDom, _text, _rawHtml, _widget, _discourseI18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DISPLAY_MAX_USERS = 19;\n  let _popperReactionUserPanel;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-list-emoji\", {\n    tagName: \"div.discourse-reactions-list-emoji\",\n    buildId: attrs => `discourse-reactions-list-emoji-${attrs.post.id}-${attrs.reaction.id}`,\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this._setupPopper(\".user-list\");\n      if (!this.attrs.users?.length && !this.loadingReactions) {\n        (0, _runloop.debounce)(this, this._loadReactionUsers, 3000, true);\n      }\n    },\n    html(attrs) {\n      if (attrs.reaction.count <= 0) {\n        return;\n      }\n      const reaction = attrs.reaction;\n      const users = attrs.users || [];\n      const displayUsers = [(0, _virtualDom.h)(\"span.heading\", attrs.reaction.id)];\n      if (!users.length) {\n        displayUsers.push((0, _virtualDom.h)(\"div.center\", (0, _virtualDom.h)(\"div.spinner.small\")));\n      } else {\n        users.slice(0, DISPLAY_MAX_USERS).forEach(user => {\n          let displayName;\n          if (!this.siteSettings.prioritize_username_in_ux && this.siteSettings.prioritize_full_name_in_ux) {\n            displayName = user.name || user.username;\n          } else if (this.siteSettings.prioritize_username_in_ux) {\n            displayName = user.username;\n          } else if (!user.name) {\n            displayName = user.username;\n          } else {\n            displayName = user.name;\n          }\n          displayUsers.push((0, _virtualDom.h)(\"span.username\", displayName));\n        });\n        if (attrs.reaction.count > DISPLAY_MAX_USERS) {\n          displayUsers.push((0, _virtualDom.h)(\"span.other-users\", (0, _discourseI18n.i18n)(\"discourse_reactions.state_panel.more_users\", {\n            count: attrs.reaction.count - DISPLAY_MAX_USERS\n          })));\n        }\n      }\n      const elements = [new _rawHtml.default({\n        html: (0, _text.emojiUnescape)(`:${reaction.id}:`, {\n          skipTitle: true,\n          class: this.siteSettings.discourse_reactions_desaturated_reaction_panel ? \"desaturated\" : \"\"\n        })\n      })];\n      elements.push((0, _virtualDom.h)(\"div.user-list\", (0, _virtualDom.h)(\"div.container\", displayUsers)));\n      return elements;\n    },\n    _setupPopper(selector) {\n      (0, _runloop.schedule)(\"afterRender\", () => {\n        const elementId = CSS.escape(this.buildId(this.attrs));\n        const trigger = document.querySelector(`#${elementId}`);\n        const popperElement = document.querySelector(`#${elementId} ${selector}`);\n        if (popperElement) {\n          _popperReactionUserPanel && _popperReactionUserPanel.destroy();\n          _popperReactionUserPanel = (0, _core.createPopper)(trigger, popperElement, {\n            placement: \"bottom\",\n            modifiers: [{\n              name: \"offset\",\n              options: {\n                offset: [0, -5]\n              }\n            }, {\n              name: \"preventOverflow\",\n              options: {\n                padding: 5\n              }\n            }]\n          });\n        }\n      });\n    },\n    _loadReactionUsers() {\n      this.loadingReactions = true;\n      this.callWidgetFunction(\"getUsers\", this.attrs.reaction.id).finally(() => {\n        this.loadingReactions = false;\n      });\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-list\", [\"exports\", \"virtual-dom\", \"discourse/widgets/widget\"], function (_exports, _virtualDom, _widget) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-list\", {\n    tagName: \"div.discourse-reactions-list\",\n    html(attrs) {\n      if (attrs.post.reaction_users_count <= 0) {\n        return;\n      }\n      return [(0, _virtualDom.h)(\"div.reactions\", attrs.post.reactions.map(reaction => this.attach(\"discourse-reactions-list-emoji\", {\n        reaction,\n        users: attrs.reactionsUsers[reaction.id],\n        post: attrs.post\n      })))];\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-picker\", [\"exports\", \"virtual-dom\", \"discourse/lib/text\", \"discourse/widgets/raw-html\", \"discourse/widgets/widget\"], function (_exports, _virtualDom, _text, _rawHtml, _widget) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-picker\", {\n    tagName: \"div.discourse-reactions-picker\",\n    buildKey: attrs => `discourse-reactions-picker-${attrs.post.id}`,\n    buildClasses(attrs) {\n      const classes = [];\n      if (attrs.reactionsPickerExpanded) {\n        classes.push(\"is-expanded\");\n      }\n      return classes;\n    },\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.callWidgetFunction(\"scheduleCollapse\", \"collapseReactionsPicker\");\n    },\n    pointerOver() {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.callWidgetFunction(\"cancelCollapse\");\n    },\n    html(attrs) {\n      if (attrs.reactionsPickerExpanded) {\n        const reactions = this.siteSettings.discourse_reactions_enabled_reactions.split(\"|\").filter(Boolean);\n        if (!reactions.includes(this.siteSettings.discourse_reactions_reaction_for_like)) {\n          reactions.unshift(this.siteSettings.discourse_reactions_reaction_for_like);\n        }\n        const currentUserReaction = attrs.post.current_user_reaction;\n        return [(0, _virtualDom.h)(`div.discourse-reactions-picker-container.col-${this._getOptimalColsCount(reactions.length)}`, reactions.map(reaction => {\n          let isUsed;\n          let canUndo;\n          if (reaction === this.siteSettings.discourse_reactions_reaction_for_like) {\n            isUsed = attrs.post.current_user_used_main_reaction;\n          } else {\n            isUsed = currentUserReaction && currentUserReaction.id === reaction;\n          }\n          if (currentUserReaction) {\n            canUndo = currentUserReaction.can_undo && attrs.post.likeAction.canToggle;\n          } else {\n            canUndo = attrs.post.likeAction.canToggle;\n          }\n          let title;\n          let titleOptions;\n          if (canUndo) {\n            title = \"discourse_reactions.picker.react_with\";\n            titleOptions = {\n              reaction\n            };\n          } else {\n            title = \"discourse_reactions.picker.cant_remove_reaction\";\n          }\n          return this.attach(\"button\", {\n            action: \"toggle\",\n            data: {\n              reaction\n            },\n            actionParam: {\n              reaction,\n              postId: attrs.post.id,\n              canUndo\n            },\n            className: `pickable-reaction ${reaction} ${canUndo ? \"can-undo\" : \"\"} ${isUsed ? \"is-used\" : \"\"}`,\n            title,\n            titleOptions,\n            contents: [new _rawHtml.default({\n              html: (0, _text.emojiUnescape)(`:${reaction}:`)\n            })]\n          });\n        }))];\n      }\n    },\n    _getOptimalColsCount(count) {\n      let x;\n      const colsByRow = [5, 6, 7, 8];\n\n      // if small count, just use it\n      if (count < colsByRow[0]) {\n        return count;\n      }\n      for (let index = 0; index < colsByRow.length; ++index) {\n        const i = colsByRow[index];\n\n        // if same as one of the max cols number, just use it\n        let rest = count % i;\n        if (rest === 0) {\n          x = i;\n          break;\n        }\n\n        // loop until we find a number limiting to the minimum the number\n        // of empty cells\n        if (index === 0) {\n          x = i;\n        } else {\n          if (rest > count % (i - 1)) {\n            x = i;\n          }\n        }\n      }\n      return x;\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-reaction-button\", [\"exports\", \"@ember/utils\", \"virtual-dom\", \"discourse/lib/icon-library\", \"discourse/lib/text\", \"discourse/widgets/widget\", \"discourse-i18n\"], function (_exports, _utils, _virtualDom, _iconLibrary, _text, _widget, _discourseI18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-reaction-button\", {\n    tagName: \"div.discourse-reactions-reaction-button\",\n    buildKey: attrs => `discourse-reactions-reaction-button-${attrs.post.id}`,\n    click() {\n      this.callWidgetFunction(\"cancelCollapse\");\n      const currentUserReaction = this.attrs.post.current_user_reaction;\n      if (!this.capabilities.touch || !this.site.mobileView) {\n        this.callWidgetFunction(\"toggleFromButton\", {\n          reaction: currentUserReaction ? currentUserReaction.id : this.siteSettings.discourse_reactions_reaction_for_like\n        });\n      }\n    },\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.callWidgetFunction(\"cancelCollapse\");\n      const likeAction = this.attrs.post.likeAction;\n      const currentUserReaction = this.attrs.post.current_user_reaction;\n      if (currentUserReaction && !currentUserReaction.can_undo && (!likeAction || (0, _utils.isBlank)(likeAction.can_undo))) {\n        return;\n      }\n      this.callWidgetFunction(\"toggleReactions\", event);\n    },\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.callWidgetFunction(\"cancelExpand\");\n      this.callWidgetFunction(\"scheduleCollapse\", \"collapseReactionsPicker\");\n    },\n    buildAttributes(attrs) {\n      if (!this.currentUser) {\n        return {\n          title: (0, _discourseI18n.i18n)(\"discourse_reactions.main_reaction.unauthenticated\")\n        };\n      }\n      const likeAction = attrs.post.likeAction;\n      if (!likeAction) {\n        return {};\n      }\n      let title;\n      let options;\n      const currentUserReaction = this.attrs.post.current_user_reaction;\n      if (likeAction.canToggle && (0, _utils.isBlank)(likeAction.can_undo)) {\n        title = \"discourse_reactions.main_reaction.add\";\n      }\n      if (likeAction.canToggle && likeAction.can_undo) {\n        title = \"discourse_reactions.main_reaction.remove\";\n      }\n      if (!likeAction.canToggle) {\n        title = \"discourse_reactions.main_reaction.cant_remove\";\n      }\n      if (currentUserReaction && currentUserReaction.can_undo && (0, _utils.isBlank)(likeAction.can_undo)) {\n        title = \"discourse_reactions.picker.remove_reaction\";\n        options = {\n          reaction: currentUserReaction.id\n        };\n      }\n      if (currentUserReaction && !currentUserReaction.can_undo && (0, _utils.isBlank)(likeAction.can_undo)) {\n        title = \"discourse_reactions.picker.cant_remove_reaction\";\n      }\n      return options ? {\n        title: (0, _discourseI18n.i18n)(title, options)\n      } : {\n        title: (0, _discourseI18n.i18n)(title)\n      };\n    },\n    html(attrs) {\n      const mainReactionIcon = this.siteSettings.discourse_reactions_like_icon;\n      const hasUsedMainReaction = attrs.post.current_user_used_main_reaction;\n      const currentUserReaction = attrs.post.current_user_reaction;\n      if (hasUsedMainReaction) {\n        return (0, _virtualDom.h)(\"button.btn-toggle-reaction-like.btn-icon.no-text.reaction-button\", {\n          title: this.buildAttributes(attrs).title\n        }, [(0, _iconLibrary.iconNode)(mainReactionIcon)]);\n      }\n      if (currentUserReaction) {\n        return (0, _virtualDom.h)(\"button.btn-icon.no-text.reaction-button\", {\n          title: this.buildAttributes(attrs).title\n        }, (0, _virtualDom.h)(\"img.btn-toggle-reaction-emoji.reaction-button\", {\n          src: (0, _text.emojiUrlFor)(currentUserReaction.id),\n          alt: `:${currentUserReaction.id}:`\n        }));\n      }\n      return (0, _virtualDom.h)(\"button.btn-toggle-reaction-like.btn-icon.no-text.reaction-button\", {\n        title: this.buildAttributes(attrs).title\n      }, [(0, _iconLibrary.iconNode)(`far-${mainReactionIcon}`)]);\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-state-panel-reaction\", [\"exports\", \"virtual-dom\", \"discourse/lib/icon-library\", \"discourse/lib/text\", \"discourse/widgets/post\", \"discourse/widgets/raw-html\", \"discourse/widgets/widget\", \"discourse-i18n\"], function (_exports, _virtualDom, _iconLibrary, _text, _post, _rawHtml, _widget, _discourseI18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const MAX_USERS_COUNT = 26;\n  const MIN_USERS_COUNT = 8;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-state-panel-reaction\", {\n    tagName: \"div.discourse-reactions-state-panel-reaction\",\n    buildClasses(attrs) {\n      if (attrs.isDisplayed) {\n        return \"is-displayed\";\n      }\n    },\n    click(event) {\n      if (event?.target?.classList?.contains(\"show-users\")) {\n        event.preventDefault();\n        event.stopPropagation();\n        this.sendWidgetAction(\"showUsers\", this.attrs?.reaction?.id);\n      }\n    },\n    html(attrs) {\n      const elements = [];\n      if (!attrs.users) {\n        return;\n      }\n      elements.push((0, _virtualDom.h)(\"div.reaction-wrapper\", [(0, _virtualDom.h)(\"div.emoji-wrapper\", [new _rawHtml.default({\n        html: (0, _text.emojiUnescape)(`:${attrs.reaction.id}:`)\n      })]), (0, _virtualDom.h)(\"div.count\", attrs.reaction.count.toString())]));\n      const firsLineUsers = attrs.users.slice(0, MIN_USERS_COUNT);\n      const list = firsLineUsers.map(user => (0, _post.avatarFor)(\"tiny\", {\n        username: user.username,\n        template: user.avatar_template\n      }));\n      if (attrs.users.length > MIN_USERS_COUNT) {\n        list.push((0, _virtualDom.h)(\"button.show-users\", (0, _iconLibrary.iconNode)(attrs.isDisplayed ? \"chevron-up\" : \"chevron-down\")));\n      }\n      if (attrs.isDisplayed) {\n        list.push(attrs.users.slice(MIN_USERS_COUNT, MAX_USERS_COUNT).map(user => (0, _post.avatarFor)(\"tiny\", {\n          username: user.username,\n          template: user.avatar_template\n        })));\n      }\n      let more;\n      if (attrs.isDisplayed && attrs.reaction.count > MAX_USERS_COUNT) {\n        more = (0, _discourseI18n.i18n)(\"discourse_reactions.state_panel.more_users\", {\n          count: attrs.reaction.count - MAX_USERS_COUNT\n        });\n      }\n      const columnsCount = attrs.users.length > MIN_USERS_COUNT ? firsLineUsers.length + 1 : firsLineUsers.length;\n      elements.push((0, _virtualDom.h)(\"div.users\", [(0, _virtualDom.h)(`div.list.list-columns-${columnsCount}`, list), (0, _virtualDom.h)(\"span.more\", more)]));\n      return elements;\n    }\n  });\n});","define(\"discourse/plugins/discourse-reactions/discourse/widgets/discourse-reactions-state-panel\", [\"exports\", \"virtual-dom\", \"discourse/widgets/widget\"], function (_exports, _virtualDom, _widget) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _widget.createWidget)(\"discourse-reactions-state-panel\", {\n    tagName: \"div.discourse-reactions-state-panel\",\n    buildKey: attrs => `discourse-reactions-state-panel-${attrs.post.id}`,\n    buildClasses(attrs) {\n      const classes = [];\n      if (attrs.post && attrs.post.reactions) {\n        const maxCount = Math.max(...attrs.post.reactions.mapBy(\"count\"));\n        const charsCount = maxCount.toString().length;\n        classes.push(`max-length-${charsCount}`);\n      }\n      if (attrs.statePanelExpanded) {\n        classes.push(\"is-expanded\");\n      }\n      return classes;\n    },\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.callWidgetFunction(\"scheduleCollapse\", \"collapseStatePanel\");\n    },\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.callWidgetFunction(\"cancelCollapse\");\n    },\n    showUsers(reactionId) {\n      if (!this.state.displayedReactionId) {\n        this.state.displayedReactionId = reactionId;\n      } else if (this.state.displayedReactionId === reactionId) {\n        this.hideUsers();\n      } else if (this.state.displayedReactionId !== reactionId) {\n        this.state.displayedReactionId = reactionId;\n      }\n    },\n    hideUsers() {\n      this.state.displayedReactionId = null;\n    },\n    defaultState() {\n      return {\n        displayedReactionId: null\n      };\n    },\n    html(attrs) {\n      if (!attrs.statePanelExpanded || !attrs.post.reactions.length) {\n        return;\n      }\n      const reactions = Object.keys(attrs.reactionsUsers).length ? (0, _virtualDom.h)(\"div.counters\", attrs.post.reactions.map(reaction => this.attach(\"discourse-reactions-state-panel-reaction\", {\n        reaction,\n        users: attrs.reactionsUsers[reaction.id],\n        post: attrs.post,\n        isDisplayed: reaction.id === this.state.displayedReactionId\n      }))) : (0, _virtualDom.h)(\"div.spinner-container\", (0, _virtualDom.h)(\"div.spinner.small\"));\n      return (0, _virtualDom.h)(\"div.container\", reactions);\n    }\n  });\n});"],"mappings":"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","ignoreList":[]}