{"version":3,"file":"discourse-topic-voting.js","names":["define","_exports","Object","defineProperty","value","default","resource","path","map","this","route","resetNamespace","_pluginApi","_navItem","_discourseI18n","name","initialize","withPluginApi","api","container","lookup","topic_voting_enabled","sortOrders","pushObject","i18n","id","term","addNavigationBarItem","before","customFilter","category","can_vote","customHref","args","pathFor","forceActive","router","queryParams","currentRoute","keys","length","getCurrentUser","addSearchSuggestion","registerValueTransformer","_ref","context","customFields","enable_topic_voting","push","addPostClassesCallback","post","post_number","addTrackedPostProperties","addTagsHtmlCallback","topic","buffer","title","user_voted","userVotedClass","url","vote_count","count","join","priority","addCategorySortCriteria","addBehaviorTransformerName","_userAction","_userTopicList","UserActivityVotes","userActionType","TYPES","topics","model","store","findFiltered","filter","modelFor","get","then","set","emptyState","user","isCurrentUser","username","body","_templateFactory","createTemplateFactory","block","moduleName","isStrictMode","_iconLibrary","_widget","createWidget","tagName","buildClasses","html","iconNode","click","sendWidgetAction","_ajax","_ajaxError","_rawHtml","buildKey","siteSettings","topic_voting_show_who_voted","defaultState","allowClick","initialVote","attrs","state","contents","attach","votesAlert","currentUser","hideVotesAlert","scheduleRerender","clickOutside","addVote","ajax","type","data","topic_id","result","setProperties","votes_exceeded","votes_left","alert","who_voted","catch","popupAjaxError","removeVote","_virtualDom","_cookie","_transformer","buttonClass","closed","buildButtonTitle","h","attributes","className","applyBehaviorTransformer","window","location","href","parentWidget","document","querySelector","classList","toggle","add","_getUrl","whoVotedUsers","voteCount","toString","whoVoted","users","addSelf","liked","listClassName","getWhoVoted","whoVotedElement","style","display","whoVotedAvatars","template","avatar_template","post_url","toLowerCase"],"sources":["discourse/plugins/discourse-topic-voting/discourse/feature-voting-route-map.js","discourse/plugins/discourse-topic-voting/discourse/initializers/discourse-topic-voting.js","discourse/plugins/discourse-topic-voting/discourse/pre-initializers/extend-category-for-voting.js","discourse/plugins/discourse-topic-voting/discourse/pre-initializers/transformers.js","discourse/plugins/discourse-topic-voting/discourse/routes/user-activity-votes.js","discourse/plugins/discourse-topic-voting/discourse/templates/connectors/category-custom-settings/feature-voting-settings.js","discourse/plugins/discourse-topic-voting/discourse/templates/connectors/topic-above-post-stream/topic-title-voting.js","discourse/plugins/discourse-topic-voting/discourse/templates/connectors/user-activity-bottom/user-voted-topics.js","discourse/plugins/discourse-topic-voting/discourse/widgets/remove-vote.js","discourse/plugins/discourse-topic-voting/discourse/widgets/vote-box.js","discourse/plugins/discourse-topic-voting/discourse/widgets/vote-button.js","discourse/plugins/discourse-topic-voting/discourse/widgets/vote-count.js","discourse/plugins/discourse-topic-voting/discourse/widgets/vote-options.js"],"sourcesContent":["define(\"discourse/plugins/discourse-topic-voting/discourse/feature-voting-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\",\n path: \"users/:username\",\n map() {\n this.route(\"userActivity\", {\n path: \"activity\",\n resetNamespace: true\n }, function () {\n this.route(\"votes\");\n });\n }\n };\n});","define(\"discourse/plugins/discourse-topic-voting/discourse/initializers/discourse-topic-voting\", [\"exports\", \"discourse/lib/plugin-api\", \"discourse/models/nav-item\", \"discourse-i18n\"], function (_exports, _pluginApi, _navItem, _discourseI18n) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _default = _exports.default = {\n name: \"discourse-topic-voting\",\n initialize() {\n (0, _pluginApi.withPluginApi)(\"0.8.32\", api => {\n const siteSettings = api.container.lookup(\"service:site-settings\");\n if (siteSettings.topic_voting_enabled) {\n const pageSearchController = api.container.lookup(\"controller:full-page-search\");\n pageSearchController.sortOrders.pushObject({\n name: (0, _discourseI18n.i18n)(\"search.most_votes\"),\n id: 5,\n term: \"order:votes\"\n });\n api.addNavigationBarItem({\n name: \"votes\",\n before: \"top\",\n customFilter: category => {\n return category && category.can_vote;\n },\n customHref: (category, args) => {\n const path = _navItem.default.pathFor(\"latest\", args);\n return `${path}?order=votes`;\n },\n forceActive: (category, args, router) => {\n const queryParams = router.currentRoute.queryParams;\n return queryParams && Object.keys(queryParams).length === 1 && queryParams[\"order\"] === \"votes\";\n }\n });\n api.addNavigationBarItem({\n name: \"my_votes\",\n before: \"top\",\n customFilter: category => {\n return category && category.can_vote && api.getCurrentUser();\n },\n customHref: (category, args) => {\n const path = _navItem.default.pathFor(\"latest\", args);\n return `${path}?state=my_votes`;\n },\n forceActive: (category, args, router) => {\n const queryParams = router.currentRoute.queryParams;\n return queryParams && Object.keys(queryParams).length === 1 && queryParams[\"state\"] === \"my_votes\";\n }\n });\n }\n });\n (0, _pluginApi.withPluginApi)(\"0.11.7\", api => {\n const siteSettings = api.container.lookup(\"service:site-settings\");\n if (siteSettings.topic_voting_enabled) {\n api.addSearchSuggestion(\"order:votes\");\n }\n });\n (0, _pluginApi.withPluginApi)(\"2.1.0\", api => {\n api.registerValueTransformer(\"category-available-views\", _ref => {\n let {\n value,\n context\n } = _ref;\n if (context.customFields.enable_topic_voting) {\n value.push({\n name: (0, _discourseI18n.i18n)(\"filters.votes.title\"),\n value: \"votes\"\n });\n }\n });\n });\n }\n };\n});","define(\"discourse/plugins/discourse-topic-voting/discourse/pre-initializers/extend-category-for-voting\", [\"exports\", \"discourse/lib/plugin-api\", \"discourse-i18n\"], function (_exports, _pluginApi, _discourseI18n) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n function initialize(api) {\n api.addPostClassesCallback(post => {\n if (post.post_number === 1 && post.can_vote) {\n return [\"voting-post\"];\n }\n });\n api.addTrackedPostProperties(\"can_vote\");\n api.addTagsHtmlCallback(topic => {\n if (!topic.can_vote) {\n return;\n }\n let buffer = [];\n let title = \"\";\n if (topic.user_voted) {\n title = ` title='${(0, _discourseI18n.i18n)(\"topic_voting.voted\")}'`;\n }\n let userVotedClass = topic.user_voted ? \" voted\" : \"\";\n buffer.push(``);\n buffer.push((0, _discourseI18n.i18n)(\"topic_voting.votes\", {\n count: topic.vote_count\n }));\n buffer.push(\"\");\n if (buffer.length > 0) {\n return buffer.join(\"\");\n }\n }, {\n priority: -100\n });\n }\n var _default = _exports.default = {\n name: \"extend-category-for-voting\",\n before: \"inject-discourse-objects\",\n initialize() {\n (0, _pluginApi.withPluginApi)(\"0.8.4\", api => initialize(api));\n (0, _pluginApi.withPluginApi)(\"0.8.30\", api => api.addCategorySortCriteria(\"votes\"));\n }\n };\n});","define(\"discourse/plugins/discourse-topic-voting/discourse/pre-initializers/transformers\", [\"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 var _default = _exports.default = {\n name: \"discourse-topic-voting-transformers\",\n before: \"freeze-valid-transformers\",\n initialize() {\n (0, _pluginApi.withPluginApi)(\"1.35.0\", api => {\n api.addBehaviorTransformerName(\"topic-vote-button-click\");\n });\n }\n };\n});","define(\"discourse/plugins/discourse-topic-voting/discourse/routes/user-activity-votes\", [\"exports\", \"discourse/models/user-action\", \"discourse/routes/user-topic-list\", \"discourse-i18n\"], function (_exports, _userAction, _userTopicList, _discourseI18n) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n class UserActivityVotes extends _userTopicList.default {\n userActionType = (() => _userAction.default.TYPES.topics)();\n model() {\n return this.store.findFiltered(\"topicList\", {\n filter: \"topics/voted-by/\" + this.modelFor(\"user\").get(\"username_lower\")\n }).then(model => {\n model.set(\"emptyState\", this.emptyState());\n return model;\n });\n }\n emptyState() {\n const user = this.modelFor(\"user\");\n const title = this.isCurrentUser(user) ? (0, _discourseI18n.i18n)(\"topic_voting.no_votes_title_self\") : (0, _discourseI18n.i18n)(\"topic_voting.no_votes_title_others\", {\n username: user.username\n });\n return {\n title,\n body: \"\"\n };\n }\n }\n _exports.default = UserActivityVotes;\n});","define(\"discourse/plugins/discourse-topic-voting/discourse/templates/connectors/category-custom-settings/feature-voting-settings\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n /*\n