{"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","_discourseReactionsActions","_component","_templateFactory","_templateOnly","ReactionsActionButton","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","isStrictMode","undefined","_component2","ReactionsActionSummary","static","shouldRender","args","context","owner","lookup","mobileView","post","deleted","mainReaction","discourse_reactions_reaction_for_like","reactions","length","_tracking","_helper","_modifier","_object","_didInsert","_runloop","_service","_dom","_emberCurryComponent","_jquery","_rsvp","_lazyHash","_environment","_text","_closeOnClickOutside","_truthHelpers","_discourseI18n","_discourseReactionsCustomReaction","_discourseReactionsCounter","_discourseReactionsDoubleButton","_discourseReactionsPicker","_discourseReactionsReactionButton","resetCurrentReaction","activeReactionsComponent","moveReactionAnimation","postContainer","reactionId","startPosition","endPosition","complete","isTesting","fakeReaction","img","document","createElement","src","emojiUrlFor","classList","add","buildFakeReaction","querySelector","appendChild","style","top","opacity","animate","duration","remove","scaleReactionAnimation","start","end","run","stop","css","textIndent","step","now","addClass","removeClass","DiscourseReactionsActions","dt7948","g","prototype","service","dialog","i","capabilities","siteSettings","site","currentUser","appEvents","tracked","reactionsPickerExpanded","statePanelExpanded","clickOutsideDisabled","containerElement","data","classes","hasReactions","hasReacted","current_user_reaction","filter","reaction","push","yours","current_user_used_main_reaction","can_undo","likeAction","canToggle","join","toggleReactions","event","scheduleExpand","expandReactionsPicker","n","action","touchStart","_validTouch","cancel","_touchTimeout","touch","documentElement","toggle","_touchStartAt","Date","later","touchMove","touchEnd","changedTouches","endTarget","elementFromPoint","clientX","clientY","parentNode","contains","click","target","toggleFromButton","params","showLogin","userHasBeenActive","canVibrate","navigator","vibrate","pickedReaction","CSS","escape","scales","Promise","resolve","savedState","_captureState","toggleReaction","list","then","catch","err","alert","_extractErrors","_rollbackState","finally","collapseAllPanels","attrs","every","index","count","splice","reaction_users_count","isAvailable","newReaction","tempReactions","assign","newReactionIndex","sort","reaction1","reaction2","indexOf","mainReactionName","user_id","e","selector","cancelCollapse","_collapseHandler","disableClickOutside","enableClickOutside","cancelExpand","_expandHandler","handler","scheduleCollapse","elementId","position","clickOutside","updateReactionsPickerPopover","expandStatePanel","updateReactionsStatePanel","collapseStatePanel","collapseReactionsPicker","showPopover","referenceSelector","floatingSelector","schedule","referenceElement","floatingElement","computePosition","placement","middleware","offset","shift","limiter","limitShift","flip","padding","x","y","left","map","r","xhr","jqXHR","status","responseJSON","errors","i18n","onlyOneMainReaction","showReactionsPicker","registerContainerElement","element","on","hash","eq","not","and","_trackedBuiltIns","_dButton","_arrayTools","_decorators","_discourseReactionsList","_discourseReactionsStatePanel","DiscourseReactionsCounter","reactionsUsers","TrackedObject","reactionsChanged","uniqueItemsFromArray","forEach","getUsers","reactionValue","findReactionUsers","reaction_users","reactionUser","users","updatePopover","bind","mouseDown","stopImmediatePropagation","mouseUp","closest","desktopView","stopPropagation","preventDefault","toggleStatePanel","pointerOver","pointerType","pointerOut","relatedTarget","DiscourseReactionsDoubleButton","_emoji","DiscourseReactionsListEmoji","loadingReactions","showTooltip","debounce","_loadReactionUsers","getElementById","truncatedUsers","slice","displayNameForUser","user","prioritize_username_in_ux","prioritize_full_name_in_ux","name","username","hiddenUserCount","_discourseReactionsListEmoji","DiscourseReactionsList","get","_emojiPicker","_concatClass","DiscourseReactionsPicker","emojiPickerIsOpen","reactionInfo","discourse_reactions_enabled_reactions","split","Boolean","includes","unshift","currentUserReaction","isUsed","canUndo","title","titleOptions","optimalColsCount","discourse_reactions_allow_any_emoji","colsByRow","rest","onSelectEmoji","selected_emoji","postId","preventCollapse","reenableCollapse","fn","_utils","ReactionsReactionButton","isBlank","likedIcon","icon","discourse_reactions_like_icon","unlikedIcon","options","concat","_avatar","DiscourseReactionsReactionEmoji","emojiUrl","reaction_value","_userAvatar","_dIcon","DiscourseReactionsStatePanelReaction","showUsers","firstLineUsers","otherUsers","columnsCount","moreLabel","isDisplayed","gt","_discourseReactionsStatePanelReaction","DiscourseReactionsStatePanel","displayedReactionId","charsCount","Math","max","toString","hideUsers","hasReactionData","keys","_routing","DiscourseReactionsUserActivityReactions","c","LinkTo","classNames","tagName","DiscourseReactionsUserNotificationReactions","_controller","UserActivityReactions","canLoadMore","loading","beforeLikeId","beforeReactionUserId","getLastIdFrom","array","reaction_user_id","updateBeforeIds","reactionUsers","includeLikes","likes","reduce","memo","elem","loadMore","model","opts","actingUsername","flattened","findReactions","reactionsUrl","flattenForPostList","addUniqueValuesToArray","resource","route","_iconLibrary","_pluginApi","_url","_utilities","_discourseReactionsActionsButton","_discourseReactionsActionsSummary","initializeDiscourseReactions","api","registerValueTransformer","dag","buttonKeys","replace","LIKE","after","REPLIES","customizePostMenu","addKeyboardShortcut","addTrackedPostProperties","modifyClass","SuperClass","collection","result","super","setting","values","mainEmoji","find","item","isEditable","isEditing","cached","ignoreMissing","replaceIcon","registerNotificationTypeRenderer","NotificationTypeBase","linkTitle","linkHref","superHref","activityName","notification","reaction_icon","userPath","display_username","notificationName","label","nameOrUsername","display_name","username2","nameOrUsername2","name2","formatUsername","labelClasses","description","initialize","container","discourse_reactions_enabled","withPluginApi","teardown","admin","setAdminPluginIcon","_ajax","_category","_post","_topic","_user","PAGE_SIZE","CustomReaction","ajax","trigger","topic","avatar_template","user_title","primary_group_name","excerpt","expandedExcerpt","topic_id","post_type","url","titleHtml","emojiUnescape","escapeExpression","category","created_at","before_reaction_user_id","before_like_id","include_likes","acting_username","create","findById","category_id","postAttrs","post_user","init","arguments","__type","_discourse","modelFor","TrackedArray","setupController","controller","loadedAll","controllerFor","setProperties","UserNotificationsReactionsReceived","templateName","controllerName","queryParams","refreshModel","_postList","_hideApplicationFooter","_discourseReactionsReactionEmoji"],"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-actions.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-counter.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-double-button.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list-emoji.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-picker.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-button.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-emoji.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel-reaction.js","discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel.js","discourse/plugins/discourse-reactions/discourse/connectors/user-activity-bottom/discourse-reactions-user-activity-reactions.js","discourse/plugins/discourse-reactions/discourse/connectors/user-notifications-bottom/discourse-reactions-user-notification-reactions.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/initializers/reactions-admin-plugin-configuration-nav.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/user-activity/reactions.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\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _discourseReactionsActions, _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    <div class=\"discourse-reactions-actions-button-shim\">\n    <DiscourseReactionsActions\n      @post={{@post}}\n      @showLogin={{@buttonActions.showLogin}}\n    />\n  </div>\n  */\n  {\n    \"id\": \"75frDFqv\",\n    \"block\": \"[[[10,0],[14,0,\\\"discourse-reactions-actions-button-shim\\\"],[12],[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@post\\\",\\\"@showLogin\\\"],[[30,1],[30,2,[\\\"showLogin\\\"]]]],null],[1,\\\"\\\\n\\\"],[13]],[\\\"@post\\\",\\\"@buttonActions\\\"],[]]\",\n    \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-button.js\",\n    \"scope\": () => [_discourseReactionsActions.default],\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\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _discourseReactionsActions, _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 {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{#if @shouldRender}}\n        <div>\n          <DiscourseReactionsActions @post={{@post}} @position=\"left\" />\n        </div>\n      {{/if}}\n      */\n      {\n        \"id\": \"zznFi7fm\",\n        \"block\": \"[[[41,[30,1],[[[1,\\\"  \\\"],[10,0],[12],[1,\\\"\\\\n    \\\"],[8,[32,0],null,[[\\\"@post\\\",\\\"@position\\\"],[[30,2],\\\"left\\\"]],null],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[\\\"@shouldRender\\\",\\\"@post\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions-summary.js\",\n        \"scope\": () => [_discourseReactionsActions.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = ReactionsActionSummary;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/runloop\", \"@ember/service\", \"@floating-ui/dom\", \"ember-curry-component\", \"jquery\", \"rsvp\", \"discourse/helpers/lazy-hash\", \"discourse/lib/environment\", \"discourse/lib/text\", \"discourse/modifiers/close-on-click-outside\", \"discourse/truth-helpers\", \"discourse-i18n\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-counter\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-double-button\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-picker\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-button\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _helper, _modifier, _object, _didInsert, _runloop, _service, _dom, _emberCurryComponent, _jquery, _rsvp, _lazyHash, _environment, _text, _closeOnClickOutside, _truthHelpers, _discourseI18n, _discourseReactionsCustomReaction, _discourseReactionsCounter, _discourseReactionsDoubleButton, _discourseReactionsPicker, _discourseReactionsReactionButton, _component2, _templateFactory) {\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 activeReactionsComponent;\n  function resetCurrentReaction() {\n    activeReactionsComponent = 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(\"d-icon-d-unliked\").removeClass(\"d-icon-d-liked\");\n      },\n      duration: 150\n    }, \"linear\");\n  }\n  class DiscourseReactionsActions extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"dialog\", [_service.service]);\n    }\n    #dialog = (dt7948.i(this, \"dialog\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"capabilities\", [_service.service]);\n    }\n    #capabilities = (dt7948.i(this, \"capabilities\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"site\", [_service.service]);\n    }\n    #site = (dt7948.i(this, \"site\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"appEvents\", [_service.service]);\n    }\n    #appEvents = (dt7948.i(this, \"appEvents\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"reactionsPickerExpanded\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #reactionsPickerExpanded = (dt7948.i(this, \"reactionsPickerExpanded\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"statePanelExpanded\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #statePanelExpanded = (dt7948.i(this, \"statePanelExpanded\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"clickOutsideDisabled\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #clickOutsideDisabled = (dt7948.i(this, \"clickOutsideDisabled\"), void 0);\n    containerElement = null;\n    get data() {\n      return this.args.post;\n    }\n    get classes() {\n      if (!this.data?.reactions) {\n        return;\n      }\n      const hasReactions = this.data.reactions.length;\n      const hasReacted = this.data.current_user_reaction;\n      const customReactionUsed = this.data.reactions.length && this.data.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 (this.data.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 (this.data.current_user_used_main_reaction) {\n        classes.push(\"has-used-main-reaction\");\n      }\n      if ((!this.data.current_user_reaction || this.data.current_user_reaction.can_undo) && this.data.likeAction?.canToggle) {\n        classes.push(\"can-toggle-reaction\");\n      }\n      return classes.join(\" \");\n    }\n    toggleReactions(event) {\n      if (!this.reactionsPickerExpanded) {\n        if (this.statePanelExpanded) {\n          this.scheduleExpand(\"expandReactionsPicker\");\n        } else {\n          this.expandReactionsPicker(event);\n        }\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleReactions\", [_object.action]);\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    static {\n      dt7948.n(this.prototype, \"touchStart\", [_object.action]);\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    static {\n      dt7948.n(this.prototype, \"touchMove\", [_object.action]);\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.changedTouches.length) {\n          const endTarget = document.elementFromPoint(event.changedTouches[0].clientX, event.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 && event.target && event.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            const data = this.data;\n            this.toggleFromButton({\n              reaction: data.current_user_reaction ? data.current_user_reaction.id : this.siteSettings.discourse_reactions_reaction_for_like\n            });\n          }\n        }\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"touchEnd\", [_object.action]);\n    }\n    toggle(params) {\n      if (!this.currentUser) {\n        if (this.args.showLogin) {\n          return this.args.showLogin();\n        }\n      }\n      if (!this.data.current_user_reaction || this.data.current_user_reaction.can_undo && this.data.likeAction?.canToggle) {\n        if (this.capabilities.userHasBeenActive && this.capabilities.canVibrate) {\n          navigator.vibrate(VIBRATE_DURATION);\n        }\n        const pickedReaction = this.containerElement?.querySelector(`.discourse-reactions-picker .pickable-reaction.${CSS.escape(params.reaction)} .emoji`);\n        const scales = [1.0, 1.75];\n        return new _rsvp.Promise(resolve => {\n          if (!pickedReaction) {\n            const savedState = this._captureState(this.data);\n            this.toggleReaction(params);\n            _discourseReactionsCustomReaction.default.toggle(this.data, params.reaction, this.appEvents).then(resolve).catch(err => {\n              this.dialog.alert(this._extractErrors(err));\n              this._rollbackState(this.data, savedState);\n            });\n          } else {\n            scaleReactionAnimation(pickedReaction, scales[0], scales[1], () => {\n              scaleReactionAnimation(pickedReaction, scales[1], scales[0], () => {\n                const postContainer = this.containerElement;\n                if (this.data.current_user_reaction && this.data.current_user_reaction.id === params.reaction) {\n                  const savedState = this._captureState(this.data);\n                  this.toggleReaction(params);\n                  (0, _runloop.later)(() => {\n                    dropReaction(postContainer, params.reaction, () => {\n                      return _discourseReactionsCustomReaction.default.toggle(this.data, params.reaction, this.appEvents).then(resolve).catch(err => {\n                        this.dialog.alert(this._extractErrors(err));\n                        this._rollbackState(this.data, savedState);\n                      });\n                    });\n                  }, 100);\n                } else {\n                  const savedState = this._captureState(this.data);\n                  addReaction(postContainer, params.reaction, () => {\n                    this.toggleReaction(params);\n                    _discourseReactionsCustomReaction.default.toggle(this.data, params.reaction, this.appEvents).then(resolve).catch(err => {\n                      this.dialog.alert(this._extractErrors(err));\n                      this._rollbackState(this.data, savedState);\n                    });\n                  });\n                }\n              });\n            });\n          }\n        }).finally(() => {\n          this.collapseAllPanels();\n        });\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"toggle\", [_object.action]);\n    }\n    toggleReaction(attrs) {\n      this.collapseAllPanels();\n      if (this.data.current_user_reaction && !this.data.current_user_reaction.can_undo && !this.data.likeAction?.canToggle) {\n        return;\n      }\n      if (this.data.current_user_reaction) {\n        this.data.reactions.every((reaction, index) => {\n          if (reaction.count <= 1 && reaction.id === this.data.current_user_reaction.id) {\n            this.data.reactions.splice(index, 1);\n            return false;\n          } else if (reaction.id === this.data.current_user_reaction.id) {\n            this.data.reactions[index].count -= 1;\n            return false;\n          }\n          return true;\n        });\n      }\n      if (attrs.reaction && (!this.data.current_user_reaction || attrs.reaction !== this.data.current_user_reaction.id)) {\n        let isAvailable = false;\n        this.data.reactions.every((reaction, index) => {\n          if (reaction.id === attrs.reaction) {\n            this.data.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([], this.data.reactions);\n          tempReactions.push(newReaction);\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            //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          this.data.reactions.splice(newReactionIndex, 0, newReaction);\n        }\n        if (!this.data.current_user_reaction) {\n          this.data.reaction_users_count += 1;\n        }\n        this.data.current_user_reaction = {\n          id: attrs.reaction,\n          type: \"emoji\",\n          can_undo: true\n        };\n      } else {\n        this.data.reaction_users_count -= 1;\n        this.data.current_user_reaction = null;\n      }\n      if (this.data.current_user_reaction && this.data.current_user_reaction.id === this.siteSettings.discourse_reactions_reaction_for_like) {\n        this.data.current_user_used_main_reaction = true;\n      } else {\n        this.data.current_user_used_main_reaction = false;\n      }\n      // Trigger re-render for anything autotracking reactions.\n      // In future, we should make reactions a deeply-trackable structure.\n      // eslint-disable-next-line no-self-assign\n      this.data.reactions = this.data.reactions;\n    }\n    toggleFromButton(attrs) {\n      if (!this.currentUser) {\n        if (this.args.showLogin) {\n          return this.args.showLogin();\n        }\n      }\n      this.collapseAllPanels();\n      const mainReactionName = this.siteSettings.discourse_reactions_reaction_for_like;\n      const current_user_reaction = this.data.current_user_reaction;\n      if (this.data.likeAction && !(this.data.likeAction.canToggle || this.data.likeAction.can_undo)) {\n        return;\n      }\n      if (this.data.current_user_reaction && !this.data.current_user_reaction.can_undo) {\n        return;\n      }\n      if (!this.currentUser || this.data.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        const savedState = this._captureState(this.data);\n        this.toggleReaction(attrs);\n        return _discourseReactionsCustomReaction.default.toggle(this.data, attrs.reaction, this.appEvents).catch(e => {\n          this.dialog.alert(this._extractErrors(e));\n          this._rollbackState(this.data, savedState);\n        });\n      }\n      let selector;\n      if (this.data.reactions && this.data.reactions.length === 1 && this.data.reactions[0].id === mainReactionName) {\n        selector = `.discourse-reactions-double-button .discourse-reactions-reaction-button .d-icon`;\n      } else {\n        if (!attrs.reaction || attrs.reaction === mainReactionName) {\n          selector = `.discourse-reactions-reaction-button .d-icon`;\n        } else {\n          selector = `.discourse-reactions-reaction-button .reaction-button .btn-toggle-reaction-emoji`;\n        }\n      }\n      const mainReaction = this.containerElement?.querySelector(selector);\n      const scales = [1.0, 1.5];\n      const savedState = this._captureState(this.data);\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.data, toggleReaction, this.appEvents).then(resolve).catch(err => {\n              this.dialog.alert(this._extractErrors(err));\n              this._rollbackState(this.data, savedState);\n            });\n          });\n        });\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleFromButton\", [_object.action]);\n    }\n    cancelCollapse() {\n      (0, _runloop.cancel)(this._collapseHandler);\n    }\n    static {\n      dt7948.n(this.prototype, \"cancelCollapse\", [_object.action]);\n    }\n    disableClickOutside() {\n      this.clickOutsideDisabled = true;\n    }\n    static {\n      dt7948.n(this.prototype, \"disableClickOutside\", [_object.action]);\n    }\n    enableClickOutside() {\n      this.clickOutsideDisabled = false;\n    }\n    static {\n      dt7948.n(this.prototype, \"enableClickOutside\", [_object.action]);\n    }\n    cancelExpand() {\n      (0, _runloop.cancel)(this._expandHandler);\n    }\n    static {\n      dt7948.n(this.prototype, \"cancelExpand\", [_object.action]);\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    static {\n      dt7948.n(this.prototype, \"scheduleCollapse\", [_object.action]);\n    }\n    get elementId() {\n      if (!this.data?.id) {\n        return null;\n      }\n      return `discourse-reactions-actions-${this.data.id}-${this.args.position || \"right\"}`;\n    }\n    clickOutside() {\n      if (this.clickOutsideDisabled) {\n        return;\n      }\n      if (this.reactionsPickerExpanded || this.statePanelExpanded) {\n        this.collapseAllPanels();\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"clickOutside\", [_object.action]);\n    }\n    expandReactionsPicker() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      activeReactionsComponent?.collapseAllPanels();\n      this.statePanelExpanded = false;\n      this.reactionsPickerExpanded = true;\n      this.updateReactionsPickerPopover();\n    }\n    expandStatePanel() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      activeReactionsComponent?.collapseAllPanels();\n      this.statePanelExpanded = true;\n      this.reactionsPickerExpanded = false;\n      this.updateReactionsStatePanel();\n    }\n    static {\n      dt7948.n(this.prototype, \"expandStatePanel\", [_object.action]);\n    }\n    collapseStatePanel() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      this._collapseHandler = null;\n      this.statePanelExpanded = false;\n    }\n    static {\n      dt7948.n(this.prototype, \"collapseStatePanel\", [_object.action]);\n    }\n    collapseReactionsPicker() {\n      (0, _runloop.cancel)(this._collapseHandler);\n      this._collapseHandler = null;\n      this.reactionsPickerExpanded = false;\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.statePanelExpanded = false;\n      this.reactionsPickerExpanded = false;\n    }\n    static {\n      dt7948.n(this.prototype, \"collapseAllPanels\", [_object.action]);\n    }\n    updateReactionsPickerPopover() {\n      this.showPopover(\".discourse-reactions-reaction-button\", \".discourse-reactions-picker\");\n    }\n    static {\n      dt7948.n(this.prototype, \"updateReactionsPickerPopover\", [_object.action]);\n    }\n    updateReactionsStatePanel() {\n      this.showPopover(\".discourse-reactions-counter\", \".discourse-reactions-state-panel\");\n    }\n    static {\n      dt7948.n(this.prototype, \"updateReactionsStatePanel\", [_object.action]);\n    }\n    showPopover(referenceSelector, floatingSelector) {\n      (0, _runloop.schedule)(\"afterRender\", () => {\n        const referenceElement = this.containerElement?.querySelector(referenceSelector);\n        const floatingElement = this.containerElement?.querySelector(floatingSelector);\n        if (!floatingElement) {\n          return;\n        }\n        (0, _dom.computePosition)(referenceElement, floatingElement, {\n          placement: \"top\",\n          middleware: [(0, _dom.offset)(-5), (0, _dom.shift)({\n            limiter: (0, _dom.limitShift)()\n          }), (0, _dom.flip)({\n            padding: 5\n          })]\n        }).then(({\n          x,\n          y\n        }) => {\n          Object.assign(floatingElement.style, {\n            left: `${x}px`,\n            top: `${y}px`\n          });\n        });\n        activeReactionsComponent = this;\n      });\n    }\n    _captureState(post) {\n      return {\n        current_user_reaction: post.current_user_reaction ? {\n          ...post.current_user_reaction\n        } : null,\n        current_user_used_main_reaction: post.current_user_used_main_reaction,\n        reactions: post.reactions.map(r => ({\n          ...r\n        })),\n        reaction_users_count: post.reaction_users_count\n      };\n    }\n    _rollbackState(post, savedState) {\n      post.current_user_reaction = savedState.current_user_reaction;\n      post.current_user_used_main_reaction = savedState.current_user_used_main_reaction;\n      post.reactions = savedState.reactions;\n      post.reaction_users_count = savedState.reaction_users_count;\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    get onlyOneMainReaction() {\n      return this.data.reactions?.length === 1 && this.data.reactions[0].id === this.siteSettings.discourse_reactions_reaction_for_like;\n    }\n    get showReactionsPicker() {\n      return this.currentUser && this.data.user_id !== this.currentUser.id && this.reactionsPickerExpanded;\n    }\n    registerContainerElement(element) {\n      this.containerElement = element;\n    }\n    static {\n      dt7948.n(this.prototype, \"registerContainerElement\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div\n        id={{this.elementId}}\n        class=\"discourse-reactions-actions {{this.classes}}\"\n        {{on \"touchstart\" this.touchStart}}\n        {{on \"touchmove\" this.touchMove}}\n        {{on \"touchend\" this.touchEnd}}\n        {{closeOnClickOutside this.clickOutside}}\n        {{didInsert this.registerContainerElement}}\n      >\n        {{#let\n          (hash\n            counter=(curryComponent\n              DiscourseReactionsCounter\n              (lazyHash\n                post=this.data\n                position=@position\n                reactionsPickerExpanded=this.reactionsPickerExpanded\n                statePanelExpanded=this.statePanelExpanded\n                expandStatePanel=this.expandStatePanel\n                collapseStatePanel=this.collapseStatePanel\n                cancelCollapse=this.cancelCollapse\n                scheduleCollapse=this.scheduleCollapse\n                updatePopover=this.updateReactionsStatePanel\n                collapseAllPanels=this.collapseAllPanels\n              )\n            )\n            button=(curryComponent\n              DiscourseReactionsReactionButton\n              (lazyHash\n                post=this.data\n                position=@position\n                cancelCollapse=this.cancelCollapse\n                toggleFromButton=this.toggleFromButton\n                toggleReactions=this.toggleReactions\n                cancelExpand=this.cancelExpand\n                scheduleCollapse=this.scheduleCollapse\n              )\n            )\n          )\n          as |components|\n        }}\n          {{#if this.showReactionsPicker}}\n            <DiscourseReactionsPicker\n              @post={{this.data}}\n              @scheduleCollapse={{this.scheduleCollapse}}\n              @cancelCollapse={{this.cancelCollapse}}\n              @disableClickOutside={{this.disableClickOutside}}\n              @enableClickOutside={{this.enableClickOutside}}\n              @reactionsPickerExpanded={{this.reactionsPickerExpanded}}\n              @toggle={{this.toggle}}\n            />\n          {{/if}}\n      \n          {{#if (eq @position \"left\")}}\n            <components.counter />\n          {{else if this.onlyOneMainReaction}}\n            <DiscourseReactionsDoubleButton\n              @post={{this.data}}\n              @counterComponent={{components.counter}}\n              @buttonComponent={{components.button}}\n            />\n          {{else if this.site.mobileView}}\n            {{#if (not this.data.yours)}}\n              <components.counter />\n              <components.button />\n            {{else if\n              (and this.data.yours this.data.reactions this.data.reactions.length)\n            }}\n              <components.counter />\n            {{/if}}\n          {{else if (not this.data.yours)}}\n            <components.button />\n          {{/if}}\n        {{/let}}\n      </div>\n      */\n      {\n        \"id\": \"G03SO1nl\",\n        \"block\": \"[[[11,0],[16,1,[30,0,[\\\"elementId\\\"]]],[16,0,[29,[\\\"discourse-reactions-actions \\\",[30,0,[\\\"classes\\\"]]]]],[4,[32,0],[\\\"touchstart\\\",[30,0,[\\\"touchStart\\\"]]],null],[4,[32,0],[\\\"touchmove\\\",[30,0,[\\\"touchMove\\\"]]],null],[4,[32,0],[\\\"touchend\\\",[30,0,[\\\"touchEnd\\\"]]],null],[4,[32,1],[[30,0,[\\\"clickOutside\\\"]]],null],[4,[32,2],[[30,0,[\\\"registerContainerElement\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[44,[[28,[32,3],null,[[\\\"counter\\\",\\\"button\\\"],[[28,[32,4],[[32,5],[28,[32,6],null,[[\\\"post\\\",\\\"position\\\",\\\"reactionsPickerExpanded\\\",\\\"statePanelExpanded\\\",\\\"expandStatePanel\\\",\\\"collapseStatePanel\\\",\\\"cancelCollapse\\\",\\\"scheduleCollapse\\\",\\\"updatePopover\\\",\\\"collapseAllPanels\\\"],[[30,0,[\\\"data\\\"]],[30,1],[30,0,[\\\"reactionsPickerExpanded\\\"]],[30,0,[\\\"statePanelExpanded\\\"]],[30,0,[\\\"expandStatePanel\\\"]],[30,0,[\\\"collapseStatePanel\\\"]],[30,0,[\\\"cancelCollapse\\\"]],[30,0,[\\\"scheduleCollapse\\\"]],[30,0,[\\\"updateReactionsStatePanel\\\"]],[30,0,[\\\"collapseAllPanels\\\"]]]]]],null],[28,[32,4],[[32,7],[28,[32,6],null,[[\\\"post\\\",\\\"position\\\",\\\"cancelCollapse\\\",\\\"toggleFromButton\\\",\\\"toggleReactions\\\",\\\"cancelExpand\\\",\\\"scheduleCollapse\\\"],[[30,0,[\\\"data\\\"]],[30,1],[30,0,[\\\"cancelCollapse\\\"]],[30,0,[\\\"toggleFromButton\\\"]],[30,0,[\\\"toggleReactions\\\"]],[30,0,[\\\"cancelExpand\\\"]],[30,0,[\\\"scheduleCollapse\\\"]]]]]],null]]]]],[[[41,[30,0,[\\\"showReactionsPicker\\\"]],[[[1,\\\"      \\\"],[8,[32,8],null,[[\\\"@post\\\",\\\"@scheduleCollapse\\\",\\\"@cancelCollapse\\\",\\\"@disableClickOutside\\\",\\\"@enableClickOutside\\\",\\\"@reactionsPickerExpanded\\\",\\\"@toggle\\\"],[[30,0,[\\\"data\\\"]],[30,0,[\\\"scheduleCollapse\\\"]],[30,0,[\\\"cancelCollapse\\\"]],[30,0,[\\\"disableClickOutside\\\"]],[30,0,[\\\"enableClickOutside\\\"]],[30,0,[\\\"reactionsPickerExpanded\\\"]],[30,0,[\\\"toggle\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[28,[32,9],[[30,1],\\\"left\\\"],null],[[[1,\\\"      \\\"],[8,[30,2,[\\\"counter\\\"]],null,null,null],[1,\\\"\\\\n\\\"]],[]],[[[41,[30,0,[\\\"onlyOneMainReaction\\\"]],[[[1,\\\"      \\\"],[8,[32,10],null,[[\\\"@post\\\",\\\"@counterComponent\\\",\\\"@buttonComponent\\\"],[[30,0,[\\\"data\\\"]],[30,2,[\\\"counter\\\"]],[30,2,[\\\"button\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[41,[30,0,[\\\"site\\\",\\\"mobileView\\\"]],[[[41,[28,[32,11],[[30,0,[\\\"data\\\",\\\"yours\\\"]]],null],[[[1,\\\"        \\\"],[8,[30,2,[\\\"counter\\\"]],null,null,null],[1,\\\"\\\\n        \\\"],[8,[30,2,[\\\"button\\\"]],null,null,null],[1,\\\"\\\\n\\\"]],[]],[[[41,[28,[32,12],[[30,0,[\\\"data\\\",\\\"yours\\\"]],[30,0,[\\\"data\\\",\\\"reactions\\\"]],[30,0,[\\\"data\\\",\\\"reactions\\\",\\\"length\\\"]]],null],[[[1,\\\"        \\\"],[8,[30,2,[\\\"counter\\\"]],null,null,null],[1,\\\"\\\\n      \\\"]],[]],null]],[]]]],[]],[[[41,[28,[32,11],[[30,0,[\\\"data\\\",\\\"yours\\\"]]],null],[[[1,\\\"      \\\"],[8,[30,2,[\\\"button\\\"]],null,null,null],[1,\\\"\\\\n    \\\"]],[]],null]],[]]]],[]]]],[]]]],[2]]],[13]],[\\\"@position\\\",\\\"components\\\"],[\\\"let\\\",\\\"if\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-actions.js\",\n        \"scope\": () => [_modifier.on, _closeOnClickOutside.default, _didInsert.default, _helper.hash, _emberCurryComponent.default, _discourseReactionsCounter.default, _lazyHash.default, _discourseReactionsReactionButton.default, _discourseReactionsPicker.default, _truthHelpers.eq, _discourseReactionsDoubleButton.default, _truthHelpers.not, _truthHelpers.and],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DiscourseReactionsActions;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-counter\", [\"exports\", \"@glimmer/component\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"@ember-compat/tracked-built-ins\", \"discourse/components/d-button\", \"discourse/lib/array-tools\", \"discourse/lib/decorators\", \"discourse/modifiers/close-on-click-outside\", \"discourse/truth-helpers\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _modifier, _object, _service, _trackedBuiltIns, _dButton, _arrayTools, _decorators, _closeOnClickOutside, _truthHelpers, _discourseReactionsCustomReaction, _discourseReactionsList, _discourseReactionsStatePanel, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class DiscourseReactionsCounter extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"capabilities\", [_service.service]);\n    }\n    #capabilities = (dt7948.i(this, \"capabilities\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"site\", [_service.service]);\n    }\n    #site = (dt7948.i(this, \"site\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    reactionsUsers = new _trackedBuiltIns.TrackedObject();\n    get elementId() {\n      return `discourse-reactions-counter-${this.args.post.id}-${this.args.position || \"right\"}`;\n    }\n    reactionsChanged(data) {\n      (0, _arrayTools.uniqueItemsFromArray)(data.reactions).forEach(reaction => {\n        this.getUsers(reaction);\n      });\n    }\n    async getUsers(reactionValue) {\n      const response = await _discourseReactionsCustomReaction.default.findReactionUsers(this.args.post.id, {\n        reactionValue\n      });\n      response.reaction_users.forEach(reactionUser => {\n        this.reactionsUsers[reactionUser.id] = reactionUser.users;\n      });\n      this.args.updatePopover();\n    }\n    static {\n      dt7948.n(this.prototype, \"getUsers\", [_decorators.bind]);\n    }\n    mouseDown(event) {\n      event.stopImmediatePropagation();\n    }\n    static {\n      dt7948.n(this.prototype, \"mouseDown\", [_object.action]);\n    }\n    mouseUp(event) {\n      event.stopImmediatePropagation();\n    }\n    static {\n      dt7948.n(this.prototype, \"mouseUp\", [_object.action]);\n    }\n    click(event) {\n      if (event.target.closest(\"[data-user-card]\")) {\n        return;\n      }\n      this.args.cancelCollapse();\n      if (!this.capabilities.touch || this.site.desktopView) {\n        event.stopPropagation();\n        event.preventDefault();\n        if (!this.args.statePanelExpanded) {\n          this.getUsers();\n        }\n        this.toggleStatePanel(event);\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"click\", [_object.action]);\n    }\n    clickOutside() {\n      if (this.args.statePanelExpanded) {\n        this.args.collapseAllPanels();\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"clickOutside\", [_object.action]);\n    }\n    touchStart(event) {\n      this.args.cancelCollapse();\n      if (event.target.classList.contains(\"show-users\") || event.target.classList.contains(\"avatar\")) {\n        return true;\n      }\n      if (this.args.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    static {\n      dt7948.n(this.prototype, \"touchStart\", [_object.action]);\n    }\n    get classes() {\n      const classes = [];\n      const mainReaction = this.siteSettings.discourse_reactions_reaction_for_like;\n      const {\n        post\n      } = this.args;\n      if (post.reactions && post.reactions.length === 1 && post.reactions[0].id === mainReaction) {\n        classes.push(\"only-like\");\n      }\n      if (post.reaction_users_count > 0) {\n        classes.push(\"discourse-reactions-counter\");\n      }\n      return classes.join(\" \");\n    }\n    toggleStatePanel() {\n      if (!this.args.statePanelExpanded) {\n        this.args.expandStatePanel();\n      } else {\n        this.args.collapseStatePanel();\n      }\n    }\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.args.cancelCollapse();\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOver\", [_object.action]);\n    }\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      if (!event.relatedTarget?.closest(`#${this.elementId}`)) {\n        this.args.scheduleCollapse(\"collapseStatePanel\");\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOut\", [_object.action]);\n    }\n    get onlyOneMainReaction() {\n      return this.args.post.reactions?.length === 1 && this.args.post.reactions[0].id === this.siteSettings.discourse_reactions_reaction_for_like;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{! template-lint-disable no-invalid-interactive no-pointer-down-event-binding }}\n      <div\n        id={{this.elementId}}\n        class={{this.classes}}\n        {{on \"mousedown\" this.mouseDown}}\n        {{on \"mouseup\" this.mouseUp}}\n        {{closeOnClickOutside this.clickOutside}}\n        {{on \"touchstart\" this.touchStart}}\n        {{on \"pointerover\" this.pointerOver}}\n        {{on \"pointerout\" this.pointerOut}}\n        {{on \"click\" this.click}}\n      >\n        {{#if @post.reaction_users_count}}\n          <DiscourseReactionsStatePanel\n            @post={{@post}}\n            @reactionsUsers={{this.reactionsUsers}}\n            @statePanelExpanded={{@statePanelExpanded}}\n            @scheduleCollapse={{@scheduleCollapse}}\n            @cancelCollapse={{@cancelCollapse}}\n          />\n      \n          {{#unless this.onlyOneMainReaction}}\n            <DiscourseReactionsList\n              {{on \"click\" this.click}}\n              @post={{@post}}\n              @reactionsUsers={{this.reactionsUsers}}\n              @getUsers={{this.getUsers}}\n            />\n          {{/unless}}\n      \n          <span class=\"reactions-counter\">\n            {{@post.reaction_users_count}}\n          </span>\n      \n          {{#if (and @post.yours this.onlyOneMainReaction)}}\n            <div class=\"discourse-reactions-reaction-button my-likes\">\n              <DButton\n                class=\"btn-toggle-reaction-like btn-flat btn-icon no-text reaction-button\"\n                @icon={{this.siteSettings.discourse_reactions_like_icon}}\n              />\n            </div>\n          {{/if}}\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"x5qcG9jl\",\n        \"block\": \"[[[11,0],[16,1,[30,0,[\\\"elementId\\\"]]],[16,0,[30,0,[\\\"classes\\\"]]],[4,[32,0],[\\\"mousedown\\\",[30,0,[\\\"mouseDown\\\"]]],null],[4,[32,0],[\\\"mouseup\\\",[30,0,[\\\"mouseUp\\\"]]],null],[4,[32,1],[[30,0,[\\\"clickOutside\\\"]]],null],[4,[32,0],[\\\"touchstart\\\",[30,0,[\\\"touchStart\\\"]]],null],[4,[32,0],[\\\"pointerover\\\",[30,0,[\\\"pointerOver\\\"]]],null],[4,[32,0],[\\\"pointerout\\\",[30,0,[\\\"pointerOut\\\"]]],null],[4,[32,0],[\\\"click\\\",[30,0,[\\\"click\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"reaction_users_count\\\"]],[[[1,\\\"    \\\"],[8,[32,2],null,[[\\\"@post\\\",\\\"@reactionsUsers\\\",\\\"@statePanelExpanded\\\",\\\"@scheduleCollapse\\\",\\\"@cancelCollapse\\\"],[[30,1],[30,0,[\\\"reactionsUsers\\\"]],[30,2],[30,3],[30,4]]],null],[1,\\\"\\\\n\\\\n\\\"],[41,[51,[30,0,[\\\"onlyOneMainReaction\\\"]]],[[[1,\\\"      \\\"],[8,[32,3],[[4,[32,0],[\\\"click\\\",[30,0,[\\\"click\\\"]]],null]],[[\\\"@post\\\",\\\"@reactionsUsers\\\",\\\"@getUsers\\\"],[[30,1],[30,0,[\\\"reactionsUsers\\\"]],[30,0,[\\\"getUsers\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"reactions-counter\\\"],[12],[1,\\\"\\\\n      \\\"],[1,[30,1,[\\\"reaction_users_count\\\"]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[28,[32,4],[[30,1,[\\\"yours\\\"]],[30,0,[\\\"onlyOneMainReaction\\\"]]],null],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"discourse-reactions-reaction-button my-likes\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,5],[[24,0,\\\"btn-toggle-reaction-like btn-flat btn-icon no-text reaction-button\\\"]],[[\\\"@icon\\\"],[[30,0,[\\\"siteSettings\\\",\\\"discourse_reactions_like_icon\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[13]],[\\\"@post\\\",\\\"@statePanelExpanded\\\",\\\"@scheduleCollapse\\\",\\\"@cancelCollapse\\\"],[\\\"if\\\",\\\"unless\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-counter.js\",\n        \"scope\": () => [_modifier.on, _closeOnClickOutside.default, _discourseReactionsStatePanel.default, _discourseReactionsList.default, _truthHelpers.and, _dButton.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DiscourseReactionsCounter;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-double-button\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DiscourseReactionsDoubleButton = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    <div class=\"discourse-reactions-double-button\">\n    {{#if @post.reaction_users_count}}\n      <@counterComponent />\n    {{/if}}\n  \n    {{#unless @post.yours}}\n      <@buttonComponent />\n    {{/unless}}\n  </div>\n  */\n  {\n    \"id\": \"cvJ9pRON\",\n    \"block\": \"[[[10,0],[14,0,\\\"discourse-reactions-double-button\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"reaction_users_count\\\"]],[[[1,\\\"    \\\"],[8,[30,2],null,null,null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[51,[30,1,[\\\"yours\\\"]]],[[[1,\\\"    \\\"],[8,[30,3],null,null,null],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"@post\\\",\\\"@counterComponent\\\",\\\"@buttonComponent\\\"],[\\\"if\\\",\\\"unless\\\"]]\",\n    \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-double-button.js\",\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"discourse-reactions-double-button:DiscourseReactionsDoubleButton\"));\n  var _default = _exports.default = DiscourseReactionsDoubleButton;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list-emoji\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"@ember/object\", \"@ember/runloop\", \"@ember/service\", \"@floating-ui/dom\", \"discourse/helpers/emoji\", \"discourse/lib/decorators\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _modifier, _object, _runloop, _service, _dom, _emoji, _decorators, _discourseI18n, _component2, _templateFactory) {\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  class DiscourseReactionsListEmoji extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"loadingReactions\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #loadingReactions = (dt7948.i(this, \"loadingReactions\"), void 0);\n    get elementId() {\n      return `discourse-reactions-list-emoji-${this.args.post.id}-${this.args.reaction.id}`;\n    }\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\" || !this.args.reaction.count) {\n        return;\n      }\n      this.showTooltip();\n      if (!this.args.users?.length && !this.loadingReactions) {\n        (0, _runloop.debounce)(this, this._loadReactionUsers, 3000, true);\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOver\", [_object.action]);\n    }\n    showTooltip() {\n      const referenceElement = document.getElementById(this.elementId);\n      const floatingElement = referenceElement.querySelector(\".user-list\");\n      (0, _dom.computePosition)(referenceElement, floatingElement, {\n        placement: \"bottom\",\n        middleware: [(0, _dom.offset)(-5), (0, _dom.shift)({\n          limiter: (0, _dom.limitShift)()\n        }), (0, _dom.flip)({\n          padding: 5\n        })]\n      }).then(({\n        x,\n        y\n      }) => {\n        Object.assign(floatingElement.style, {\n          left: `${x}px`,\n          top: `${y}px`\n        });\n      });\n    }\n    _loadReactionUsers() {\n      this.loadingReactions = true;\n      this.args.getUsers(this.args.reaction.id).finally(() => {\n        this.loadingReactions = false;\n      });\n    }\n    get truncatedUsers() {\n      return this.args.users?.slice(0, DISPLAY_MAX_USERS);\n    }\n    displayNameForUser(user) {\n      if (!this.siteSettings.prioritize_username_in_ux && this.siteSettings.prioritize_full_name_in_ux) {\n        return user.name || user.username;\n      } else if (this.siteSettings.prioritize_username_in_ux) {\n        return user.username;\n      } else if (!user.name) {\n        return user.username;\n      } else {\n        return user.name;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"displayNameForUser\", [_decorators.bind]);\n    }\n    get hiddenUserCount() {\n      return this.args.users?.length - this.truncatedUsers?.length;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div\n        class=\"discourse-reactions-list-emoji\"\n        id={{this.elementId}}\n        {{on \"pointerover\" this.pointerOver}}\n      >\n        {{#if @reaction.count}}\n          {{emoji\n            @reaction.id\n            skipTitle=true\n            class=(if\n              this.siteSettings.discourse_reactions_desaturated_reaction_panel\n              \"desaturated\"\n              \"\"\n            )\n          }}\n      \n          <div class=\"user-list\">\n            <div class=\"container\">\n              <span class=\"heading\">{{@reaction.id}}</span>\n              {{#each this.truncatedUsers as |user|}}\n                <span class=\"username\">{{this.displayNameForUser user}}</span>\n              {{else}}\n                <div class=\"center\"><div class=\"spinner small\"></div></div>\n              {{/each}}\n              {{#if this.hiddenUserCount}}\n                <span class=\"other-users\">\n                  {{i18n\n                    \"discourse_reactions.state_panel.more_users\"\n                    count=this.hiddenUserCount\n                  }}\n                </span>\n              {{/if}}\n            </div>\n          </div>\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"xkA6slV9\",\n        \"block\": \"[[[11,0],[24,0,\\\"discourse-reactions-list-emoji\\\"],[16,1,[30,0,[\\\"elementId\\\"]]],[4,[32,0],[\\\"pointerover\\\",[30,0,[\\\"pointerOver\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"count\\\"]],[[[1,\\\"    \\\"],[1,[28,[32,1],[[30,1,[\\\"id\\\"]]],[[\\\"skipTitle\\\",\\\"class\\\"],[true,[52,[30,0,[\\\"siteSettings\\\",\\\"discourse_reactions_desaturated_reaction_panel\\\"]],\\\"desaturated\\\",\\\"\\\"]]]]],[1,\\\"\\\\n\\\\n    \\\"],[10,0],[14,0,\\\"user-list\\\"],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"container\\\"],[12],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"heading\\\"],[12],[1,[30,1,[\\\"id\\\"]]],[13],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"truncatedUsers\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[10,1],[14,0,\\\"username\\\"],[12],[1,[28,[30,0,[\\\"displayNameForUser\\\"]],[[30,2]],null]],[13],[1,\\\"\\\\n\\\"]],[2]],[[[1,\\\"          \\\"],[10,0],[14,0,\\\"center\\\"],[12],[10,0],[14,0,\\\"spinner small\\\"],[12],[13],[13],[1,\\\"\\\\n\\\"]],[]]],[41,[30,0,[\\\"hiddenUserCount\\\"]],[[[1,\\\"          \\\"],[10,1],[14,0,\\\"other-users\\\"],[12],[1,\\\"\\\\n            \\\"],[1,[28,[32,2],[\\\"discourse_reactions.state_panel.more_users\\\"],[[\\\"count\\\"],[[30,0,[\\\"hiddenUserCount\\\"]]]]]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"@reaction\\\",\\\"user\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list-emoji.js\",\n        \"scope\": () => [_modifier.on, _emoji.default, _discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DiscourseReactionsListEmoji;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list\", [\"exports\", \"@ember/helper\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list-emoji\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _discourseReactionsListEmoji, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DiscourseReactionsList = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    <div class=\"discourse-reactions-list\" ...attributes>\n    {{#if @post.reaction_users_count}}\n      <div class=\"reactions\">\n        {{#each @post.reactions as |reaction|}}\n          <DiscourseReactionsListEmoji\n            @reaction={{reaction}}\n            @users={{get @reactionsUsers reaction.id}}\n            @post={{@post}}\n            @getUsers={{@getUsers}}\n          />\n        {{/each}}\n      </div>\n    {{/if}}\n  </div>\n  */\n  {\n    \"id\": \"eotF+1O0\",\n    \"block\": \"[[[11,0],[24,0,\\\"discourse-reactions-list\\\"],[17,1],[12],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"reaction_users_count\\\"]],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"reactions\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,2,[\\\"reactions\\\"]]],null]],null],null,[[[1,\\\"        \\\"],[8,[32,0],null,[[\\\"@reaction\\\",\\\"@users\\\",\\\"@post\\\",\\\"@getUsers\\\"],[[30,3],[28,[32,1],[[30,4],[30,3,[\\\"id\\\"]]],null],[30,2],[30,5]]],null],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"&attrs\\\",\\\"@post\\\",\\\"reaction\\\",\\\"@reactionsUsers\\\",\\\"@getUsers\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-list.js\",\n    \"scope\": () => [_discourseReactionsListEmoji.default, _helper.get],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"discourse-reactions-list:DiscourseReactionsList\"));\n  var _default = _exports.default = DiscourseReactionsList;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-picker\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/components/emoji-picker\", \"discourse/helpers/concat-class\", \"discourse/helpers/emoji\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _modifier, _object, _service, _dButton, _emojiPicker, _concatClass, _emoji, _discourseI18n, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class DiscourseReactionsPicker extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    emojiPickerIsOpen = false;\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\" || this.emojiPickerIsOpen) {\n        return;\n      }\n      this.args.scheduleCollapse(\"collapseReactionsPicker\");\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOut\", [_object.action]);\n    }\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.args.cancelCollapse();\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOver\", [_object.action]);\n    }\n    get reactionInfo() {\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 {\n        post\n      } = this.args;\n      const currentUserReaction = post.current_user_reaction;\n      return reactions.map(reaction => {\n        let isUsed;\n        let canUndo;\n        if (reaction === this.siteSettings.discourse_reactions_reaction_for_like) {\n          isUsed = post.current_user_used_main_reaction;\n        } else {\n          isUsed = currentUserReaction && currentUserReaction.id === reaction;\n        }\n        if (currentUserReaction) {\n          canUndo = currentUserReaction.can_undo && post.likeAction.canToggle;\n        } else {\n          canUndo = 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 {\n          id: reaction,\n          title: (0, _discourseI18n.i18n)(title, titleOptions),\n          canUndo,\n          isUsed\n        };\n      });\n    }\n    get optimalColsCount() {\n      let count = this.reactionInfo.length;\n      if (this.siteSettings.discourse_reactions_allow_any_emoji) {\n        count += 1;\n      }\n      let x;\n      const colsByRow = [5, 6, 7, 8];\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        // 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        // 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    onSelectEmoji(selected_emoji) {\n      this.args.toggle({\n        reaction: selected_emoji,\n        postId: this.args.post.id,\n        canUndo: true\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"onSelectEmoji\", [_object.action]);\n    }\n    preventCollapse() {\n      this.emojiPickerIsOpen = true;\n      this.args.cancelCollapse?.();\n      this.args.disableClickOutside?.();\n    }\n    static {\n      dt7948.n(this.prototype, \"preventCollapse\", [_object.action]);\n    }\n    reenableCollapse() {\n      this.emojiPickerIsOpen = false;\n      this.args.enableClickOutside?.();\n    }\n    static {\n      dt7948.n(this.prototype, \"reenableCollapse\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div\n        class={{concatClass\n          \"discourse-reactions-picker\"\n          (if @reactionsPickerExpanded \"is-expanded\")\n        }}\n        {{on \"pointerover\" this.pointerOver}}\n        {{on \"pointerout\" this.pointerOut}}\n      >\n        {{#if @reactionsPickerExpanded}}\n          <div\n            class=\"discourse-reactions-picker-container col-{{this.optimalColsCount}}\"\n          >\n            {{#each this.reactionInfo as |reaction|}}\n              <DButton\n                class={{concatClass\n                  \"btn-flat\"\n                  \"pickable-reaction\"\n                  reaction.id\n                  (if reaction.canUndo \"can-undo\")\n                  (if reaction.isUsed \"is-used\")\n                }}\n                data-reaction={{reaction.id}}\n                @action={{fn\n                  @toggle\n                  (hash\n                    reaction=reaction.id postId=@post.id canUndo=reaction.canUndo\n                  )\n                }}\n                @translatedTitle={{reaction.title}}\n              >\n                {{emoji reaction.id}}\n              </DButton>\n            {{/each}}\n            {{#if this.siteSettings.discourse_reactions_allow_any_emoji}}\n              <EmojiPicker\n                ...attributes\n                @icon=\"far-face-smile\"\n                @context=\"discourse-reactions\"\n                @didSelectEmoji={{this.onSelectEmoji}}\n                @onShow={{this.preventCollapse}}\n                @onClose={{this.reenableCollapse}}\n                @btnClass=\"btn-icon btn-flat\"\n              />\n            {{/if}}\n          </div>\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"MvKc8uox\",\n        \"block\": \"[[[11,0],[16,0,[28,[32,0],[\\\"discourse-reactions-picker\\\",[52,[30,1],\\\"is-expanded\\\"]],null]],[4,[32,1],[\\\"pointerover\\\",[30,0,[\\\"pointerOver\\\"]]],null],[4,[32,1],[\\\"pointerout\\\",[30,0,[\\\"pointerOut\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,1],[[[1,\\\"    \\\"],[10,0],[15,0,[29,[\\\"discourse-reactions-picker-container col-\\\",[30,0,[\\\"optimalColsCount\\\"]]]]],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"reactionInfo\\\"]]],null]],null],null,[[[1,\\\"        \\\"],[8,[32,2],[[16,0,[28,[32,0],[\\\"btn-flat\\\",\\\"pickable-reaction\\\",[30,2,[\\\"id\\\"]],[52,[30,2,[\\\"canUndo\\\"]],\\\"can-undo\\\"],[52,[30,2,[\\\"isUsed\\\"]],\\\"is-used\\\"]],null]],[16,\\\"data-reaction\\\",[30,2,[\\\"id\\\"]]]],[[\\\"@action\\\",\\\"@translatedTitle\\\"],[[28,[32,3],[[30,3],[28,[32,4],null,[[\\\"reaction\\\",\\\"postId\\\",\\\"canUndo\\\"],[[30,2,[\\\"id\\\"]],[30,4,[\\\"id\\\"]],[30,2,[\\\"canUndo\\\"]]]]]],null],[30,2,[\\\"title\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[1,[28,[32,5],[[30,2,[\\\"id\\\"]]],null]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[2]],null],[41,[30,0,[\\\"siteSettings\\\",\\\"discourse_reactions_allow_any_emoji\\\"]],[[[1,\\\"        \\\"],[8,[32,6],[[17,5]],[[\\\"@icon\\\",\\\"@context\\\",\\\"@didSelectEmoji\\\",\\\"@onShow\\\",\\\"@onClose\\\",\\\"@btnClass\\\"],[\\\"far-face-smile\\\",\\\"discourse-reactions\\\",[30,0,[\\\"onSelectEmoji\\\"]],[30,0,[\\\"preventCollapse\\\"]],[30,0,[\\\"reenableCollapse\\\"]],\\\"btn-icon btn-flat\\\"]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"@reactionsPickerExpanded\\\",\\\"reaction\\\",\\\"@toggle\\\",\\\"@post\\\",\\\"&attrs\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-picker.js\",\n        \"scope\": () => [_concatClass.default, _modifier.on, _dButton.default, _helper.fn, _helper.hash, _emoji.default, _emojiPicker.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DiscourseReactionsPicker;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-button\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"@ember/utils\", \"discourse/components/d-button\", \"discourse/lib/text\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _modifier, _object, _service, _utils, _dButton, _text, _discourseI18n, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class ReactionsReactionButton extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"capabilities\", [_service.service]);\n    }\n    #capabilities = (dt7948.i(this, \"capabilities\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"site\", [_service.service]);\n    }\n    #site = (dt7948.i(this, \"site\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    click() {\n      this.args.cancelCollapse();\n      const currentUserReaction = this.args.post.current_user_reaction;\n      if (!this.capabilities.touch || this.site.desktopView) {\n        this.args.toggleFromButton({\n          reaction: currentUserReaction ? currentUserReaction.id : this.siteSettings.discourse_reactions_reaction_for_like\n        });\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"click\", [_object.action]);\n    }\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.args.cancelCollapse();\n      const likeAction = this.args.post.likeAction;\n      const currentUserReaction = this.args.post.current_user_reaction;\n      if (currentUserReaction && !currentUserReaction.can_undo && (!likeAction || (0, _utils.isBlank)(likeAction.can_undo))) {\n        return;\n      }\n      this.args.toggleReactions(event);\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOver\", [_object.action]);\n    }\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.args.cancelExpand();\n      this.args.scheduleCollapse(\"collapseReactionsPicker\");\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOut\", [_object.action]);\n    }\n    get likedIcon() {\n      const icon = this.siteSettings.discourse_reactions_like_icon;\n      // Map \"heart\" to the d-liked alias to follow core replacement pattern\n      if (icon === \"heart\") {\n        return \"d-liked\";\n      }\n      return icon;\n    }\n    get unlikedIcon() {\n      const icon = this.siteSettings.discourse_reactions_like_icon;\n      // Map \"heart\" to the d-unliked alias to follow core replacement pattern\n      if (icon === \"heart\") {\n        return \"d-unliked\";\n      }\n      return `far-${icon}`;\n    }\n    get title() {\n      if (!this.currentUser) {\n        return (0, _discourseI18n.i18n)(\"discourse_reactions.main_reaction.unauthenticated\");\n      }\n      const likeAction = this.args.post.likeAction;\n      if (!likeAction) {\n        return null;\n      }\n      let title;\n      let options;\n      const currentUserReaction = this.args.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 ? (0, _discourseI18n.i18n)(title, options) : (0, _discourseI18n.i18n)(title);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{! template-lint-disable no-invalid-interactive }}\n      <div\n        class=\"discourse-reactions-reaction-button\"\n        {{on \"click\" this.click}}\n        {{on \"pointerover\" this.pointerOver}}\n        {{on \"pointerout\" this.pointerOut}}\n        title={{this.title}}\n      >\n        {{#if @post.current_user_used_main_reaction}}\n          <DButton\n            class=\"btn-toggle-reaction-like btn-flat btn-icon no-text reaction-button\"\n            @translatedTitle={{this.title}}\n            @icon={{this.likedIcon}}\n          />\n        {{else if @post.current_user_reaction}}\n          <DButton\n            class=\"btn-icon no-text btn-flat reaction-button\"\n            @translatedTitle={{this.title}}\n          >\n            <img\n              class=\"btn-toggle-reaction-emoji reaction-button\"\n              src={{emojiUrlFor @post.current_user_reaction.id}}\n              alt={{concat \":\" @post.current_user_reaction.id}}\n            />\n          </DButton>\n        {{else}}\n          <DButton\n            class=\"btn-toggle-reaction-like btn-flat btn-icon no-text reaction-button\"\n            @translatedTitle={{this.title}}\n            @icon={{this.unlikedIcon}}\n          />\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"xL9FZ/0S\",\n        \"block\": \"[[[11,0],[24,0,\\\"discourse-reactions-reaction-button\\\"],[16,\\\"title\\\",[30,0,[\\\"title\\\"]]],[4,[32,0],[\\\"click\\\",[30,0,[\\\"click\\\"]]],null],[4,[32,0],[\\\"pointerover\\\",[30,0,[\\\"pointerOver\\\"]]],null],[4,[32,0],[\\\"pointerout\\\",[30,0,[\\\"pointerOut\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"current_user_used_main_reaction\\\"]],[[[1,\\\"    \\\"],[8,[32,1],[[24,0,\\\"btn-toggle-reaction-like btn-flat btn-icon no-text reaction-button\\\"]],[[\\\"@translatedTitle\\\",\\\"@icon\\\"],[[30,0,[\\\"title\\\"]],[30,0,[\\\"likedIcon\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[41,[30,1,[\\\"current_user_reaction\\\"]],[[[1,\\\"    \\\"],[8,[32,1],[[24,0,\\\"btn-icon no-text btn-flat reaction-button\\\"]],[[\\\"@translatedTitle\\\"],[[30,0,[\\\"title\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[10,\\\"img\\\"],[14,0,\\\"btn-toggle-reaction-emoji reaction-button\\\"],[15,\\\"src\\\",[28,[32,2],[[30,1,[\\\"current_user_reaction\\\",\\\"id\\\"]]],null]],[15,\\\"alt\\\",[28,[32,3],[\\\":\\\",[30,1,[\\\"current_user_reaction\\\",\\\"id\\\"]]],null]],[12],[13],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[8,[32,1],[[24,0,\\\"btn-toggle-reaction-like btn-flat btn-icon no-text reaction-button\\\"]],[[\\\"@translatedTitle\\\",\\\"@icon\\\"],[[30,0,[\\\"title\\\"]],[30,0,[\\\"unlikedIcon\\\"]]]],null],[1,\\\"\\\\n  \\\"]],[]]]],[]]],[13]],[\\\"@post\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-button.js\",\n        \"scope\": () => [_modifier.on, _dButton.default, _text.emojiUrlFor, _helper.concat],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = ReactionsReactionButton;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-emoji\", [\"exports\", \"@glimmer/component\", \"discourse/helpers/avatar\", \"discourse/lib/text\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _avatar, _text, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class DiscourseReactionsReactionEmoji extends _component.default {\n    get emojiUrl() {\n      const reactionValue = this.args.reaction.reaction?.reaction_value;\n      return reactionValue ? (0, _text.emojiUrlFor)(reactionValue) : null;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\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      */\n      {\n        \"id\": \"tGNELxVk\",\n        \"block\": \"[[[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,[32,0],[[30,1,[\\\"user\\\"]]],[[\\\"imageSize\\\",\\\"extraClasses\\\",\\\"ignoreTitle\\\"],[\\\"tiny\\\",\\\"actor\\\",\\\"true\\\"]]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[\\\"@reaction\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-emoji.js\",\n        \"scope\": () => [_avatar.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DiscourseReactionsReactionEmoji;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel-reaction\", [\"exports\", \"@glimmer/component\", \"@ember/modifier\", \"@ember/object\", \"discourse/components/user-avatar\", \"discourse/helpers/concat-class\", \"discourse/helpers/d-icon\", \"discourse/helpers/emoji\", \"discourse/truth-helpers\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _modifier, _object, _userAvatar, _concatClass, _dIcon, _emoji, _truthHelpers, _discourseI18n, _component2, _templateFactory) {\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  class DiscourseReactionsStatePanelReaction extends _component.default {\n    click(event) {\n      if (event?.target?.classList?.contains(\"show-users\")) {\n        event.preventDefault();\n        event.stopPropagation();\n        this.args.showUsers(this.args.reaction.id);\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"click\", [_object.action]);\n    }\n    get firstLineUsers() {\n      return this.args.users.slice(0, MIN_USERS_COUNT);\n    }\n    get otherUsers() {\n      return this.args.users.slice(MIN_USERS_COUNT, MAX_USERS_COUNT);\n    }\n    get columnsCount() {\n      return this.args.users.length > MIN_USERS_COUNT ? this.firstLineUsers.length + 1 : this.firstLineUsers.length;\n    }\n    get moreLabel() {\n      if (this.args.isDisplayed && this.args.reaction.count > MAX_USERS_COUNT) {\n        return (0, _discourseI18n.i18n)(\"discourse_reactions.state_panel.more_users\", {\n          count: this.args.reaction.count - MAX_USERS_COUNT\n        });\n      }\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{! template-lint-disable no-invalid-interactive }}\n      <div\n        class={{concatClass\n          \"discourse-reactions-state-panel-reaction\"\n          (if @isDisplayed \"is-displayed\")\n        }}\n        {{on \"click\" this.click}}\n      >\n        {{#if @users}}\n          <div class=\"reaction-wrapper\">\n            <div class=\"emoji-wrapper\">\n              {{emoji @reaction.id}}\n            </div>\n            <div class=\"count\">\n              {{@reaction.count}}\n            </div>\n          </div>\n      \n          <div class=\"users\">\n            <div class=\"list list-columns-{{this.columnsCount}}\">\n              {{#each this.firstLineUsers key=\"username\" as |user|}}\n                <span>\n                  <UserAvatar\n                    class=\"trigger-user-card\"\n                    @size=\"tiny\"\n                    @user={{user}}\n                  />\n                </span>\n              {{/each}}\n      \n              {{#if (gt @users.length MIN_USERS_COUNT)}}\n                <button type=\"button\" class=\"show-users\">\n                  {{icon (if @isDisplayed \"chevron-up\" \"chevron-down\")}}\n                </button>\n              {{/if}}\n      \n              {{#if @isDisplayed}}\n                {{#each this.otherUsers key=\"username\" as |user|}}\n                  <span>\n                    <UserAvatar\n                      class=\"trigger-user-card\"\n                      @size=\"tiny\"\n                      @user={{user}}\n                    />\n                  </span>\n                {{/each}}\n              {{/if}}\n            </div>\n            <span class=\"more\">\n              {{this.moreLabel}}\n            </span>\n          </div>\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"PqnF+Zva\",\n        \"block\": \"[[[11,0],[16,0,[28,[32,0],[\\\"discourse-reactions-state-panel-reaction\\\",[52,[30,1],\\\"is-displayed\\\"]],null]],[4,[32,1],[\\\"click\\\",[30,0,[\\\"click\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,2],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"reaction-wrapper\\\"],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"emoji-wrapper\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,2],[[30,3,[\\\"id\\\"]]],null]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"count\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[30,3,[\\\"count\\\"]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[10,0],[14,0,\\\"users\\\"],[12],[1,\\\"\\\\n      \\\"],[10,0],[15,0,[29,[\\\"list list-columns-\\\",[30,0,[\\\"columnsCount\\\"]]]]],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"firstLineUsers\\\"]]],null]],null],\\\"username\\\",[[[1,\\\"          \\\"],[10,1],[12],[1,\\\"\\\\n            \\\"],[8,[32,3],[[24,0,\\\"trigger-user-card\\\"]],[[\\\"@size\\\",\\\"@user\\\"],[\\\"tiny\\\",[30,4]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"\\\\n\\\"],[41,[28,[32,4],[[30,2,[\\\"length\\\"]],[32,5]],null],[[[1,\\\"          \\\"],[10,\\\"button\\\"],[14,0,\\\"show-users\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"\\\\n            \\\"],[1,[28,[32,6],[[52,[30,1],\\\"chevron-up\\\",\\\"chevron-down\\\"]],null]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,1],[[[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"otherUsers\\\"]]],null]],null],\\\"username\\\",[[[1,\\\"            \\\"],[10,1],[12],[1,\\\"\\\\n              \\\"],[8,[32,3],[[24,0,\\\"trigger-user-card\\\"]],[[\\\"@size\\\",\\\"@user\\\"],[\\\"tiny\\\",[30,5]]],null],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[5]],null]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"more\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[30,0,[\\\"moreLabel\\\"]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"@isDisplayed\\\",\\\"@users\\\",\\\"@reaction\\\",\\\"user\\\",\\\"user\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel-reaction.js\",\n        \"scope\": () => [_concatClass.default, _modifier.on, _emoji.default, _userAvatar.default, _truthHelpers.gt, MIN_USERS_COUNT, _dIcon.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DiscourseReactionsStatePanelReaction;\n});","define(\"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"@ember/object\", \"discourse/helpers/concat-class\", \"discourse/truth-helpers\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel-reaction\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _modifier, _object, _concatClass, _truthHelpers, _discourseReactionsStatePanelReaction, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class DiscourseReactionsStatePanel extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"displayedReactionId\", [_tracking.tracked]);\n    }\n    #displayedReactionId = (dt7948.i(this, \"displayedReactionId\"), void 0);\n    get classes() {\n      const classes = [];\n      const {\n        post\n      } = this.args;\n      if (post?.reactions) {\n        const maxCount = Math.max(...post.reactions.map(reaction => reaction.count));\n        const charsCount = maxCount.toString().length;\n        classes.push(`max-length-${charsCount}`);\n      }\n      if (this.args.statePanelExpanded) {\n        classes.push(\"is-expanded\");\n      }\n      return classes;\n    }\n    pointerOut(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.args.scheduleCollapse(\"collapseStatePanel\");\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOut\", [_object.action]);\n    }\n    pointerOver(event) {\n      if (event.pointerType !== \"mouse\") {\n        return;\n      }\n      this.args.cancelCollapse();\n    }\n    static {\n      dt7948.n(this.prototype, \"pointerOver\", [_object.action]);\n    }\n    showUsers(reactionId) {\n      if (!this.displayedReactionId) {\n        this.displayedReactionId = reactionId;\n      } else if (this.displayedReactionId === reactionId) {\n        this.hideUsers();\n      } else if (this.displayedReactionId !== reactionId) {\n        this.displayedReactionId = reactionId;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"showUsers\", [_object.action]);\n    }\n    hideUsers() {\n      this.displayedReactionId = null;\n    }\n    static {\n      dt7948.n(this.prototype, \"hideUsers\", [_object.action]);\n    }\n    get hasReactionData() {\n      return !!Object.keys(this.args.reactionsUsers).length;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div\n        class={{concatClass \"discourse-reactions-state-panel\" this.classes}}\n        {{on \"pointerout\" this.pointerOut}}\n        {{on \"pointerover\" this.pointerOver}}\n      >\n        {{#if (and @statePanelExpanded @post.reactions.length)}}\n          <div class=\"container\">\n            {{#if this.hasReactionData}}\n              <div class=\"counters\">\n                {{#each @post.reactions key=\"id\" as |reaction|}}\n                  <DiscourseReactionsStatePanelReaction\n                    @reaction={{reaction}}\n                    @users={{get @reactionsUsers reaction.id}}\n                    @post={{@post}}\n                    @isDisplayed={{eq reaction.id this.displayedReactionId}}\n                    @showUsers={{this.showUsers}}\n                  />\n                {{/each}}\n              </div>\n            {{else}}\n              <div class=\"spinner-container\">\n                <div class=\"spinner small\"></div>\n              </div>\n            {{/if}}\n          </div>\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"gp3nGQe2\",\n        \"block\": \"[[[11,0],[16,0,[28,[32,0],[\\\"discourse-reactions-state-panel\\\",[30,0,[\\\"classes\\\"]]],null]],[4,[32,1],[\\\"pointerout\\\",[30,0,[\\\"pointerOut\\\"]]],null],[4,[32,1],[\\\"pointerover\\\",[30,0,[\\\"pointerOver\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[28,[32,2],[[30,1],[30,2,[\\\"reactions\\\",\\\"length\\\"]]],null],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"container\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"hasReactionData\\\"]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"counters\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,2,[\\\"reactions\\\"]]],null]],null],\\\"id\\\",[[[1,\\\"            \\\"],[8,[32,3],null,[[\\\"@reaction\\\",\\\"@users\\\",\\\"@post\\\",\\\"@isDisplayed\\\",\\\"@showUsers\\\"],[[30,3],[28,[32,4],[[30,4],[30,3,[\\\"id\\\"]]],null],[30,2],[28,[32,5],[[30,3,[\\\"id\\\"]],[30,0,[\\\"displayedReactionId\\\"]]],null],[30,0,[\\\"showUsers\\\"]]]],null],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"spinner-container\\\"],[12],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"spinner small\\\"],[12],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"@statePanelExpanded\\\",\\\"@post\\\",\\\"reaction\\\",\\\"@reactionsUsers\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-state-panel.js\",\n        \"scope\": () => [_concatClass.default, _modifier.on, _truthHelpers.and, _discourseReactionsStatePanelReaction.default, _object.get, _truthHelpers.eq],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DiscourseReactionsStatePanel;\n});","define(\"discourse/plugins/discourse-reactions/discourse/connectors/user-activity-bottom/discourse-reactions-user-activity-reactions\", [\"exports\", \"@ember/component\", \"@ember/routing\", \"@ember-decorators/component\", \"discourse/helpers/d-icon\", \"discourse-i18n\", \"@ember/template-factory\"], function (_exports, _component, _routing, _component2, _dIcon, _discourseI18n, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const DiscourseReactionsUserActivityReactions = dt7948.c(class DiscourseReactionsUserActivityReactions extends _component.default {\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{#if this.siteSettings.discourse_reactions_enabled}}\n        <LinkTo @route=\"userActivity.reactions\">\n          {{icon \"far-face-smile\"}}\n          <span>{{i18n \"discourse_reactions.reactions_title\"}}</span>\n        </LinkTo>\n      {{/if}}\n      */\n      {\n        \"id\": \"oFze+tD+\",\n        \"block\": \"[[[41,[30,0,[\\\"siteSettings\\\",\\\"discourse_reactions_enabled\\\"]],[[[1,\\\"  \\\"],[8,[32,0],null,[[\\\"@route\\\"],[\\\"userActivity.reactions\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[1,[28,[32,1],[\\\"far-face-smile\\\"],null]],[1,\\\"\\\\n    \\\"],[10,1],[12],[1,[28,[32,2],[\\\"discourse_reactions.reactions_title\\\"],null]],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],null]],[],[\\\"if\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/connectors/user-activity-bottom/discourse-reactions-user-activity-reactions.js\",\n        \"scope\": () => [_routing.LinkTo, _dIcon.default, _discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.classNames)(\"user-activity-bottom-outlet\", \"discourse-reactions-user-activity-reactions\"), (0, _component2.tagName)(\"li\")]);\n  var _default = _exports.default = DiscourseReactionsUserActivityReactions;\n});","define(\"discourse/plugins/discourse-reactions/discourse/connectors/user-notifications-bottom/discourse-reactions-user-notification-reactions\", [\"exports\", \"@ember/component\", \"@ember/routing\", \"@ember-decorators/component\", \"discourse/helpers/d-icon\", \"discourse-i18n\", \"@ember/template-factory\"], function (_exports, _component, _routing, _component2, _dIcon, _discourseI18n, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const DiscourseReactionsUserNotificationReactions = dt7948.c(class DiscourseReactionsUserNotificationReactions extends _component.default {\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{#if this.siteSettings.discourse_reactions_enabled}}\n        <LinkTo @route=\"userNotifications.reactionsReceived\">\n          {{icon \"far-face-smile\"}}\n          <span>{{i18n \"discourse_reactions.reactions_title\"}}</span>\n        </LinkTo>\n      {{/if}}\n      */\n      {\n        \"id\": \"3ke1jzDp\",\n        \"block\": \"[[[41,[30,0,[\\\"siteSettings\\\",\\\"discourse_reactions_enabled\\\"]],[[[1,\\\"  \\\"],[8,[32,0],null,[[\\\"@route\\\"],[\\\"userNotifications.reactionsReceived\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[1,[28,[32,1],[\\\"far-face-smile\\\"],null]],[1,\\\"\\\\n    \\\"],[10,1],[12],[1,[28,[32,2],[\\\"discourse_reactions.reactions_title\\\"],null]],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],null]],[],[\\\"if\\\"]]\",\n        \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/connectors/user-notifications-bottom/discourse-reactions-user-notification-reactions.js\",\n        \"scope\": () => [_routing.LinkTo, _dIcon.default, _discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.classNames)(\"user-notifications-bottom-outlet\", \"discourse-reactions-user-notification-reactions\"), (0, _component2.tagName)(\"li\")]);\n  var _default = _exports.default = DiscourseReactionsUserNotificationReactions;\n});","define(\"discourse/plugins/discourse-reactions/discourse/controllers/user-activity/reactions\", [\"exports\", \"@glimmer/tracking\", \"@ember/controller\", \"@ember/object\", \"@ember/service\", \"discourse/lib/array-tools\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _tracking, _controller, _object, _service, _arrayTools, _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 {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"canLoadMore\", [_tracking.tracked], function () {\n        return true;\n      });\n    }\n    #canLoadMore = (dt7948.i(this, \"canLoadMore\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"loading\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #loading = (dt7948.i(this, \"loading\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"beforeLikeId\", [_tracking.tracked], function () {\n        return null;\n      });\n    }\n    #beforeLikeId = (dt7948.i(this, \"beforeLikeId\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"beforeReactionUserId\", [_tracking.tracked], function () {\n        return null;\n      });\n    }\n    #beforeReactionUserId = (dt7948.i(this, \"beforeReactionUserId\"), void 0);\n    #getLastIdFrom(array) {\n      return array.length ? array[array.length - 1].reaction_user_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    async loadMore() {\n      if (!this.canLoadMore || this.loading) {\n        return [];\n      }\n      this.loading = true;\n      const reactionUsers = this.model;\n      try {\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        const newReactionUsers = await _discourseReactionsCustomReaction.default.findReactions(this.reactionsUrl, this.username, opts);\n        const flattened = newReactionUsers.map(r => _discourseReactionsCustomReaction.default.flattenForPostList(r));\n        (0, _arrayTools.addUniqueValuesToArray)(reactionUsers, flattened);\n        this.#updateBeforeIds(flattened);\n        if (flattened.length === 0) {\n          this.canLoadMore = false;\n        }\n        return flattened;\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"loadMore\", [_object.action]);\n    }\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\", \"@glimmer/tracking\", \"@ember/service\", \"discourse/lib/icon-library\", \"discourse/lib/plugin-api\", \"discourse/lib/text\", \"discourse/lib/url\", \"discourse/lib/utilities\", \"discourse-i18n\", \"discourse/plugins/discourse-reactions/discourse/components/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, _tracking, _service, _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  (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.addTrackedPostProperties(\"current_user_used_main_reaction\", \"reaction_users_count\", \"current_user_reaction\", \"reactions\");\n    api.modifyClass(\"component:emoji-value-list\", SuperClass => class extends SuperClass {\n      static {\n        dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n      }\n      #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n      get collection() {\n        const result = super.collection;\n        if (this.args.setting.setting === \"discourse_reactions_enabled_reactions\") {\n          const hasDefaultValue = this.args.values.includes(this.siteSettings.discourse_reactions_reaction_for_like);\n          if (!hasDefaultValue) {\n            result.unshift({\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 = result.find(item => item.value === this.siteSettings.discourse_reactions_reaction_for_like);\n            if (mainEmoji) {\n              mainEmoji.isEditable = false;\n            }\n          }\n        }\n        return result;\n      }\n      static {\n        dt7948.n(this.prototype, \"collection\", [_tracking.cached]);\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\", ({\n      value: dag,\n      context: {\n        buttonKeys\n      }\n    }) => {\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)(initializeDiscourseReactions);\n      }\n    },\n    teardown() {\n      (0, _discourseReactionsActions.resetCurrentReaction)();\n    }\n  };\n});","define(\"discourse/plugins/discourse-reactions/discourse/initializers/reactions-admin-plugin-configuration-nav\", [\"exports\", \"discourse/lib/plugin-api\"], function (_exports, _pluginApi) {\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  var _default = _exports.default = {\n    name: \"reactions-admin-plugin-configuration-nav\",\n    initialize(container) {\n      const currentUser = container.lookup(\"service:current-user\");\n      if (!currentUser?.admin) {\n        return;\n      }\n      (0, _pluginApi.withPluginApi)(api => {\n        api.setAdminPluginIcon(PLUGIN_ID, \"discourse-emojis\");\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\", [\"exports\", \"@ember/object\", \"discourse/lib/ajax\", \"discourse/lib/text\", \"discourse/lib/utilities\", \"discourse/models/category\", \"discourse/models/post\", \"discourse/models/rest\", \"discourse/models/topic\", \"discourse/models/user\"], function (_exports, _object, _ajax, _text, _utilities, _category, _post, _rest, _topic, _user) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.PAGE_SIZE = void 0;\n  const PAGE_SIZE = _exports.PAGE_SIZE = 20;\n  class CustomReaction extends _rest.default {\n    static toggle(post, reactionId, appEvents) {\n      return (0, _ajax.ajax)(`/discourse-reactions/posts/${post.id}/custom-reactions/${reactionId}/toggle.json`, {\n        type: \"PUT\"\n      }).then(result => {\n        appEvents.trigger(\"discourse-reactions:reaction-toggled\", {\n          post: result,\n          reaction: result.current_user_reaction\n        });\n      });\n    }\n    static flattenForPostList(reaction) {\n      const title = reaction.topic.title;\n      return {\n        // Original reaction data\n        ...reaction,\n        // Preserve reaction_user.id for pagination\n        reaction_user_id: reaction.id,\n        // Flatten post fields to top level for PostListItem\n        id: reaction.post.id,\n        user_id: reaction.post.user_id,\n        username: reaction.post.username,\n        name: reaction.post.name,\n        avatar_template: reaction.post.avatar_template,\n        user_title: reaction.post.user_title,\n        primary_group_name: reaction.post.primary_group_name,\n        excerpt: reaction.post.excerpt,\n        expandedExcerpt: reaction.post.expandedExcerpt,\n        topic_id: reaction.post.topic_id,\n        post_type: reaction.post.post_type,\n        url: reaction.post.url,\n        title,\n        titleHtml: title && (0, _text.emojiUnescape)((0, _utilities.escapeExpression)(title)),\n        category: reaction.category,\n        created_at: reaction.created_at\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.category = _category.default.findById(reaction.post.category_id);\n          const postAttrs = {\n            ...reaction.post\n          };\n\n          // Delete fields auto-calculated by the model implementation\n          delete postAttrs.url;\n          delete postAttrs.user;\n          reaction.post = _post.default.create(postAttrs);\n          reaction.post_user = reaction.post.user;\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\", \"@ember-compat/tracked-built-ins\", \"discourse/routes/discourse\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _trackedBuiltIns, _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    async model() {\n      const list = await _discourseReactionsCustomReaction.default.findReactions(\"reactions\", this.modelFor(\"user\").username);\n      return new _trackedBuiltIns.TrackedArray(list.map(reaction => _discourseReactionsCustomReaction.default.flattenForPostList(reaction)));\n    }\n    setupController(controller, model) {\n      let loadedAll = model.length < _discourseReactionsCustomReaction.PAGE_SIZE;\n      this.controllerFor(\"user-activity.reactions\").setProperties({\n        model,\n        canLoadMore: !loadedAll,\n        reactionsUrl: \"reactions\",\n        username: this.modelFor(\"user\").username\n      });\n    }\n  }\n  _exports.default = UserActivityReactions;\n});","define(\"discourse/plugins/discourse-reactions/discourse/routes/user-notifications/reactions-received\", [\"exports\", \"@ember-compat/tracked-built-ins\", \"discourse/routes/discourse\", \"discourse/plugins/discourse-reactions/discourse/models/discourse-reactions-custom-reaction\"], function (_exports, _trackedBuiltIns, _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    async model(params) {\n      const list = await _discourseReactionsCustomReaction.default.findReactions(\"reactions-received\", this.modelFor(\"user\").get(\"username\"), {\n        actingUsername: params.acting_username,\n        includeLikes: params.include_likes\n      });\n      return new _trackedBuiltIns.TrackedArray(list.map(reaction => _discourseReactionsCustomReaction.default.flattenForPostList(reaction)));\n    }\n    setupController(controller, model) {\n      const loadedAll = model.length < _discourseReactionsCustomReaction.PAGE_SIZE;\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    }\n  }\n  _exports.default = UserNotificationsReactionsReceived;\n});","define(\"discourse/plugins/discourse-reactions/discourse/templates/user-activity/reactions\", [\"exports\", \"discourse/components/post-list\", \"discourse/helpers/hide-application-footer\", \"discourse-i18n\", \"discourse/plugins/discourse-reactions/discourse/components/discourse-reactions-reaction-emoji\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _postList, _hideApplicationFooter, _discourseI18n, _discourseReactionsReactionEmoji, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if @controller.canLoadMore}}\n    {{hideApplicationFooter}}\n  {{/if}}\n  <PostList\n    @posts={{@model}}\n    @fetchMorePosts={{@controller.loadMore}}\n    @emptyText={{i18n \"notifications.empty\"}}\n    @additionalItemClasses=\"user-stream-item\"\n    @titlePath=\"titleHtml\"\n    @showUserInfo={{false}}\n    class=\"user-stream\"\n  >\n    <:abovePostItemExcerpt as |reaction|>\n      <DiscourseReactionsReactionEmoji @reaction={{reaction}} />\n    </:abovePostItemExcerpt>\n  </PostList>\n  */\n  {\n    \"id\": \"LHWxUYGm\",\n    \"block\": \"[[[41,[30,1,[\\\"canLoadMore\\\"]],[[[1,\\\"  \\\"],[1,[32,0]],[1,\\\"\\\\n\\\"]],[]],null],[8,[32,1],[[24,0,\\\"user-stream\\\"]],[[\\\"@posts\\\",\\\"@fetchMorePosts\\\",\\\"@emptyText\\\",\\\"@additionalItemClasses\\\",\\\"@titlePath\\\",\\\"@showUserInfo\\\"],[[30,2],[30,1,[\\\"loadMore\\\"]],[28,[32,2],[\\\"notifications.empty\\\"],null],\\\"user-stream-item\\\",\\\"titleHtml\\\",false]],[[\\\"abovePostItemExcerpt\\\"],[[[[1,\\\"\\\\n    \\\"],[8,[32,3],null,[[\\\"@reaction\\\"],[[30,3]]],null],[1,\\\"\\\\n  \\\"]],[3]]]]]],[\\\"@controller\\\",\\\"@model\\\",\\\"reaction\\\"],[\\\"if\\\"]]\",\n    \"moduleName\": \"/root/prime/srv/discourse/app/frontend/discourse/discourse/plugins/discourse-reactions/discourse/templates/user-activity/reactions.js\",\n    \"scope\": () => [_hideApplicationFooter.default, _postList.default, _discourseI18n.i18n, _discourseReactionsReactionEmoji.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"reactions\"));\n});"],"mappings":"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","ignoreList":[]}