{"version":3,"file":"poll.js","names":["define","_exports","_component","_object","_service","_string","_template","_ajax","_ajaxError","_loadScript","_decorators","_discourseI18n","_templateFactory","Object","defineProperty","value","default","__COLOCATED_TEMPLATE__","createTemplateFactory","id","block","moduleName","isStrictMode","PollBreakdownModal","static","dt7948","g","this","prototype","service","dialog","i","model","charts","groupedBy","highlightedOption","displayMode","init","set","groupableUserFields","then","fetchGroupedPollData","super","arguments","title","pollTitle","topicTitle","htmlSafe","n","fields","map","field","transformed","split","filter","Boolean","length","classify","label","join","totalVotes","options","reduce","sum","option","votes","ajax","data","post_id","post","poll_name","poll","name","user_field_name","catch","error","popupAjaxError","alert","t","result","isDestroying","isDestroyed","grouped_results","setGrouping","action","onSelectPanel","panel","setComponentTemplate","_computed","_object2","REGULAR_POLL_TYPE","RANKED_CHOICE_POLL_TYPE","PIE_CHART_TYPE","NUMBER_POLL_TYPE","MULTIPLE_POLL_TYPE","BAR_CHART_TYPE","ALWAYS_POLL_RESULT","PollUiBuilderModal","siteSettings","showAdvanced","pollType","pollOptions","create","pollOptionsText","pollMin","pollMax","pollStep","pollGroups","pollAutoClose","pollResult","chartType","publicPoll","poll_default_public","or","showNumber","showRankedChoice","gt","canRemoveOption","rankedChoiceOrRegular","rankedChoiceOrNumber","pollResults","staff","push","isRegular","isNumber","isMultiple","isRankedChoice","pollOptionsCount","siteGroups","groups","isPie","_setPollMinMax","poll_maximum_options","observes","pollOutput","pollHeader","output","match","toolbarEvent","getText","step","toISOString","trim","forEach","minNumOfOptionsValidation","failed","reason","count","ok","showMinNumOfOptionsValidation","minMaxValueValidation","parseInt","optionsCount","disableInsert","_comboboxOptions","startIndex","endIndex","Array","keys","number","onOptionsTextChange","e","target","insertPoll","addText","closeModal","toggleAdvanced","toggleProperty","x","updateValue","event","onInputKeydown","index","key","preventDefault","stopPropagation","addOption","atIndex","insertAt","removeOption","removeObject","updatePollType","togglePublic","_runloop","_template2","_component2","_chartColors","_pollUiBuilder","PollBreakdownChart","c","group","setHighlightedOption","mapBy","_optionToSlice","_previousHighlightedSliceIndex","_previousDisplayMode","didInsertElement","canvas1","element","querySelector","_chart","window","Chart","getContext","chartConfig","didReceiveAttrs","_updateDisplayMode","_updateHighlight","willDestroy","destroy","colorStyle","optionColors1","index1","data1","displayMode1","transformedData1","counter1","votes1","totalVotes1","sum1","colors1","getColors","color1","type","plugins","ChartDataLabels","datasets","backgroundColor","hoverBorderColor","tooltip","datalabels","color","borderRadius","font","family","getComputedStyle","document","body","fontFamily","size","padding","top","right","bottom","left","formatter","toNumber","precision","responsive","aspectRatio","animation","duration","onHover","event1","activeElements1","next","sliceIndex1","optionIndex1","find","option1","Number","config1","update","undefined","datasetIndex","setActiveElements","classNames","_modifier","_computed2","_i18n","PollBreakdownOption","onMouseOver","onMouseOut","propertyEqual","highlighted","equal","showPercentage","percent","total1","optionColors","optionsCount1","colorBackgroundStyle","highlighted1","colorPreviewStyle","helpers","getHoverColor","scope","on","tagName","_helper","_dButton","_dropdownMenu","_dIcon","_dMenu","buttonOptionsMap","className","icon","PollButtonsDropdownComponent","currentUser","constructor","getDropdownButtonState","dropDownClick","dropDownAction1","args","getDropdownContent","contents1","isAdmin1","admin","dataExplorerEnabled1","data_explorer_enabled","exportQueryID1","poll_export_ranked_choice_data_explorer_query_id","poll_export_data_explorer_query_id","closed","closed1","voters","voters1","isStaff","isStaff1","isMe","isMe1","topicArchived","topicArchived1","groupableUserFields1","isAutomaticallyClosed","isAutomaticallyClosed1","showDropdown","showDropdownAsButton","fn","get","_formatter","STAFF_ONLY","PollInfoComponent","multipleHelpText","min","min1","max","max1","options1","votersLabel","showTotalVotes","showResults","o1","totalVotesLabel","automaticCloseAgeLabel","age","automaticCloseClosesInLabel","timeLeft","showMultipleHelpText","closeTitle","closeDate1","moment","utc","close","isValid","format","relativeAge","toDate","addAgo","to","resultsOnVote","results","hasVoted","postUserId","resultsOnVoteTitle","resultsOnClose","resultsOnCloseTitle","resultsStaffOnly","resultsStaffOnlyTitle","publicTitle","isPublic","publicTitleLabel","showInstructionsSection","_tracking","PollOptionsDropdownComponent","tracked","rank","onRegisterApi","api1","dMenu","selectRank","rank1","sendRank","rankLabel","_routeAction","_pollOptionRankedChoiceDropdown","PollOptionsComponent","_concatClass","_pollOptionRankedChoice","isChosen","includes","sendClick","sendOptionSelect","_didInsert","_emberModifier","PollResultsPieComponent","htmlLegendPlugin","afterUpdate","chart1","args1","ul1","getElementById","containerID","innerHTML","legend","labels","generateLabels","item1","li1","createElement","classList","add","onclick","toggleDataVisibility","boxSpan1","style","background","fillStyle","textContainer1","fontColor","text","getDataVisibility","opacity","appendChild","stripHtml","html1","DOMParser","parseFromString","textContent","pieChartConfig","_this","labels1","opts1","aspectRatio1","strippedLabels1","l1","text1","display","htmlLegend","legendContainerId","registerLegendElement","modifier","element1","legendElement","registerCanvasElement","canvasElement","canvasId","legendId","drawPie","el1","PollResultsRankedChoiceComponent","rankedChoiceWinnerText","rankedChoiceOutcome","round_activity","winner","winning_candidate","html","rankedChoiceTiedText","_evenRound","_pollVoters","PollResultsStandardComponent","orderOptions","sort","a1","b1","getPercentages","ordered1","votersCount1","fill","roundPercentages","percentages1","Math","floor","enrichOptions","rounded1","idx1","per1","toString","chosen1","vote","percentage","chosen","votersCount","orderedOptions","roundedPercentages1","concat","_truthHelpers","_pollResultsRankedChoice","_pollResultsStandard","TabsComponent","activeTab","tabOne","tabTwo","tabs","tabs1","selectTab","tab1","eq","_boundAvatarTemplate","PollVotersComponent","groupVotersByRank","groups1","voter1","rankedChoiceVoters","groupedByRank1","_conditionalLoadingSpinner","_pollVotersRankedChoice","showMore","_didUpdate","_round","_pollBreakdown","_pollButtonsDropdown","_pollInfo","_pollOptions","_pollResultsPie","_pollResultsTabs","RANKED_CHOICE","PollComponent","appEvents","router","modal","attrs","titleHTML","preloadedVoters","ranked_choice_outcome","isMultiVoteType","staffOnly","showingResults","hasSavedVote","status","user_id","checkUserGroups","user1","poll1","pollGroups1","g1","toLowerCase","userGroups1","some","castVotes","canCastVotes","_ref","setProperties","trigger","error1","_toggleOption","areRanksValid","arr1","ranks1","Set","hasNonZeroDuplicate1","obj1","has","vote1","chosenIdx1","indexOf","splice","candidate1","i1","findIndex","object1","digest","rankedChoiceDropdownContent","isNaN","numOptions1","hideResultsDisabled","toggleOption","removeVote","toggleResults","showResults1","selectedOptionCount1","notInVotingGroup","showCastVotesButton","castVotesButtonClass","castVotesButtonIcon","castVotesDisabled","showHideResultsButton","showShowResultsButton","showRemoveVoteButton","isCheckbox","resultsWidgetTypeClass","type1","chart_type","resultsPie","averageRating","totalScore1","average1","average","updatedVoters","specificVote1","fetchVoters","optionId1","loading","option_id","page","limit","result1","newVoters1","votersSet1","username","otherOptionId1","finally","_ref2","toggleStatus","yesNoConfirm","message","didConfirm","status1","showBreakdown","show","exportResults","queryID1","params","JSON","stringify","explain","download","csvContent1","downloadLink1","blob1","Blob","href","URL","createObjectURL","setAttribute","click","remove","_pluginApi","initializePollUIBuilder","api","addComposerToolbarPopupMenuOption","container","lookup","condition","composer","getCurrentUser","poll_enabled","topic","pm_with_non_human_user","can_create_poll","initialize","withPluginApi","_glue","_getOwner","PLUGIN_ID","_glued","_interval","rerender","queueRerender","cleanUpPolls","clearInterval","cleanUp","initializePolls","register","getRegister","pollGroupableUserFields","poll_groupable_user_fields","modifyClass","p","pluginId","subscribe","_super","messageBus","_onPollMessage","unsubscribe","msg","findLoadedPost","polls","bind","_polls","pollsObject","pollsChanged","includePostAttributes","decorateCookedElement","elem","helper","pollNodes","querySelectorAll","node","parentNode","getModel","preventCloak","polls_votes","setInterval","pollNode","pollName","dataset","pollPost","quotedId","closest","postId","quoted","findBy","titleElement","outerHTML","_postCookedWidget","widget","glue","appendTo","onlyStream","cleanupStream","addSearchSuggestion","_renderGlimmer","_widget","createWidget","buildKey","services","buildAttributes","cssClasses","class","preloaded_voters","palette","gradient","currentGradientValue","previousGradientIndex","gradientKeys","colors","colorIndex","baseGradientKeyIndex","y","differenceMultiplier","k","round","setup","allowList","registerOptions","opts","features","pollMaximumOptions","registerPlugin","md","bbcode","ruler","rule","DATA_PREFIX","DEFAULT_POLL","ALLOWED_ATTRIBUTES","addPollContainer","state","titleTokens","pollTokens","token","tokens","listItemCloseIndex","j","slice","content","hash","rhex","hex","s","unescape","encodeURI","md5cycle","md5blk","substring","tail","charCodeAt","md51","tag","before","poll_attrs","after","openToken","openTokenIndex","idx","discourse","Token","String","addNumberListItems","endsWith","addPollInfo","a","b","d","ff","gg","hh","ii","add32","cmn","q","md5blks","hex_chr","sumsUpTo100","percentages","decimals","sumOfDecimals","ceil","greatest"],"sources":["discourse/plugins/poll/discourse/components/modal/poll-breakdown.js","discourse/plugins/poll/discourse/components/modal/poll-ui-builder.js","discourse/plugins/poll/discourse/components/poll-breakdown-chart.js","discourse/plugins/poll/discourse/components/poll-breakdown-option.js","discourse/plugins/poll/discourse/components/poll-buttons-dropdown.js","discourse/plugins/poll/discourse/components/poll-info.js","discourse/plugins/poll/discourse/components/poll-option-ranked-choice-dropdown.js","discourse/plugins/poll/discourse/components/poll-option-ranked-choice.js","discourse/plugins/poll/discourse/components/poll-options.js","discourse/plugins/poll/discourse/components/poll-results-pie.js","discourse/plugins/poll/discourse/components/poll-results-ranked-choice.js","discourse/plugins/poll/discourse/components/poll-results-standard.js","discourse/plugins/poll/discourse/components/poll-results-tabs.js","discourse/plugins/poll/discourse/components/poll-voters-ranked-choice.js","discourse/plugins/poll/discourse/components/poll-voters.js","discourse/plugins/poll/discourse/components/poll.js","discourse/plugins/poll/discourse/initializers/add-poll-ui-builder.js","discourse/plugins/poll/discourse/initializers/extend-for-poll.js","discourse/plugins/poll/discourse/widgets/discourse-poll.js","discourse/plugins/poll/lib/chart-colors.js","discourse/plugins/poll/lib/discourse-markdown/poll.js","discourse/plugins/poll/lib/even-round.js"],"sourcesContent":["define(\"discourse/plugins/poll/discourse/components/modal/poll-breakdown\", [\"exports\", \"@ember/component\", \"@ember/object\", \"@ember/service\", \"@ember/string\", \"@ember/template\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/load-script\", \"discourse-common/utils/decorators\", \"discourse-i18n\", \"@ember/template-factory\"], function (_exports, _component, _object, _service, _string, _template, _ajax, _ajaxError, _loadScript, _decorators, _discourseI18n, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{! template-lint-disable no-invalid-interactive }}\n  <DModal\n    @title={{i18n \"poll.breakdown.title\"}}\n    @closeModal={{@closeModal}}\n    class=\"poll-breakdown has-tabs\"\n  >\n    <:headerBelowTitle>\n      <ul class=\"modal-tabs\">\n        <li\n          class={{concat-class\n            \"modal-tab percentage\"\n            (if (eq this.displayMode \"percentage\") \"is-active\")\n          }}\n          {{on \"click\" (fn (mut this.displayMode) \"percentage\")}}\n        >{{i18n \"poll.breakdown.percentage\"}}</li>\n        <li\n          class={{concat-class\n            \"modal-tab count\"\n            (if (eq this.displayMode \"count\") \"is-active\")\n          }}\n          {{on \"click\" (fn (mut this.displayMode) \"count\")}}\n        >{{i18n \"poll.breakdown.count\"}}</li>\n      </ul>\n    </:headerBelowTitle>\n    <:body>\n      <div class=\"poll-breakdown-sidebar\">\n        <p class=\"poll-breakdown-title\">\n          {{this.title}}\n        </p>\n  \n        <div class=\"poll-breakdown-total-votes\">{{i18n\n            \"poll.breakdown.votes\"\n            count=this.model.poll.voters\n          }}</div>\n  \n        <ul class=\"poll-breakdown-options\">\n          {{#each this.model.poll.options as |option index|}}\n            <PollBreakdownOption\n              @option={{option}}\n              @index={{index}}\n              @totalVotes={{this.totalVotes}}\n              @optionsCount={{this.model.poll.options.length}}\n              @displayMode={{this.displayMode}}\n              @highlightedOption={{this.highlightedOption}}\n              @onMouseOver={{fn (mut this.highlightedOption) index}}\n              @onMouseOut={{fn (mut this.highlightedOption) null}}\n            />\n          {{/each}}\n        </ul>\n      </div>\n  \n      <div class=\"poll-breakdown-body\">\n        <div class=\"poll-breakdown-body-header\">\n          <label class=\"poll-breakdown-body-header-label\">{{i18n\n              \"poll.breakdown.breakdown\"\n            }}</label>\n  \n          <ComboBox\n            @content={{this.groupableUserFields}}\n            @value={{this.groupedBy}}\n            @nameProperty=\"label\"\n            @onChange={{this.setGrouping}}\n            class=\"poll-breakdown-dropdown\"\n          />\n        </div>\n  \n        <div class=\"poll-breakdown-charts\">\n          {{#each this.charts as |chart|}}\n            <PollBreakdownChart\n              @group={{get chart \"group\"}}\n              @options={{get chart \"options\"}}\n              @displayMode={{this.displayMode}}\n              @highlightedOption={{this.highlightedOption}}\n              @setHighlightedOption={{fn (mut this.highlightedOption)}}\n            />\n          {{/each}}\n        </div>\n      </div>\n    </:body>\n  </DModal>\n  */\n  {\n    \"id\": \"YRvkhP/Q\",\n    \"block\": \"[[[8,[39,0],[[24,0,\\\"poll-breakdown has-tabs\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\"],[[28,[37,1],[\\\"poll.breakdown.title\\\"],null],[30,1]]],[[\\\"headerBelowTitle\\\",\\\"body\\\"],[[[[1,\\\"\\\\n    \\\"],[10,\\\"ul\\\"],[14,0,\\\"modal-tabs\\\"],[12],[1,\\\"\\\\n      \\\"],[11,\\\"li\\\"],[16,0,[28,[37,2],[\\\"modal-tab percentage\\\",[52,[28,[37,4],[[30,0,[\\\"displayMode\\\"]],\\\"percentage\\\"],null],\\\"is-active\\\"]],null]],[4,[38,5],[\\\"click\\\",[28,[37,6],[[28,[37,7],[[30,0,[\\\"displayMode\\\"]]],null],\\\"percentage\\\"],null]],null],[12],[1,[28,[35,1],[\\\"poll.breakdown.percentage\\\"],null]],[13],[1,\\\"\\\\n      \\\"],[11,\\\"li\\\"],[16,0,[28,[37,2],[\\\"modal-tab count\\\",[52,[28,[37,4],[[30,0,[\\\"displayMode\\\"]],\\\"count\\\"],null],\\\"is-active\\\"]],null]],[4,[38,5],[\\\"click\\\",[28,[37,6],[[28,[37,7],[[30,0,[\\\"displayMode\\\"]]],null],\\\"count\\\"],null]],null],[12],[1,[28,[35,1],[\\\"poll.breakdown.count\\\"],null]],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[]],[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"poll-breakdown-sidebar\\\"],[12],[1,\\\"\\\\n      \\\"],[10,2],[14,0,\\\"poll-breakdown-title\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[30,0,[\\\"title\\\"]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"poll-breakdown-total-votes\\\"],[12],[1,[28,[35,1],[\\\"poll.breakdown.votes\\\"],[[\\\"count\\\"],[[30,0,[\\\"model\\\",\\\"poll\\\",\\\"voters\\\"]]]]]],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,\\\"ul\\\"],[14,0,\\\"poll-breakdown-options\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,9],[[28,[37,9],[[30,0,[\\\"model\\\",\\\"poll\\\",\\\"options\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[8,[39,10],null,[[\\\"@option\\\",\\\"@index\\\",\\\"@totalVotes\\\",\\\"@optionsCount\\\",\\\"@displayMode\\\",\\\"@highlightedOption\\\",\\\"@onMouseOver\\\",\\\"@onMouseOut\\\"],[[30,2],[30,3],[30,0,[\\\"totalVotes\\\"]],[30,0,[\\\"model\\\",\\\"poll\\\",\\\"options\\\",\\\"length\\\"]],[30,0,[\\\"displayMode\\\"]],[30,0,[\\\"highlightedOption\\\"]],[28,[37,6],[[28,[37,7],[[30,0,[\\\"highlightedOption\\\"]]],null],[30,3]],null],[28,[37,6],[[28,[37,7],[[30,0,[\\\"highlightedOption\\\"]]],null],null],null]]],null],[1,\\\"\\\\n\\\"]],[2,3]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[10,0],[14,0,\\\"poll-breakdown-body\\\"],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"poll-breakdown-body-header\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[14,0,\\\"poll-breakdown-body-header-label\\\"],[12],[1,[28,[35,1],[\\\"poll.breakdown.breakdown\\\"],null]],[13],[1,\\\"\\\\n\\\\n        \\\"],[8,[39,11],[[24,0,\\\"poll-breakdown-dropdown\\\"]],[[\\\"@content\\\",\\\"@value\\\",\\\"@nameProperty\\\",\\\"@onChange\\\"],[[30,0,[\\\"groupableUserFields\\\"]],[30,0,[\\\"groupedBy\\\"]],\\\"label\\\",[30,0,[\\\"setGrouping\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"poll-breakdown-charts\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,9],[[28,[37,9],[[30,0,[\\\"charts\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[8,[39,12],null,[[\\\"@group\\\",\\\"@options\\\",\\\"@displayMode\\\",\\\"@highlightedOption\\\",\\\"@setHighlightedOption\\\"],[[28,[37,13],[[30,4],\\\"group\\\"],null],[28,[37,13],[[30,4],\\\"options\\\"],null],[30,0,[\\\"displayMode\\\"]],[30,0,[\\\"highlightedOption\\\"]],[28,[37,6],[[28,[37,7],[[30,0,[\\\"highlightedOption\\\"]]],null]],null]]],null],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[]]]]]],[\\\"@closeModal\\\",\\\"option\\\",\\\"index\\\",\\\"chart\\\"],false,[\\\"d-modal\\\",\\\"i18n\\\",\\\"concat-class\\\",\\\"if\\\",\\\"eq\\\",\\\"on\\\",\\\"fn\\\",\\\"mut\\\",\\\"each\\\",\\\"-track-array\\\",\\\"poll-breakdown-option\\\",\\\"combo-box\\\",\\\"poll-breakdown-chart\\\",\\\"get\\\"]]\",\n    \"moduleName\": \"discourse/plugins/poll/discourse/components/modal/poll-breakdown.hbs\",\n    \"isStrictMode\": false\n  });\n  class PollBreakdownModal extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"dialog\", [_service.service]))();\n    #dialog = (() => (dt7948.i(this, \"dialog\"), void 0))();\n    model = null;\n    charts = null;\n    groupedBy = null;\n    highlightedOption = null;\n    displayMode = \"percentage\";\n    init() {\n      this.set(\"groupedBy\", this.model.groupableUserFields[0]);\n      (0, _loadScript.default)(\"/javascripts/Chart.min.js\").then(() => (0, _loadScript.default)(\"/javascripts/chartjs-plugin-datalabels.min.js\")).then(() => {\n        this.fetchGroupedPollData();\n      });\n      super.init(...arguments);\n    }\n    title(pollTitle, topicTitle) {\n      return pollTitle ? (0, _template.htmlSafe)(pollTitle) : topicTitle;\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"title\", [(0, _decorators.default)(\"model.poll.title\", \"model.post.topic.title\")]))();\n    groupableUserFields(fields) {\n      return fields.map(field => {\n        const transformed = field.split(\"_\").filter(Boolean);\n        if (transformed.length > 1) {\n          transformed[0] = (0, _string.classify)(transformed[0]);\n        }\n        return {\n          id: field,\n          label: transformed.join(\" \")\n        };\n      });\n    }\n    static #_3 = (() => dt7948.n(this.prototype, \"groupableUserFields\", [(0, _decorators.default)(\"model.groupableUserFields\")]))();\n    totalVotes(options) {\n      return options.reduce((sum, option) => sum + option.votes, 0);\n    }\n    static #_4 = (() => dt7948.n(this.prototype, \"totalVotes\", [(0, _decorators.default)(\"model.poll.options\")]))();\n    fetchGroupedPollData() {\n      return (0, _ajax.ajax)(\"/polls/grouped_poll_results.json\", {\n        data: {\n          post_id: this.model.post.id,\n          poll_name: this.model.poll.name,\n          user_field_name: this.groupedBy\n        }\n      }).catch(error => {\n        if (error) {\n          (0, _ajaxError.popupAjaxError)(error);\n        } else {\n          this.dialog.alert(_discourseI18n.default.t(\"poll.error_while_fetching_voters\"));\n        }\n      }).then(result => {\n        if (this.isDestroying || this.isDestroyed) {\n          return;\n        }\n        this.set(\"charts\", result.grouped_results);\n      });\n    }\n    setGrouping(value) {\n      this.set(\"groupedBy\", value);\n      this.fetchGroupedPollData();\n    }\n    static #_5 = (() => dt7948.n(this.prototype, \"setGrouping\", [_object.action]))();\n    onSelectPanel(panel) {\n      this.set(\"displayMode\", panel.id);\n    }\n    static #_6 = (() => dt7948.n(this.prototype, \"onSelectPanel\", [_object.action]))();\n  }\n  _exports.default = PollBreakdownModal;\n  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, PollBreakdownModal);\n});","define(\"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", [\"exports\", \"@ember/component\", \"@ember/object\", \"@ember/object/computed\", \"@ember/service\", \"@ember-decorators/object\", \"discourse-common/utils/decorators\", \"discourse-i18n\", \"@ember/template-factory\"], function (_exports, _component, _object, _computed, _service, _object2, _decorators, _discourseI18n, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.REGULAR_POLL_TYPE = _exports.RANKED_CHOICE_POLL_TYPE = _exports.PIE_CHART_TYPE = _exports.NUMBER_POLL_TYPE = _exports.MULTIPLE_POLL_TYPE = _exports.BAR_CHART_TYPE = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <DModal\n    @title={{i18n \"poll.ui_builder.title\"}}\n    @closeModal={{@closeModal}}\n    @inline={{@inline}}\n    class=\"poll-ui-builder\"\n  >\n    <:body>\n      <ul class=\"nav nav-pills poll-type\">\n        <li>\n          <DButton\n            @action={{fn this.updatePollType \"regular\"}}\n            class={{concatClass\n              \"poll-type-value poll-type-value-regular\"\n              (if this.isRegular \"active\")\n            }}\n          >\n            {{i18n \"poll.ui_builder.poll_type.regular\"}}\n          </DButton>\n        </li>\n        <li>\n          <DButton\n            @action={{fn this.updatePollType \"multiple\"}}\n            class={{concatClass\n              \"poll-type-value poll-type-value-multiple\"\n              (if this.isMultiple \"active\")\n            }}\n          >\n            {{i18n \"poll.ui_builder.poll_type.multiple\"}}\n          </DButton>\n        </li>\n        {{#if this.showNumber}}\n          <li>\n            <DButton\n              @action={{fn this.updatePollType \"number\"}}\n              class={{concatClass\n                \"poll-type-value poll-type-value-number\"\n                (if this.isNumber \"active\")\n              }}\n            >\n              {{i18n \"poll.ui_builder.poll_type.number\"}}\n            </DButton>\n          </li>\n        {{/if}}\n        {{#if this.showRankedChoice}}\n          <li>\n            <DButton\n              @action={{fn this.updatePollType \"ranked_choice\"}}\n              class={{concatClass\n                \"poll-type-value poll-type-value-ranked-choice\"\n                (if this.isRankedChoice \"active\")\n              }}\n            >\n              {{i18n \"poll.ui_builder.poll_type.ranked_choice\"}}\n            </DButton>\n          </li>\n        {{/if}}\n      </ul>\n  \n      {{#if this.showAdvanced}}\n        <div class=\"input-group poll-title\">\n          <label class=\"input-group-label\">{{i18n\n              \"poll.ui_builder.poll_title.label\"\n            }}</label>\n          <Input @value={{this.pollTitle}} />\n        </div>\n      {{/if}}\n  \n      {{#unless this.isNumber}}\n        <div class=\"poll-options\">\n          {{#if this.showAdvanced}}\n            <label class=\"input-group-label\">{{i18n\n                \"poll.ui_builder.poll_options.label\"\n              }}</label>\n            <Textarea\n              @value={{this.pollOptionsText}}\n              {{on \"input\" this.onOptionsTextChange}}\n            />\n            {{#if this.showMinNumOfOptionsValidation}}\n              {{#unless this.minNumOfOptionsValidation.ok}}\n                <InputTip @validation={{this.minNumOfOptionsValidation}} />\n              {{/unless}}\n            {{/if}}\n          {{else}}\n            {{#each this.pollOptions as |option index|}}\n              <div class=\"input-group poll-option-value\">\n                <input\n                  type=\"text\"\n                  value={{option.value}}\n                  {{auto-focus}}\n                  {{on \"input\" (fn this.updateValue option)}}\n                  {{on \"keydown\" (fn this.onInputKeydown index)}}\n                />\n                {{#if this.canRemoveOption}}\n                  <DButton\n                    @icon=\"trash-alt\"\n                    @action={{fn this.removeOption option}}\n                  />\n                {{/if}}\n              </div>\n            {{/each}}\n  \n            <div class=\"poll-option-controls\">\n              <DButton\n                @icon=\"plus\"\n                @label=\"poll.ui_builder.poll_options.add\"\n                @action={{fn this.addOption -1}}\n                class=\"btn-default poll-option-add\"\n              />\n              {{#if\n                (and\n                  this.showMinNumOfOptionsValidation\n                  (not this.minNumOfOptionsValidation.ok)\n                )\n              }}\n                <InputTip @validation={{this.minNumOfOptionsValidation}} />\n              {{/if}}\n            </div>\n          {{/if}}\n        </div>\n      {{/unless}}\n  \n      {{#unless this.rankedChoiceOrRegular}}\n        <div class=\"options\">\n          <div class=\"input-group poll-number\">\n            <label class=\"input-group-label\">{{i18n\n                \"poll.ui_builder.poll_config.min\"\n              }}</label>\n            <Input\n              @type=\"number\"\n              @value={{this.pollMin}}\n              class=\"poll-options-min\"\n              min=\"1\"\n            />\n          </div>\n  \n          <div class=\"input-group poll-number\">\n            <label class=\"input-group-label\">{{i18n\n                \"poll.ui_builder.poll_config.max\"\n              }}</label>\n            <Input\n              @type=\"number\"\n              @value={{this.pollMax}}\n              class=\"poll-options-max\"\n              min=\"1\"\n            />\n          </div>\n  \n          {{#if this.isNumber}}\n            <div class=\"input-group poll-number\">\n              <label class=\"input-group-label\">{{i18n\n                  \"poll.ui_builder.poll_config.step\"\n                }}</label>\n              <Input\n                @type=\"number\"\n                @value={{this.pollStep}}\n                min=\"1\"\n                class=\"poll-options-step\"\n              />\n            </div>\n          {{/if}}\n        </div>\n  \n        {{#unless this.minMaxValueValidation.ok}}\n          <InputTip @validation={{this.minMaxValueValidation}} />\n        {{/unless}}\n      {{/unless}}\n  \n      <div class=\"input-group poll-public\">\n        <DToggleSwitch\n          @state={{this.publicPoll}}\n          @label=\"poll.ui_builder.poll_public.label\"\n          class=\"poll-toggle-public\"\n          {{on \"click\" this.togglePublic}}\n        />\n      </div>\n  \n      {{#if this.showAdvanced}}\n        <div class=\"input-group poll-allowed-groups\">\n          <label class=\"input-group-label\">{{i18n\n              \"poll.ui_builder.poll_groups.label\"\n            }}</label>\n          <GroupChooser\n            @content={{this.siteGroups}}\n            @value={{this.pollGroups}}\n            @onChange={{fn (mut this.pollGroups)}}\n            @labelProperty=\"name\"\n            @valueProperty=\"name\"\n          />\n        </div>\n  \n        <div class=\"input-group poll-date\">\n          <label class=\"input-group-label\">{{i18n\n              \"poll.ui_builder.automatic_close.label\"\n            }}</label>\n          <DateTimeInput\n            @date={{this.pollAutoClose}}\n            @onChange={{fn (mut this.pollAutoClose)}}\n            @clearable={{true}}\n            @useGlobalPickerContainer={{true}}\n          />\n        </div>\n  \n        <div class=\"input-group poll-select\">\n          <label class=\"input-group-label\">{{i18n\n              \"poll.ui_builder.poll_result.label\"\n            }}</label>\n          <ComboBox\n            @content={{this.pollResults}}\n            @value={{this.pollResult}}\n            @valueProperty=\"value\"\n            @onChange={{fn (mut this.pollResult)}}\n            class=\"poll-result\"\n          />\n        </div>\n  \n        {{#unless this.rankedChoiceOrNumber}}\n          <div class=\"input-group poll-select column\">\n            <label class=\"input-group-label\">{{i18n\n                \"poll.ui_builder.poll_chart_type.label\"\n              }}</label>\n  \n            <div class=\"radio-group\">\n              <RadioButton\n                @id=\"poll-chart-type-bar\"\n                @name=\"poll-chart-type\"\n                @value=\"bar\"\n                @selection={{this.chartType}}\n              />\n              <label for=\"poll-chart-type-bar\">{{d-icon \"chart-bar\"}}\n                {{i18n \"poll.ui_builder.poll_chart_type.bar\"}}</label>\n            </div>\n  \n            <div class=\"radio-group\">\n              <RadioButton\n                @id=\"poll-chart-type-pie\"\n                @name=\"poll-chart-type\"\n                @value=\"pie\"\n                @selection={{this.chartType}}\n              />\n              <label for=\"poll-chart-type-pie\">{{d-icon \"chart-pie\"}}\n                {{i18n \"poll.ui_builder.poll_chart_type.pie\"}}</label>\n            </div>\n          </div>\n        {{/unless}}\n      {{/if}}\n    </:body>\n    <:footer>\n      <DButton\n        @action={{this.insertPoll}}\n        @icon=\"chart-bar\"\n        @label=\"poll.ui_builder.insert\"\n        @disabled={{this.disableInsert}}\n        class=\"btn-primary insert-poll\"\n      />\n  \n      <DButton @label=\"cancel\" @action={{@closeModal}} class=\"btn-flat\" />\n  \n      <DButton\n        @action={{this.toggleAdvanced}}\n        @icon=\"cog\"\n        @title={{if\n          this.showAdvanced\n          \"poll.ui_builder.hide_advanced\"\n          \"poll.ui_builder.show_advanced\"\n        }}\n        class=\"btn-default show-advanced\"\n      />\n  \n    </:footer>\n  </DModal>\n  */\n  {\n    \"id\": \"e6ThmDt/\",\n    \"block\": \"[[[8,[39,0],[[24,0,\\\"poll-ui-builder\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\",\\\"@inline\\\"],[[28,[37,1],[\\\"poll.ui_builder.title\\\"],null],[30,1],[30,2]]],[[\\\"body\\\",\\\"footer\\\"],[[[[1,\\\"\\\\n    \\\"],[10,\\\"ul\\\"],[14,0,\\\"nav nav-pills poll-type\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[39,2],[[16,0,[28,[37,3],[\\\"poll-type-value poll-type-value-regular\\\",[52,[30,0,[\\\"isRegular\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[37,5],[[30,0,[\\\"updatePollType\\\"]],\\\"regular\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[1,[28,[35,1],[\\\"poll.ui_builder.poll_type.regular\\\"],null]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[39,2],[[16,0,[28,[37,3],[\\\"poll-type-value poll-type-value-multiple\\\",[52,[30,0,[\\\"isMultiple\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[37,5],[[30,0,[\\\"updatePollType\\\"]],\\\"multiple\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[1,[28,[35,1],[\\\"poll.ui_builder.poll_type.multiple\\\"],null]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showNumber\\\"]],[[[1,\\\"        \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[39,2],[[16,0,[28,[37,3],[\\\"poll-type-value poll-type-value-number\\\",[52,[30,0,[\\\"isNumber\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[37,5],[[30,0,[\\\"updatePollType\\\"]],\\\"number\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[1,[28,[35,1],[\\\"poll.ui_builder.poll_type.number\\\"],null]],[1,\\\"\\\\n          \\\"]],[]]]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,0,[\\\"showRankedChoice\\\"]],[[[1,\\\"        \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[39,2],[[16,0,[28,[37,3],[\\\"poll-type-value poll-type-value-ranked-choice\\\",[52,[30,0,[\\\"isRankedChoice\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[37,5],[[30,0,[\\\"updatePollType\\\"]],\\\"ranked_choice\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[1,[28,[35,1],[\\\"poll.ui_builder.poll_type.ranked_choice\\\"],null]],[1,\\\"\\\\n          \\\"]],[]]]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"showAdvanced\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"input-group poll-title\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_title.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[39,6],null,[[\\\"@value\\\"],[[30,0,[\\\"pollTitle\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[51,[30,0,[\\\"isNumber\\\"]]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"poll-options\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showAdvanced\\\"]],[[[1,\\\"          \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_options.label\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[8,[39,8],[[4,[38,9],[\\\"input\\\",[30,0,[\\\"onOptionsTextChange\\\"]]],null]],[[\\\"@value\\\"],[[30,0,[\\\"pollOptionsText\\\"]]]],null],[1,\\\"\\\"],[41,[30,0,[\\\"showMinNumOfOptionsValidation\\\"]],[[[41,[51,[30,0,[\\\"minNumOfOptionsValidation\\\",\\\"ok\\\"]]],[[[1,\\\"              \\\"],[8,[39,10],null,[[\\\"@validation\\\"],[[30,0,[\\\"minNumOfOptionsValidation\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[]],null]],[]],[[[42,[28,[37,12],[[28,[37,12],[[30,0,[\\\"pollOptions\\\"]]],null]],null],null,[[[1,\\\"            \\\"],[10,0],[14,0,\\\"input-group poll-option-value\\\"],[12],[1,\\\"\\\\n              \\\"],[11,\\\"input\\\"],[16,2,[30,3,[\\\"value\\\"]]],[24,4,\\\"text\\\"],[4,[38,13],null,null],[4,[38,9],[\\\"input\\\",[28,[37,5],[[30,0,[\\\"updateValue\\\"]],[30,3]],null]],null],[4,[38,9],[\\\"keydown\\\",[28,[37,5],[[30,0,[\\\"onInputKeydown\\\"]],[30,4]],null]],null],[12],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"canRemoveOption\\\"]],[[[1,\\\"                \\\"],[8,[39,2],null,[[\\\"@icon\\\",\\\"@action\\\"],[\\\"trash-alt\\\",[28,[37,5],[[30,0,[\\\"removeOption\\\"]],[30,3]],null]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"            \\\"],[13],[1,\\\"\\\\n\\\"]],[3,4]],null],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"poll-option-controls\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,2],[[24,0,\\\"btn-default poll-option-add\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"plus\\\",\\\"poll.ui_builder.poll_options.add\\\",[28,[37,5],[[30,0,[\\\"addOption\\\"]],-1],null]]],null],[1,\\\"\\\\n\\\"],[41,[28,[37,14],[[30,0,[\\\"showMinNumOfOptionsValidation\\\"]],[28,[37,15],[[30,0,[\\\"minNumOfOptionsValidation\\\",\\\"ok\\\"]]],null]],null],[[[1,\\\"              \\\"],[8,[39,10],null,[[\\\"@validation\\\"],[[30,0,[\\\"minNumOfOptionsValidation\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[51,[30,0,[\\\"rankedChoiceOrRegular\\\"]]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"options\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"input-group poll-number\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_config.min\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[8,[39,6],[[24,0,\\\"poll-options-min\\\"],[24,\\\"min\\\",\\\"1\\\"]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"number\\\",[30,0,[\\\"pollMin\\\"]]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,0],[14,0,\\\"input-group poll-number\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_config.max\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[8,[39,6],[[24,0,\\\"poll-options-max\\\"],[24,\\\"min\\\",\\\"1\\\"]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"number\\\",[30,0,[\\\"pollMax\\\"]]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"isNumber\\\"]],[[[1,\\\"          \\\"],[10,0],[14,0,\\\"input-group poll-number\\\"],[12],[1,\\\"\\\\n            \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_config.step\\\"],null]],[13],[1,\\\"\\\\n            \\\"],[8,[39,6],[[24,\\\"min\\\",\\\"1\\\"],[24,0,\\\"poll-options-step\\\"]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"number\\\",[30,0,[\\\"pollStep\\\"]]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[51,[30,0,[\\\"minMaxValueValidation\\\",\\\"ok\\\"]]],[[[1,\\\"        \\\"],[8,[39,10],null,[[\\\"@validation\\\"],[[30,0,[\\\"minMaxValueValidation\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"input-group poll-public\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[39,16],[[24,0,\\\"poll-toggle-public\\\"],[4,[38,9],[\\\"click\\\",[30,0,[\\\"togglePublic\\\"]]],null]],[[\\\"@state\\\",\\\"@label\\\"],[[30,0,[\\\"publicPoll\\\"]],\\\"poll.ui_builder.poll_public.label\\\"]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"showAdvanced\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"input-group poll-allowed-groups\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_groups.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[39,17],null,[[\\\"@content\\\",\\\"@value\\\",\\\"@onChange\\\",\\\"@labelProperty\\\",\\\"@valueProperty\\\"],[[30,0,[\\\"siteGroups\\\"]],[30,0,[\\\"pollGroups\\\"]],[28,[37,5],[[28,[37,18],[[30,0,[\\\"pollGroups\\\"]]],null]],null],\\\"name\\\",\\\"name\\\"]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"input-group poll-date\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.automatic_close.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[39,19],null,[[\\\"@date\\\",\\\"@onChange\\\",\\\"@clearable\\\",\\\"@useGlobalPickerContainer\\\"],[[30,0,[\\\"pollAutoClose\\\"]],[28,[37,5],[[28,[37,18],[[30,0,[\\\"pollAutoClose\\\"]]],null]],null],true,true]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"input-group poll-select\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_result.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[39,20],[[24,0,\\\"poll-result\\\"]],[[\\\"@content\\\",\\\"@value\\\",\\\"@valueProperty\\\",\\\"@onChange\\\"],[[30,0,[\\\"pollResults\\\"]],[30,0,[\\\"pollResult\\\"]],\\\"value\\\",[28,[37,5],[[28,[37,18],[[30,0,[\\\"pollResult\\\"]]],null]],null]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[51,[30,0,[\\\"rankedChoiceOrNumber\\\"]]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"input-group poll-select column\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[35,1],[\\\"poll.ui_builder.poll_chart_type.label\\\"],null]],[13],[1,\\\"\\\\n\\\\n          \\\"],[10,0],[14,0,\\\"radio-group\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,21],null,[[\\\"@id\\\",\\\"@name\\\",\\\"@value\\\",\\\"@selection\\\"],[\\\"poll-chart-type-bar\\\",\\\"poll-chart-type\\\",\\\"bar\\\",[30,0,[\\\"chartType\\\"]]]],null],[1,\\\"\\\\n            \\\"],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"poll-chart-type-bar\\\"],[12],[1,[28,[35,22],[\\\"chart-bar\\\"],null]],[1,\\\"\\\\n              \\\"],[1,[28,[35,1],[\\\"poll.ui_builder.poll_chart_type.bar\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\\n          \\\"],[10,0],[14,0,\\\"radio-group\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,21],null,[[\\\"@id\\\",\\\"@name\\\",\\\"@value\\\",\\\"@selection\\\"],[\\\"poll-chart-type-pie\\\",\\\"poll-chart-type\\\",\\\"pie\\\",[30,0,[\\\"chartType\\\"]]]],null],[1,\\\"\\\\n            \\\"],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"poll-chart-type-pie\\\"],[12],[1,[28,[35,22],[\\\"chart-pie\\\"],null]],[1,\\\"\\\\n              \\\"],[1,[28,[35,1],[\\\"poll.ui_builder.poll_chart_type.pie\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\"  \\\"]],[]],[[[1,\\\"\\\\n    \\\"],[8,[39,2],[[24,0,\\\"btn-primary insert-poll\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\",\\\"@disabled\\\"],[[30,0,[\\\"insertPoll\\\"]],\\\"chart-bar\\\",\\\"poll.ui_builder.insert\\\",[30,0,[\\\"disableInsert\\\"]]]],null],[1,\\\"\\\\n\\\\n    \\\"],[8,[39,2],[[24,0,\\\"btn-flat\\\"]],[[\\\"@label\\\",\\\"@action\\\"],[\\\"cancel\\\",[30,1]]],null],[1,\\\"\\\\n\\\\n    \\\"],[8,[39,2],[[24,0,\\\"btn-default show-advanced\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@title\\\"],[[30,0,[\\\"toggleAdvanced\\\"]],\\\"cog\\\",[52,[30,0,[\\\"showAdvanced\\\"]],\\\"poll.ui_builder.hide_advanced\\\",\\\"poll.ui_builder.show_advanced\\\"]]],null],[1,\\\"\\\\n\\\\n  \\\"]],[]]]]]],[\\\"@closeModal\\\",\\\"@inline\\\",\\\"option\\\",\\\"index\\\"],false,[\\\"d-modal\\\",\\\"i18n\\\",\\\"d-button\\\",\\\"concatClass\\\",\\\"if\\\",\\\"fn\\\",\\\"input\\\",\\\"unless\\\",\\\"textarea\\\",\\\"on\\\",\\\"input-tip\\\",\\\"each\\\",\\\"-track-array\\\",\\\"auto-focus\\\",\\\"and\\\",\\\"not\\\",\\\"d-toggle-switch\\\",\\\"group-chooser\\\",\\\"mut\\\",\\\"date-time-input\\\",\\\"combo-box\\\",\\\"radio-button\\\",\\\"d-icon\\\"]]\",\n    \"moduleName\": \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder.hbs\",\n    \"isStrictMode\": false\n  });\n  const BAR_CHART_TYPE = _exports.BAR_CHART_TYPE = \"bar\";\n  const PIE_CHART_TYPE = _exports.PIE_CHART_TYPE = \"pie\";\n  const REGULAR_POLL_TYPE = _exports.REGULAR_POLL_TYPE = \"regular\";\n  const NUMBER_POLL_TYPE = _exports.NUMBER_POLL_TYPE = \"number\";\n  const MULTIPLE_POLL_TYPE = _exports.MULTIPLE_POLL_TYPE = \"multiple\";\n  const RANKED_CHOICE_POLL_TYPE = _exports.RANKED_CHOICE_POLL_TYPE = \"ranked_choice\";\n  const ALWAYS_POLL_RESULT = \"always\";\n  const VOTE_POLL_RESULT = \"on_vote\";\n  const CLOSED_POLL_RESULT = \"on_close\";\n  const STAFF_POLL_RESULT = \"staff_only\";\n  class PollUiBuilderModal extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n    #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n    showAdvanced = false;\n    pollType = (() => REGULAR_POLL_TYPE)();\n    pollTitle;\n    pollOptions = (() => [_object.default.create({\n      value: \"\"\n    })])();\n    pollOptionsText = \"\";\n    pollMin = 1;\n    pollMax = 2;\n    pollStep = 1;\n    pollGroups;\n    pollAutoClose;\n    pollResult = (() => ALWAYS_POLL_RESULT)();\n    chartType = (() => BAR_CHART_TYPE)();\n    publicPoll = this.siteSettings.poll_default_public;\n    static #_2 = (() => dt7948.g(this.prototype, \"showNumber\", [(0, _computed.or)(\"showAdvanced\", \"isNumber\")]))();\n    #showNumber = (() => (dt7948.i(this, \"showNumber\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"showRankedChoice\", [(0, _computed.or)(\"showAdvanced\", \"isRankedChoice\")]))();\n    #showRankedChoice = (() => (dt7948.i(this, \"showRankedChoice\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"canRemoveOption\", [(0, _computed.gt)(\"pollOptions.length\", 1)]))();\n    #canRemoveOption = (() => (dt7948.i(this, \"canRemoveOption\"), void 0))();\n    static #_5 = (() => dt7948.g(this.prototype, \"rankedChoiceOrRegular\", [(0, _computed.or)(\"isRankedChoice\", \"isRegular\")]))();\n    #rankedChoiceOrRegular = (() => (dt7948.i(this, \"rankedChoiceOrRegular\"), void 0))();\n    static #_6 = (() => dt7948.g(this.prototype, \"rankedChoiceOrNumber\", [(0, _computed.or)(\"isRankedChoice\", \"isNumber\")]))();\n    #rankedChoiceOrNumber = (() => (dt7948.i(this, \"rankedChoiceOrNumber\"), void 0))();\n    pollResults(staff) {\n      const options = [{\n        name: _discourseI18n.default.t(\"poll.ui_builder.poll_result.always\"),\n        value: ALWAYS_POLL_RESULT\n      }, {\n        name: _discourseI18n.default.t(\"poll.ui_builder.poll_result.vote\"),\n        value: VOTE_POLL_RESULT\n      }, {\n        name: _discourseI18n.default.t(\"poll.ui_builder.poll_result.closed\"),\n        value: CLOSED_POLL_RESULT\n      }];\n      if (staff) {\n        options.push({\n          name: _discourseI18n.default.t(\"poll.ui_builder.poll_result.staff\"),\n          value: STAFF_POLL_RESULT\n        });\n      }\n      return options;\n    }\n    static #_7 = (() => dt7948.n(this.prototype, \"pollResults\", [(0, _decorators.default)(\"currentUser.staff\")]))();\n    isRegular(pollType) {\n      return pollType === REGULAR_POLL_TYPE;\n    }\n    static #_8 = (() => dt7948.n(this.prototype, \"isRegular\", [(0, _decorators.default)(\"pollType\")]))();\n    isNumber(pollType) {\n      return pollType === NUMBER_POLL_TYPE;\n    }\n    static #_9 = (() => dt7948.n(this.prototype, \"isNumber\", [(0, _decorators.default)(\"pollType\")]))();\n    isMultiple(pollType) {\n      return pollType === MULTIPLE_POLL_TYPE;\n    }\n    static #_10 = (() => dt7948.n(this.prototype, \"isMultiple\", [(0, _decorators.default)(\"pollType\")]))();\n    isRankedChoice(pollType) {\n      return pollType === RANKED_CHOICE_POLL_TYPE;\n    }\n    static #_11 = (() => dt7948.n(this.prototype, \"isRankedChoice\", [(0, _decorators.default)(\"pollType\")]))();\n    pollOptionsCount(pollOptions) {\n      return (pollOptions || []).filter(option => option.value.length > 0).length;\n    }\n    static #_12 = (() => dt7948.n(this.prototype, \"pollOptionsCount\", [(0, _decorators.default)(\"pollOptions.@each.value\")]))();\n    siteGroups(groups) {\n      // prevents group \"everyone\" to be listed\n      return groups.filter(g => g.id !== 0);\n    }\n    static #_13 = (() => dt7948.n(this.prototype, \"siteGroups\", [(0, _decorators.default)(\"site.groups\")]))();\n    isPie(chartType, pollType) {\n      return pollType !== NUMBER_POLL_TYPE && chartType === PIE_CHART_TYPE;\n    }\n    static #_14 = (() => dt7948.n(this.prototype, \"isPie\", [(0, _decorators.default)(\"chartType\", \"pollType\")]))();\n    _setPollMinMax() {\n      if (this.isMultiple) {\n        if (this.pollMin <= 0 || this.pollMin >= this.pollMax || this.pollMin >= this.pollOptionsCount) {\n          this.set(\"pollMin\", this.pollOptionsCount > 0 ? 1 : 0);\n        }\n        if (this.pollMax <= 0 || this.pollMin >= this.pollMax || this.pollMax > this.pollOptionsCount) {\n          this.set(\"pollMax\", this.pollOptionsCount);\n        }\n      } else if (this.isNumber) {\n        this.set(\"pollMax\", this.siteSettings.poll_maximum_options);\n      }\n    }\n    static #_15 = (() => dt7948.n(this.prototype, \"_setPollMinMax\", [(0, _object2.observes)(\"pollType\", \"pollOptionsCount\")]))();\n    pollOutput(pollType, pollResult, publicPoll, pollTitle, pollOptions, pollMin, pollMax, pollStep, pollGroups, pollAutoClose, chartType) {\n      let pollHeader = \"[poll\";\n      let output = \"\";\n      const match = this.model.toolbarEvent.getText().match(/\\[poll(\\s+name=[^\\s\\]]+)*.*\\]/gim);\n      if (match) {\n        pollHeader += ` name=poll${match.length + 1}`;\n      }\n      let step = pollStep;\n      if (step < 1) {\n        step = 1;\n      }\n      if (pollType) {\n        pollHeader += ` type=${pollType}`;\n      }\n      if (pollResult) {\n        pollHeader += ` results=${pollResult}`;\n      }\n      if (pollMin && pollType !== REGULAR_POLL_TYPE) {\n        pollHeader += ` min=${pollMin}`;\n      }\n      if (pollMax && pollType !== REGULAR_POLL_TYPE) {\n        pollHeader += ` max=${pollMax}`;\n      }\n      if (pollType === NUMBER_POLL_TYPE) {\n        pollHeader += ` step=${step}`;\n      }\n      pollHeader += ` public=${publicPoll ? \"true\" : \"false\"}`;\n      if (chartType && pollType !== NUMBER_POLL_TYPE) {\n        pollHeader += ` chartType=${chartType}`;\n      }\n      if (pollGroups && pollGroups.length > 0) {\n        pollHeader += ` groups=${pollGroups}`;\n      }\n      if (pollAutoClose) {\n        pollHeader += ` close=${pollAutoClose.toISOString()}`;\n      }\n      pollHeader += \"]\";\n      output += `${pollHeader}\\n`;\n      if (pollTitle) {\n        output += `# ${pollTitle.trim()}\\n`;\n      }\n      if (pollOptions.length > 0 && pollType !== NUMBER_POLL_TYPE) {\n        pollOptions.forEach(option => {\n          if (option.value.length > 0) {\n            output += `* ${option.value.trim()}\\n`;\n          }\n        });\n      }\n      output += \"[/poll]\\n\";\n      return output;\n    }\n    static #_16 = (() => dt7948.n(this.prototype, \"pollOutput\", [(0, _decorators.default)(\"pollType\", \"pollResult\", \"publicPoll\", \"pollTitle\", \"pollOptions.@each.value\", \"pollMin\", \"pollMax\", \"pollStep\", \"pollGroups\", \"pollAutoClose\", \"chartType\")]))();\n    minNumOfOptionsValidation(isNumber, pollOptionsCount) {\n      let options = {\n        ok: true\n      };\n      if (!isNumber) {\n        if (pollOptionsCount < 1) {\n          return _object.default.create({\n            failed: true,\n            reason: _discourseI18n.default.t(\"poll.ui_builder.help.options_min_count\")\n          });\n        }\n        if (pollOptionsCount > this.siteSettings.poll_maximum_options) {\n          return _object.default.create({\n            failed: true,\n            reason: _discourseI18n.default.t(\"poll.ui_builder.help.options_max_count\", {\n              count: this.siteSettings.poll_maximum_options\n            })\n          });\n        }\n      }\n      return _object.default.create(options);\n    }\n    static #_17 = (() => dt7948.n(this.prototype, \"minNumOfOptionsValidation\", [(0, _decorators.default)(\"isNumber\", \"pollOptionsCount\")]))();\n    showMinNumOfOptionsValidation(pollOptions) {\n      return pollOptions.length !== 1 || pollOptions[0].value !== \"\";\n    }\n    static #_18 = (() => dt7948.n(this.prototype, \"showMinNumOfOptionsValidation\", [(0, _decorators.default)(\"pollOptions.@each.value\")]))();\n    minMaxValueValidation(isMultiple, pollOptionsCount, isNumber, pollMin, pollMax, pollStep) {\n      pollMin = parseInt(pollMin, 10) || 0;\n      pollMax = parseInt(pollMax, 10) || 0;\n      pollStep = parseInt(pollStep, 10) || 0;\n      if (pollMin < 0) {\n        return _object.default.create({\n          failed: true,\n          reason: _discourseI18n.default.t(\"poll.ui_builder.help.invalid_min_value\")\n        });\n      }\n      if (pollMax < 0 || isMultiple && pollMax > pollOptionsCount) {\n        return _object.default.create({\n          failed: true,\n          reason: _discourseI18n.default.t(\"poll.ui_builder.help.invalid_max_value\")\n        });\n      }\n      if (pollMin > pollMax) {\n        return _object.default.create({\n          failed: true,\n          reason: _discourseI18n.default.t(\"poll.ui_builder.help.invalid_values\")\n        });\n      }\n      if (isNumber) {\n        if (pollStep < 1) {\n          return _object.default.create({\n            failed: true,\n            reason: _discourseI18n.default.t(\"poll.ui_builder.help.min_step_value\")\n          });\n        }\n        const optionsCount = (pollMax - pollMin + 1) / pollStep;\n        if (optionsCount < 1) {\n          return _object.default.create({\n            failed: true,\n            reason: _discourseI18n.default.t(\"poll.ui_builder.help.options_min_count\")\n          });\n        }\n        if (optionsCount > this.siteSettings.poll_maximum_options) {\n          return _object.default.create({\n            failed: true,\n            reason: _discourseI18n.default.t(\"poll.ui_builder.help.options_max_count\", {\n              count: this.siteSettings.poll_maximum_options\n            })\n          });\n        }\n      }\n      return _object.default.create({\n        ok: true\n      });\n    }\n    static #_19 = (() => dt7948.n(this.prototype, \"minMaxValueValidation\", [(0, _decorators.default)(\"isMultiple\", \"pollOptionsCount\", \"isNumber\", \"pollMin\", \"pollMax\", \"pollStep\")]))();\n    disableInsert(minMaxValueValidation, minNumOfOptionsValidation) {\n      return !minMaxValueValidation.ok || !minNumOfOptionsValidation.ok;\n    }\n    static #_20 = (() => dt7948.n(this.prototype, \"disableInsert\", [(0, _decorators.default)(\"minMaxValueValidation\", \"minNumOfOptionsValidation\")]))();\n    _comboboxOptions(startIndex, endIndex) {\n      return [...Array(endIndex - startIndex).keys()].map(number => ({\n        value: number + startIndex,\n        name: number + startIndex\n      }));\n    }\n    onOptionsTextChange(e) {\n      this.set(\"pollOptions\", e.target.value.split(\"\\n\").map(value => _object.default.create({\n        value\n      })));\n    }\n    static #_21 = (() => dt7948.n(this.prototype, \"onOptionsTextChange\", [_object.action]))();\n    insertPoll() {\n      this.model.toolbarEvent.addText(this.pollOutput);\n      this.closeModal();\n    }\n    static #_22 = (() => dt7948.n(this.prototype, \"insertPoll\", [_object.action]))();\n    toggleAdvanced() {\n      this.toggleProperty(\"showAdvanced\");\n      if (this.showAdvanced) {\n        this.set(\"pollOptionsText\", this.pollOptions.map(x => x.value).join(\"\\n\"));\n      }\n    }\n    static #_23 = (() => dt7948.n(this.prototype, \"toggleAdvanced\", [_object.action]))();\n    updateValue(option, event) {\n      option.set(\"value\", event.target.value);\n    }\n    static #_24 = (() => dt7948.n(this.prototype, \"updateValue\", [_object.action]))();\n    onInputKeydown(index, event) {\n      if (event.key === \"Enter\") {\n        event.preventDefault();\n        event.stopPropagation();\n        if (event.target.value !== \"\") {\n          this.addOption(index + 1);\n        }\n      }\n    }\n    static #_25 = (() => dt7948.n(this.prototype, \"onInputKeydown\", [_object.action]))();\n    addOption(atIndex) {\n      if (atIndex === -1) {\n        atIndex = this.pollOptions.length;\n      }\n      const option = _object.default.create({\n        value: \"\"\n      });\n      this.pollOptions.insertAt(atIndex, option);\n    }\n    static #_26 = (() => dt7948.n(this.prototype, \"addOption\", [_object.action]))();\n    removeOption(option) {\n      this.pollOptions.removeObject(option);\n    }\n    static #_27 = (() => dt7948.n(this.prototype, \"removeOption\", [_object.action]))();\n    updatePollType(pollType, event) {\n      event?.preventDefault();\n      this.set(\"pollType\", pollType);\n    }\n    static #_28 = (() => dt7948.n(this.prototype, \"updatePollType\", [_object.action]))();\n    togglePublic() {\n      this.set(\"publicPoll\", !this.publicPoll);\n    }\n    static #_29 = (() => dt7948.n(this.prototype, \"togglePublic\", [_object.action]))();\n  }\n  _exports.default = PollUiBuilderModal;\n  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, PollUiBuilderModal);\n});","define(\"discourse/plugins/poll/discourse/components/poll-breakdown-chart\", [\"exports\", \"@ember/component\", \"@ember/object/computed\", \"@ember/runloop\", \"@ember/template\", \"@ember-decorators/component\", \"discourse-common/utils/decorators\", \"discourse-i18n\", \"discourse/plugins/poll/lib/chart-colors\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", \"@ember/template-factory\"], function (_exports, _component, _computed, _runloop, _template2, _component2, _decorators, _discourseI18n, _chartColors, _pollUiBuilder, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PollBreakdownChart = dt7948.c(class PollBreakdownChart extends _component.default {\n    // Arguments:\n    group = null;\n    options = null;\n    displayMode = null;\n    highlightedOption = null;\n    setHighlightedOption = null;\n    static #_ = (() => dt7948.g(this.prototype, \"data\", [(0, _computed.mapBy)(\"options\", \"votes\")]))();\n    #data = (() => (dt7948.i(this, \"data\"), void 0))();\n    _optionToSlice = null;\n    _previousHighlightedSliceIndex = null;\n    _previousDisplayMode = null;\n    init() {\n      super.init(...arguments);\n      this._optionToSlice = {};\n    }\n    didInsertElement() {\n      super.didInsertElement(...arguments);\n      const canvas1 = this.element.querySelector(\"canvas\");\n      this._chart = new window.Chart(canvas1.getContext(\"2d\"), this.chartConfig);\n    }\n    didReceiveAttrs() {\n      super.didReceiveAttrs(...arguments);\n      if (this._chart) {\n        this._updateDisplayMode();\n        this._updateHighlight();\n      }\n    }\n    willDestroy() {\n      super.willDestroy(...arguments);\n      if (this._chart) {\n        this._chart.destroy();\n      }\n    }\n    colorStyle(optionColors1, index1) {\n      return (0, _template2.htmlSafe)(`background: ${optionColors1[index1]};`);\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"colorStyle\", [(0, _decorators.default)(\"optionColors\", \"index\")]))();\n    chartConfig(data1, displayMode1) {\n      const transformedData1 = [];\n      let counter1 = 0;\n      this._optionToSlice = {};\n      data1.forEach((votes1, index1) => {\n        if (votes1 > 0) {\n          transformedData1.push(votes1);\n          this._optionToSlice[index1] = counter1++;\n        }\n      });\n      const totalVotes1 = transformedData1.reduce((sum1, votes1) => sum1 + votes1, 0);\n      const colors1 = (0, _chartColors.getColors)(data1.length).filter((color1, index1) => data1[index1] > 0);\n      return {\n        type: _pollUiBuilder.PIE_CHART_TYPE,\n        plugins: [window.ChartDataLabels],\n        data: {\n          datasets: [{\n            data: transformedData1,\n            backgroundColor: colors1,\n            // TODO: It's a workaround for Chart.js' terrible hover styling.\n            // It will break on non-white backgrounds.\n            // Should be updated after #10341 lands\n            hoverBorderColor: \"#fff\"\n          }]\n        },\n        options: {\n          plugins: {\n            tooltip: false,\n            datalabels: {\n              color: \"#333\",\n              backgroundColor: \"rgba(255, 255, 255, 0.5)\",\n              borderRadius: 2,\n              font: {\n                family: getComputedStyle(document.body).fontFamily,\n                size: 16\n              },\n              padding: {\n                top: 2,\n                right: 6,\n                bottom: 2,\n                left: 6\n              },\n              formatter(votes1) {\n                if (displayMode1 !== \"percentage\") {\n                  return votes1;\n                }\n                const percent1 = _discourseI18n.default.toNumber(votes1 / totalVotes1 * 100.0, {\n                  precision: 1\n                });\n                return `${percent1}%`;\n              }\n            }\n          },\n          responsive: true,\n          aspectRatio: 1.1,\n          animation: {\n            duration: 0\n          },\n          // wrapping setHighlightedOption in next block as hover can create many events\n          // prevents two sets to happen in the same computation\n          onHover: (event1, activeElements1) => {\n            if (!activeElements1.length) {\n              (0, _runloop.next)(() => {\n                this.setHighlightedOption(null);\n              });\n              return;\n            }\n            const sliceIndex1 = activeElements1[0].index;\n            const optionIndex1 = Object.keys(this._optionToSlice).find(option1 => this._optionToSlice[option1] === sliceIndex1);\n            (0, _runloop.next)(() => {\n              this.setHighlightedOption(Number(optionIndex1));\n            });\n          }\n        }\n      };\n    }\n    static #_3 = (() => dt7948.n(this.prototype, \"chartConfig\", [(0, _decorators.default)(\"data\", \"displayMode\")]))();\n    _updateDisplayMode() {\n      if (this.displayMode !== this._previousDisplayMode) {\n        const config1 = this.chartConfig;\n        this._chart.data.datasets = config1.data.datasets;\n        this._chart.options = config1.options;\n        this._chart.update();\n        this._previousDisplayMode = this.displayMode;\n      }\n    }\n    _updateHighlight() {\n      const activeElements1 = [];\n      if (this.highlightedOption) {\n        const index1 = this._optionToSlice[this.highlightedOption];\n        if (index1 !== undefined) {\n          activeElements1.push({\n            datasetIndex: 0,\n            index: index1\n          });\n        }\n      }\n      this._chart.setActiveElements(activeElements1);\n      this._chart.update();\n    }\n    static #_4 = (() => (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <label class=\"poll-breakdown-chart-label\">{{@group}}</label>\n        <canvas class=\"poll-breakdown-chart-chart\"></canvas>\n      \n    */\n    {\n      \"id\": \"klaQjbbB\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"label\\\"],[14,0,\\\"poll-breakdown-chart-label\\\"],[12],[1,[30,1]],[13],[1,\\\"\\\\n    \\\"],[10,\\\"canvas\\\"],[14,0,\\\"poll-breakdown-chart-chart\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[\\\"@group\\\"],false,[]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-breakdown-chart.js\",\n      \"isStrictMode\": true\n    }), this))();\n  }, [(0, _component2.classNames)(\"poll-breakdown-chart-container\")]);\n  var _default = _exports.default = PollBreakdownChart;\n});","define(\"discourse/plugins/poll/discourse/components/poll-breakdown-option\", [\"exports\", \"@ember/component\", \"@ember/modifier\", \"@ember/object/computed\", \"@ember/template\", \"@ember-decorators/component\", \"discourse/lib/computed\", \"discourse-common/helpers/i18n\", \"discourse-common/utils/decorators\", \"discourse-i18n\", \"discourse/plugins/poll/lib/chart-colors\", \"@ember/template-factory\"], function (_exports, _component, _modifier, _computed, _template2, _component2, _computed2, _i18n, _decorators, _discourseI18n, _chartColors, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PollBreakdownOption = dt7948.c(class PollBreakdownOption extends _component.default {\n    // Arguments:\n    option = null;\n    index = null;\n    totalVotes = null;\n    optionsCount = null;\n    displayMode = null;\n    highlightedOption = null;\n    onMouseOver = null;\n    onMouseOut = null;\n    static #_ = (() => dt7948.g(this.prototype, \"highlighted\", [(0, _computed2.propertyEqual)(\"highlightedOption\", \"index\")]))();\n    #highlighted = (() => (dt7948.i(this, \"highlighted\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"showPercentage\", [(0, _computed.equal)(\"displayMode\", \"percentage\")]))();\n    #showPercentage = (() => (dt7948.i(this, \"showPercentage\"), void 0))();\n    percent(votes1, total1) {\n      return _discourseI18n.default.toNumber(votes1 / total1 * 100.0, {\n        precision: 1\n      });\n    }\n    static #_3 = (() => dt7948.n(this.prototype, \"percent\", [(0, _decorators.default)(\"option.votes\", \"totalVotes\")]))();\n    optionColors(optionsCount1) {\n      return (0, _chartColors.getColors)(optionsCount1);\n    }\n    static #_4 = (() => dt7948.n(this.prototype, \"optionColors\", [(0, _decorators.default)(\"optionsCount\")]))();\n    colorBackgroundStyle(highlighted1) {\n      if (highlighted1) {\n        // TODO: Use CSS variables (#10341)\n        return (0, _template2.htmlSafe)(\"background: rgba(0, 0, 0, 0.1);\");\n      }\n    }\n    static #_5 = (() => dt7948.n(this.prototype, \"colorBackgroundStyle\", [(0, _decorators.default)(\"highlighted\")]))();\n    colorPreviewStyle(highlighted1, optionColors1, index1) {\n      const color1 = highlighted1 ? window.Chart.helpers.getHoverColor(optionColors1[index1]) : optionColors1[index1];\n      return (0, _template2.htmlSafe)(`background: ${color1};`);\n    }\n    static #_6 = (() => dt7948.n(this.prototype, \"colorPreviewStyle\", [(0, _decorators.default)(\"highlighted\", \"optionColors\", \"index\")]))();\n    static #_7 = (() => (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <li\n          class=\"poll-breakdown-option\"\n          style={{this.colorBackgroundStyle}}\n          {{on \"mouseover\" @onMouseOver}}\n          {{on \"mouseout\" @onMouseOut}}\n          role=\"button\"\n        >\n          <span\n            class=\"poll-breakdown-option-color\"\n            style={{this.colorPreviewStyle}}\n          ></span>\n    \n          <span class=\"poll-breakdown-option-count\">\n            {{#if this.showPercentage}}\n              {{i18n \"number.percent\" count=this.percent}}\n            {{else}}\n              {{@option.votes}}\n            {{/if}}\n          </span>\n          <span class=\"poll-breakdown-option-text\">{{htmlSafe @option.html}}</span>\n        </li>\n      \n    */\n    {\n      \"id\": \"zfB7uF2P\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[11,\\\"li\\\"],[24,0,\\\"poll-breakdown-option\\\"],[16,5,[30,0,[\\\"colorBackgroundStyle\\\"]]],[24,\\\"role\\\",\\\"button\\\"],[4,[32,0],[\\\"mouseover\\\",[30,1]],null],[4,[32,0],[\\\"mouseout\\\",[30,2]],null],[12],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"poll-breakdown-option-color\\\"],[15,5,[30,0,[\\\"colorPreviewStyle\\\"]]],[12],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,1],[14,0,\\\"poll-breakdown-option-count\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showPercentage\\\"]],[[[1,\\\"          \\\"],[1,[28,[32,1],[\\\"number.percent\\\"],[[\\\"count\\\"],[[30,0,[\\\"percent\\\"]]]]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[1,[30,3,[\\\"votes\\\"]]],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"poll-breakdown-option-text\\\"],[12],[1,[28,[32,2],[[30,3,[\\\"html\\\"]]],null]],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@onMouseOver\\\",\\\"@onMouseOut\\\",\\\"@option\\\"],false,[\\\"if\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-breakdown-option.js\",\n      \"scope\": () => [_modifier.on, _i18n.default, _template2.htmlSafe],\n      \"isStrictMode\": true\n    }), this))();\n  }, [(0, _component2.tagName)(\"\")]);\n  var _default = _exports.default = PollBreakdownOption;\n});","define(\"discourse/plugins/poll/discourse/components/poll-buttons-dropdown\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/components/dropdown-menu\", \"discourse-common/helpers/d-icon\", \"float-kit/components/d-menu\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _object, _service, _dButton, _dropdownMenu, _dIcon, _dMenu, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const buttonOptionsMap = {\n    exportResults: {\n      className: \"btn-default export-results\",\n      label: \"poll.export-results.label\",\n      title: \"poll.export-results.title\",\n      icon: \"download\",\n      action: \"exportResults\"\n    },\n    showBreakdown: {\n      className: \"btn-default show-breakdown\",\n      label: \"poll.breakdown.breakdown\",\n      icon: \"chart-pie\",\n      action: \"showBreakdown\"\n    },\n    openPoll: {\n      className: \"btn-default toggle-status\",\n      label: \"poll.open.label\",\n      title: \"poll.open.title\",\n      icon: \"unlock-alt\",\n      action: \"toggleStatus\"\n    },\n    closePoll: {\n      className: \"btn-default toggle-status\",\n      label: \"poll.close.label\",\n      title: \"poll.close.title\",\n      icon: \"lock\",\n      action: \"toggleStatus\"\n    }\n  };\n  class PollButtonsDropdownComponent extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n    #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n    constructor() {\n      super(...arguments);\n      this.getDropdownButtonState = false;\n    }\n    dropDownClick(dropDownAction1) {\n      this.args.dropDownClick(dropDownAction1);\n    }\n    static #_3 = (() => dt7948.n(this.prototype, \"dropDownClick\", [_object.action]))();\n    get getDropdownContent() {\n      const contents1 = [];\n      const isAdmin1 = this.currentUser && this.currentUser.admin;\n      const dataExplorerEnabled1 = this.siteSettings.data_explorer_enabled;\n      const exportQueryID1 = this.args.isRankedChoice ? this.siteSettings.poll_export_ranked_choice_data_explorer_query_id : this.siteSettings.poll_export_data_explorer_query_id;\n      const {\n        closed: closed1,\n        voters: voters1,\n        isStaff: isStaff1,\n        isMe: isMe1,\n        topicArchived: topicArchived1,\n        groupableUserFields: groupableUserFields1,\n        isAutomaticallyClosed: isAutomaticallyClosed1\n      } = this.args;\n      if (groupableUserFields1.length && voters1 > 0) {\n        const option1 = {\n          ...buttonOptionsMap.showBreakdown\n        };\n        option1.id = option1.action;\n        contents1.push(option1);\n      }\n      if (isAdmin1 && dataExplorerEnabled1 && voters1 > 0 && exportQueryID1) {\n        const option1 = {\n          ...buttonOptionsMap.exportResults\n        };\n        option1.id = option1.action;\n        contents1.push(option1);\n      }\n      if (this.currentUser && (isMe1 || isStaff1) && !topicArchived1) {\n        if (closed1) {\n          if (!isAutomaticallyClosed1) {\n            const option1 = {\n              ...buttonOptionsMap.openPoll\n            };\n            option1.id = option1.action;\n            contents1.push(option1);\n          }\n        } else {\n          const option1 = {\n            ...buttonOptionsMap.closePoll\n          };\n          option1.id = option1.action;\n          contents1.push(option1);\n        }\n      }\n      return contents1;\n    }\n    get showDropdown() {\n      return this.getDropdownContent.length > 1;\n    }\n    get showDropdownAsButton() {\n      return this.getDropdownContent.length === 1;\n    }\n    static #_4 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div class=\"poll-buttons-dropdown\">\n          {{#if this.showDropdown}}\n            <DMenu class=\"widget-dropdown-header\">\n              <:trigger>\n                {{icon \"cog\"}}\n              </:trigger>\n              <:content>\n                <DropdownMenu as |dropdown|>\n                  {{#each this.getDropdownContent as |content|}}\n                    <dropdown.item>\n                      <DButton\n                        class=\"widget-button {{content.className}}\"\n                        @icon={{content.icon}}\n                        @label={{content.label}}\n                        @action={{fn this.dropDownClick content.action}}\n                      />\n                    </dropdown.item>\n                    <dropdown.divider />\n                  {{/each}}\n                </DropdownMenu>\n              </:content>\n            </DMenu>\n          {{else if this.showDropdownAsButton}}\n            <DButton\n              class=\"widget-button {{get this.getDropdownContent '0.className'}}\"\n              @icon={{get this.getDropdownContent \"0.icon\"}}\n              @label={{get this.getDropdownContent \"0.label\"}}\n              @action={{fn\n                this.dropDownClick\n                (get this.getDropdownContent \"0.action\")\n              }}\n            />\n          {{/if}}\n        </div>\n      \n    */\n    {\n      \"id\": \"E68JK0Ad\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"poll-buttons-dropdown\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showDropdown\\\"]],[[[1,\\\"        \\\"],[8,[32,0],[[24,0,\\\"widget-dropdown-header\\\"]],null,[[\\\"trigger\\\",\\\"content\\\"],[[[[1,\\\"\\\\n            \\\"],[1,[28,[32,1],[\\\"cog\\\"],null]],[1,\\\"\\\\n          \\\"]],[]],[[[1,\\\"\\\\n            \\\"],[8,[32,2],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"getDropdownContent\\\"]]],null]],null],null,[[[1,\\\"                \\\"],[8,[30,1,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                  \\\"],[8,[32,3],[[16,0,[29,[\\\"widget-button \\\",[30,2,[\\\"className\\\"]]]]]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[[30,2,[\\\"icon\\\"]],[30,2,[\\\"label\\\"]],[28,[32,4],[[30,0,[\\\"dropDownClick\\\"]],[30,2,[\\\"action\\\"]]],null]]],null],[1,\\\"\\\\n                \\\"]],[]]]]],[1,\\\"\\\\n                \\\"],[8,[30,1,[\\\"divider\\\"]],null,null,null],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"            \\\"]],[1]]]]],[1,\\\"\\\\n          \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],[[[41,[30,0,[\\\"showDropdownAsButton\\\"]],[[[1,\\\"        \\\"],[8,[32,3],[[16,0,[29,[\\\"widget-button \\\",[28,[32,5],[[30,0,[\\\"getDropdownContent\\\"]],\\\"0.className\\\"],null]]]]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[[28,[32,5],[[30,0,[\\\"getDropdownContent\\\"]],\\\"0.icon\\\"],null],[28,[32,5],[[30,0,[\\\"getDropdownContent\\\"]],\\\"0.label\\\"],null],[28,[32,4],[[30,0,[\\\"dropDownClick\\\"]],[28,[32,5],[[30,0,[\\\"getDropdownContent\\\"]],\\\"0.action\\\"],null]],null]]],null],[1,\\\"\\\\n      \\\"]],[]],null]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"dropdown\\\",\\\"content\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-buttons-dropdown.js\",\n      \"scope\": () => [_dMenu.default, _dIcon.default, _dropdownMenu.default, _dButton.default, _helper.fn, _object.get],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollButtonsDropdownComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-info\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"@ember/template\", \"discourse/lib/formatter\", \"discourse-common/helpers/d-icon\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _service, _template2, _formatter, _dIcon, _discourseI18n, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const ON_VOTE = \"on_vote\";\n  const ON_CLOSE = \"on_close\";\n  const STAFF_ONLY = \"staff_only\";\n  class PollInfoComponent extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    get multipleHelpText() {\n      const {\n        min: min1,\n        max: max1,\n        options: options1\n      } = this.args;\n      const optionsCount1 = options1.length;\n      if (max1 > 0) {\n        if (min1 === max1 && min1 > 1) {\n          return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.multiple.help.x_options\", {\n            count: min1\n          }));\n        }\n        if (min1 > 1) {\n          if (max1 < optionsCount1) {\n            return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.multiple.help.between_min_and_max_options\", {\n              min: min1,\n              max: max1\n            }));\n          }\n          return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.multiple.help.at_least_min_options\", {\n            count: min1\n          }));\n        }\n        if (max1 <= optionsCount1) {\n          return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.multiple.help.up_to_max_options\", {\n            count: max1\n          }));\n        }\n      }\n    }\n    get votersLabel() {\n      return _discourseI18n.default.t(\"poll.voters\", {\n        count: this.args.voters\n      });\n    }\n    get showTotalVotes() {\n      return this.args.isMultiple && (this.args.showResults || this.args.closed);\n    }\n    get totalVotes() {\n      return this.args.options.reduce((total1, o1) => {\n        return total1 + parseInt(o1.votes, 10);\n      }, 0);\n    }\n    get totalVotesLabel() {\n      return _discourseI18n.default.t(\"poll.total_votes\", {\n        count: this.totalVotes\n      });\n    }\n    get automaticCloseAgeLabel() {\n      return _discourseI18n.default.t(\"poll.automatic_close.age\", this.age);\n    }\n    get automaticCloseClosesInLabel() {\n      return _discourseI18n.default.t(\"poll.automatic_close.closes_in\", this.timeLeft);\n    }\n    get showMultipleHelpText() {\n      return this.args.isMultiple && !this.args.showResults && !this.args.closed;\n    }\n    get closeTitle() {\n      const closeDate1 = moment.utc(this.args.close, \"YYYY-MM-DD HH:mm:ss Z\");\n      if (closeDate1.isValid()) {\n        return closeDate1.format(\"LLL\");\n      } else {\n        return \"\";\n      }\n    }\n    get age() {\n      const closeDate1 = moment.utc(this.args.close, \"YYYY-MM-DD HH:mm:ss Z\");\n      if (closeDate1.isValid()) {\n        return (0, _formatter.relativeAge)(closeDate1.toDate(), {\n          addAgo: true\n        });\n      } else {\n        return 0;\n      }\n    }\n    get timeLeft() {\n      const closeDate1 = moment.utc(this.args.close, \"YYYY-MM-DD HH:mm:ss Z\");\n      if (closeDate1.isValid()) {\n        return moment().to(closeDate1, true);\n      } else {\n        return 0;\n      }\n    }\n    get resultsOnVote() {\n      return this.args.results === ON_VOTE && !this.args.hasVoted && !(this.currentUser && this.args.postUserId === this.currentUser.id);\n    }\n    get resultsOnVoteTitle() {\n      return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.results.vote.title\"));\n    }\n    get resultsOnClose() {\n      return this.args.results === ON_CLOSE && !this.args.closed;\n    }\n    get resultsOnCloseTitle() {\n      return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.results.closed.title\"));\n    }\n    get resultsStaffOnly() {\n      return this.args.results === STAFF_ONLY && !(this.currentUser && this.currentUser.staff);\n    }\n    get resultsStaffOnlyTitle() {\n      return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.results.staff.title\"));\n    }\n    get publicTitle() {\n      return !this.args.closed && !this.args.showResults && this.args.isPublic && this.args.results !== STAFF_ONLY;\n    }\n    get publicTitleLabel() {\n      return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.public.title\"));\n    }\n    get showInstructionsSection() {\n      return this.showMultipleHelpText || this.args.close || this.resultsOnVote || this.resultsOnClose || this.resultsStaffOnly || this.publicTitle;\n    }\n    static #_2 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div class=\"poll-info\">\n          <div class=\"poll-info_counts\">\n            <div class=\"poll-info_counts-count\">\n              <span class=\"info-number\">{{@voters}}</span>\n              <span class=\"info-label\">{{this.votersLabel}}</span>\n            </div>\n            {{#if this.showTotalVotes}}\n              <div class=\"poll-info_counts-count\">\n                <span class=\"info-number\">{{this.totalVotes}}</span>\n                <span class=\"info-label\">{{this.totalVotesLabel}}</span>\n              </div>\n            {{/if}}\n          </div>\n          {{#if this.showInstructionsSection}}\n            <ul class=\"poll-info_instructions\">\n              {{#if this.showMultipleHelpText}}\n                <li class=\"multiple-help-text\">\n                  {{icon \"list-ul\"}}\n                  <span>{{this.multipleHelpText}}</span>\n                </li>\n              {{/if}}\n              {{#if this.poll.close}}\n                {{#if this.isAutomaticallyClosed}}\n                  <li title={{this.title}}>\n                    {{icon \"lock\"}}\n                    <span>{{this.automaticCloseAgeLabel}}</span>\n                  </li>\n                {{else}}\n                  <li title={{this.title}}>\n                    {{icon \"far-clock\"}}\n                    <span>{{this.automaticCloseClosesInLabel}}</span>\n                  </li>\n                {{/if}}\n              {{/if}}\n              {{#if this.resultsOnVote}}\n                <li class=\"results-on-vote\">\n                  {{icon \"check\"}}\n                  <span>{{this.resultsOnVoteTitle}}</span>\n                </li>\n              {{/if}}\n              {{#if this.resultsOnClose}}\n                <li class=\"results-on-close\">\n                  {{icon \"lock\"}}\n                  <span>{{this.resultsOnCloseTitle}}</span>\n                </li>\n              {{/if}}\n              {{#if this.resultsStaffOnly}}\n                <li class=\"results-staff-only\">\n                  {{icon \"shield-alt\"}}\n                  <span>{{this.resultsStaffOnlyTitle}}</span>\n                </li>\n              {{/if}}\n              {{#if this.publicTitle}}\n                <li class=\"is-public\">\n                  {{icon \"far-eye\"}}\n                  <span>{{this.publicTitleLabel}}</span>\n                </li>\n              {{/if}}\n            </ul>\n          {{/if}}\n        </div>\n      \n    */\n    {\n      \"id\": \"nNuqZW4k\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"poll-info\\\"],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"poll-info_counts\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"poll-info_counts-count\\\"],[12],[1,\\\"\\\\n          \\\"],[10,1],[14,0,\\\"info-number\\\"],[12],[1,[30,1]],[13],[1,\\\"\\\\n          \\\"],[10,1],[14,0,\\\"info-label\\\"],[12],[1,[30,0,[\\\"votersLabel\\\"]]],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showTotalVotes\\\"]],[[[1,\\\"          \\\"],[10,0],[14,0,\\\"poll-info_counts-count\\\"],[12],[1,\\\"\\\\n            \\\"],[10,1],[14,0,\\\"info-number\\\"],[12],[1,[30,0,[\\\"totalVotes\\\"]]],[13],[1,\\\"\\\\n            \\\"],[10,1],[14,0,\\\"info-label\\\"],[12],[1,[30,0,[\\\"totalVotesLabel\\\"]]],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showInstructionsSection\\\"]],[[[1,\\\"        \\\"],[10,\\\"ul\\\"],[14,0,\\\"poll-info_instructions\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showMultipleHelpText\\\"]],[[[1,\\\"            \\\"],[10,\\\"li\\\"],[14,0,\\\"multiple-help-text\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,0],[\\\"list-ul\\\"],null]],[1,\\\"\\\\n              \\\"],[10,1],[12],[1,[30,0,[\\\"multipleHelpText\\\"]]],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,0,[\\\"poll\\\",\\\"close\\\"]],[[[41,[30,0,[\\\"isAutomaticallyClosed\\\"]],[[[1,\\\"              \\\"],[10,\\\"li\\\"],[15,\\\"title\\\",[30,0,[\\\"title\\\"]]],[12],[1,\\\"\\\\n                \\\"],[1,[28,[32,0],[\\\"lock\\\"],null]],[1,\\\"\\\\n                \\\"],[10,1],[12],[1,[30,0,[\\\"automaticCloseAgeLabel\\\"]]],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[10,\\\"li\\\"],[15,\\\"title\\\",[30,0,[\\\"title\\\"]]],[12],[1,\\\"\\\\n                \\\"],[1,[28,[32,0],[\\\"far-clock\\\"],null]],[1,\\\"\\\\n                \\\"],[10,1],[12],[1,[30,0,[\\\"automaticCloseClosesInLabel\\\"]]],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[41,[30,0,[\\\"resultsOnVote\\\"]],[[[1,\\\"            \\\"],[10,\\\"li\\\"],[14,0,\\\"results-on-vote\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,0],[\\\"check\\\"],null]],[1,\\\"\\\\n              \\\"],[10,1],[12],[1,[30,0,[\\\"resultsOnVoteTitle\\\"]]],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,0,[\\\"resultsOnClose\\\"]],[[[1,\\\"            \\\"],[10,\\\"li\\\"],[14,0,\\\"results-on-close\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,0],[\\\"lock\\\"],null]],[1,\\\"\\\\n              \\\"],[10,1],[12],[1,[30,0,[\\\"resultsOnCloseTitle\\\"]]],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,0,[\\\"resultsStaffOnly\\\"]],[[[1,\\\"            \\\"],[10,\\\"li\\\"],[14,0,\\\"results-staff-only\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,0],[\\\"shield-alt\\\"],null]],[1,\\\"\\\\n              \\\"],[10,1],[12],[1,[30,0,[\\\"resultsStaffOnlyTitle\\\"]]],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,0,[\\\"publicTitle\\\"]],[[[1,\\\"            \\\"],[10,\\\"li\\\"],[14,0,\\\"is-public\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,0],[\\\"far-eye\\\"],null]],[1,\\\"\\\\n              \\\"],[10,1],[12],[1,[30,0,[\\\"publicTitleLabel\\\"]]],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@voters\\\"],false,[\\\"if\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-info.js\",\n      \"scope\": () => [_dIcon.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollInfoComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-option-ranked-choice-dropdown\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"discourse/components/d-button\", \"discourse/components/dropdown-menu\", \"discourse-common/helpers/d-icon\", \"discourse-i18n\", \"float-kit/components/d-menu\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _helper, _object, _dButton, _dropdownMenu, _dIcon, _discourseI18n, _dMenu, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollOptionsDropdownComponent extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"rank\", [_tracking.tracked]))();\n    #rank = (() => (dt7948.i(this, \"rank\"), void 0))();\n    constructor() {\n      super(...arguments);\n      this.rank = this.args.rank;\n    }\n    onRegisterApi(api1) {\n      this.dMenu = api1;\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"onRegisterApi\", [_object.action]))();\n    selectRank(option1, rank1) {\n      this.args.sendRank(option1, rank1);\n      this.rank = rank1 === 0 ? _discourseI18n.default.t(\"poll.options.ranked_choice.abstain\") : rank1;\n      this.dMenu.close();\n    }\n    static #_3 = (() => dt7948.n(this.prototype, \"selectRank\", [_object.action]))();\n    get rankLabel() {\n      return this.rank === 0 ? _discourseI18n.default.t(\"poll.options.ranked_choice.abstain\") : this.rank;\n    }\n    static #_4 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <DMenu @onRegisterApi={{this.onRegisterApi}}>\n          <:trigger>\n            <span class=\"d-button-label\">\n              {{this.rankLabel}}\n            </span>\n            {{icon \"angle-down\"}}\n          </:trigger>\n          <:content>\n            <DropdownMenu as |dropdown|>\n              {{#each @rankedChoiceDropdownContent as |content|}}\n                <dropdown.item>\n                  <DButton\n                    @translatedLabel={{content.name}}\n                    class=\"btn-transparent poll-option-dropdown\"\n                    @action={{fn this.selectRank @option.id content.id}}\n                  />\n                </dropdown.item>\n              {{/each}}\n            </DropdownMenu>\n          </:content>\n        </DMenu>\n      \n    */\n    {\n      \"id\": \"BkRRJn6r\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],null,[[\\\"@onRegisterApi\\\"],[[30,0,[\\\"onRegisterApi\\\"]]]],[[\\\"trigger\\\",\\\"content\\\"],[[[[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[30,0,[\\\"rankLabel\\\"]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n        \\\"],[1,[28,[32,1],[\\\"angle-down\\\"],null]],[1,\\\"\\\\n      \\\"]],[]],[[[1,\\\"\\\\n        \\\"],[8,[32,2],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,2]],null]],null],null,[[[1,\\\"            \\\"],[8,[30,1,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n              \\\"],[8,[32,3],[[24,0,\\\"btn-transparent poll-option-dropdown\\\"]],[[\\\"@translatedLabel\\\",\\\"@action\\\"],[[30,3,[\\\"name\\\"]],[28,[32,4],[[30,0,[\\\"selectRank\\\"]],[30,4,[\\\"id\\\"]],[30,3,[\\\"id\\\"]]],null]]],null],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"        \\\"]],[1]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"dropdown\\\",\\\"@rankedChoiceDropdownContent\\\",\\\"content\\\",\\\"@option\\\"],false,[\\\"each\\\",\\\"-track-array\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-option-ranked-choice-dropdown.js\",\n      \"scope\": () => [_dMenu.default, _dIcon.default, _dropdownMenu.default, _dButton.default, _helper.fn],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollOptionsDropdownComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-option-ranked-choice\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"@ember/template\", \"discourse/components/d-button\", \"discourse/helpers/route-action\", \"discourse-common/helpers/i18n\", \"discourse/plugins/poll/discourse/components/poll-option-ranked-choice-dropdown\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _object, _service, _template2, _dButton, _routeAction, _i18n, _pollOptionRankedChoiceDropdown, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollOptionsComponent extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    sendRank(option1) {\n      let rank1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      this.args.sendRank(option1, rank1);\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"sendRank\", [_object.action]))();\n    static #_3 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div\n          tabindex=\"0\"\n          class=\"ranked-choice-poll-option\"\n          data-poll-option-id={{@option.id}}\n          data-poll-option-rank={{@option.rank}}\n        >\n          {{#if this.currentUser}}\n            <PollOptionRankedChoiceDropdown\n              @rank={{@option.rank}}\n              @option={{@option}}\n              @rankedChoiceDropdownContent={{@rankedChoiceDropdownContent}}\n              @sendRank={{this.sendRank}}\n            />\n          {{else}}\n            <DButton class=\"btn-default\" onclick={{routeAction \"showLogin\"}}>{{i18n\n                \"poll.options.ranked_choice.login\"\n              }}</DButton>\n          {{/if}}\n          <span class=\"option-text\">{{htmlSafe @option.html}}</span>\n        </div>\n      \n    */\n    {\n      \"id\": \"dhL7EbfF\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,\\\"tabindex\\\",\\\"0\\\"],[14,0,\\\"ranked-choice-poll-option\\\"],[15,\\\"data-poll-option-id\\\",[30,1,[\\\"id\\\"]]],[15,\\\"data-poll-option-rank\\\",[30,1,[\\\"rank\\\"]]],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"currentUser\\\"]],[[[1,\\\"        \\\"],[8,[32,0],null,[[\\\"@rank\\\",\\\"@option\\\",\\\"@rankedChoiceDropdownContent\\\",\\\"@sendRank\\\"],[[30,1,[\\\"rank\\\"]],[30,1],[30,2],[30,0,[\\\"sendRank\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[8,[32,1],[[24,0,\\\"btn-default\\\"],[16,\\\"onclick\\\",[28,[32,2],[\\\"showLogin\\\"],null]]],null,[[\\\"default\\\"],[[[[1,[28,[32,3],[\\\"poll.options.ranked_choice.login\\\"],null]]],[]]]]],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"],[10,1],[14,0,\\\"option-text\\\"],[12],[1,[28,[32,4],[[30,1,[\\\"html\\\"]]],null]],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@option\\\",\\\"@rankedChoiceDropdownContent\\\"],false,[\\\"if\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-option-ranked-choice.js\",\n      \"scope\": () => [_pollOptionRankedChoiceDropdown.default, _dButton.default, _routeAction.default, _i18n.default, _template2.htmlSafe],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollOptionsComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-options\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"@ember/template\", \"discourse/helpers/concat-class\", \"discourse/helpers/route-action\", \"discourse-common/helpers/d-icon\", \"discourse/plugins/poll/discourse/components/poll-option-ranked-choice\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _modifier, _object, _service, _template2, _concatClass, _routeAction, _dIcon, _pollOptionRankedChoice, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollOptionsComponent extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    isChosen = option1 => {\n      return this.args.votes.includes(option1.id);\n    };\n    sendClick(option1) {\n      this.args.sendOptionSelect(option1);\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"sendClick\", [_object.action]))();\n    sendRank(option1) {\n      let rank1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      this.args.sendOptionSelect(option1, rank1);\n    }\n    static #_3 = (() => dt7948.n(this.prototype, \"sendRank\", [_object.action]))();\n    static #_4 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <ul class={{concatClass (if @isRankedChoice \"ranked-choice-poll-options\")}}>\n          {{#each @options as |option|}}\n            {{#if @isRankedChoice}}\n              <PollOptionRankedChoice\n                @option={{option}}\n                @rankedChoiceDropdownContent={{@rankedChoiceDropdownContent}}\n                @sendRank={{this.sendRank}}\n              />\n            {{else}}\n              <li tabindex=\"0\" data-poll-option-id={{option.id}}>\n                {{#if this.currentUser}}\n                  <button {{on \"click\" (fn this.sendClick option)}}>\n                    {{#if (this.isChosen option)}}\n                      {{#if @isCheckbox}}\n                        {{icon \"far-check-square\"}}\n                      {{else}}\n                        {{icon \"circle\"}}\n                      {{/if}}\n                    {{else}}\n                      {{#if @isCheckbox}}\n                        {{icon \"far-square\"}}\n                      {{else}}\n                        {{icon \"far-circle\"}}\n                      {{/if}}\n                    {{/if}}\n                    <span class=\"option-text\">{{htmlSafe option.html}}</span>\n                  </button>\n                {{else}}\n                  <button onclick={{routeAction \"showLogin\"}}>\n                    {{#if (this.isChosen option)}}\n                      {{#if @isCheckbox}}\n                        {{icon \"far-check-square\"}}\n                      {{else}}\n                        {{icon \"circle\"}}\n                      {{/if}}\n                    {{else}}\n                      {{#if @isCheckbox}}\n                        {{icon \"far-square\"}}\n                      {{else}}\n                        {{icon \"far-circle\"}}\n                      {{/if}}\n                    {{/if}}\n                    <span class=\"option-text\">{{htmlSafe option.html}}</span>\n                  </button>\n                {{/if}}\n              </li>\n            {{/if}}\n          {{/each}}\n        </ul>\n      \n    */\n    {\n      \"id\": \"CsLW1yuK\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"ul\\\"],[15,0,[28,[32,0],[[52,[30,1],\\\"ranked-choice-poll-options\\\"]],null]],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,2]],null]],null],null,[[[41,[30,1],[[[1,\\\"          \\\"],[8,[32,1],null,[[\\\"@option\\\",\\\"@rankedChoiceDropdownContent\\\",\\\"@sendRank\\\"],[[30,3],[30,4],[30,0,[\\\"sendRank\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[10,\\\"li\\\"],[14,\\\"tabindex\\\",\\\"0\\\"],[15,\\\"data-poll-option-id\\\",[30,3,[\\\"id\\\"]]],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"currentUser\\\"]],[[[1,\\\"              \\\"],[11,\\\"button\\\"],[4,[32,2],[\\\"click\\\",[28,[32,3],[[30,0,[\\\"sendClick\\\"]],[30,3]],null]],null],[12],[1,\\\"\\\\n\\\"],[41,[28,[30,0,[\\\"isChosen\\\"]],[[30,3]],null],[[[41,[30,5],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"far-check-square\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]],[[[41,[30,5],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"far-square\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"far-circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]]],[1,\\\"                \\\"],[10,1],[14,0,\\\"option-text\\\"],[12],[1,[28,[32,5],[[30,3,[\\\"html\\\"]]],null]],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[10,\\\"button\\\"],[15,\\\"onclick\\\",[28,[32,6],[\\\"showLogin\\\"],null]],[12],[1,\\\"\\\\n\\\"],[41,[28,[30,0,[\\\"isChosen\\\"]],[[30,3]],null],[[[41,[30,5],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"far-check-square\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]],[[[41,[30,5],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"far-square\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                    \\\"],[1,[28,[32,4],[\\\"far-circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]]],[1,\\\"                \\\"],[10,1],[14,0,\\\"option-text\\\"],[12],[1,[28,[32,5],[[30,3,[\\\"html\\\"]]],null]],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"          \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[3]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@isRankedChoice\\\",\\\"@options\\\",\\\"option\\\",\\\"@rankedChoiceDropdownContent\\\",\\\"@isCheckbox\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-options.js\",\n      \"scope\": () => [_concatClass.default, _pollOptionRankedChoice.default, _modifier.on, _helper.fn, _dIcon.default, _template2.htmlSafe, _routeAction.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollOptionsComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-results-pie\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/template\", \"ember-modifier\", \"discourse/lib/load-script\", \"discourse/plugins/poll/lib/chart-colors\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _object, _didInsert, _template2, _emberModifier, _loadScript, _chartColors, _pollUiBuilder, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollResultsPieComponent extends _component.default {\n    htmlLegendPlugin = {\n      id: \"htmlLegend\",\n      afterUpdate(chart1, args1, options1) {\n        const ul1 = document.getElementById(options1.containerID);\n        if (!ul1) {\n          return;\n        }\n        ul1.innerHTML = \"\";\n        const items1 = chart1.options.plugins.legend.labels.generateLabels(chart1);\n        items1.forEach(item1 => {\n          const li1 = document.createElement(\"li\");\n          li1.classList.add(\"legend\");\n          li1.onclick = () => {\n            chart1.toggleDataVisibility(item1.index);\n            chart1.update();\n          };\n          const boxSpan1 = document.createElement(\"span\");\n          boxSpan1.classList.add(\"swatch\");\n          boxSpan1.style.background = item1.fillStyle;\n          const textContainer1 = document.createElement(\"span\");\n          textContainer1.style.color = item1.fontColor;\n          textContainer1.innerHTML = item1.text;\n          if (!chart1.getDataVisibility(item1.index)) {\n            li1.style.opacity = 0.2;\n          } else {\n            li1.style.opacity = 1.0;\n          }\n          li1.appendChild(boxSpan1);\n          li1.appendChild(textContainer1);\n          ul1.appendChild(li1);\n        });\n      }\n    };\n    stripHtml = html1 => {\n      let doc1 = new DOMParser().parseFromString(html1, \"text/html\");\n      return doc1.body.textContent || \"\";\n    };\n    pieChartConfig = (() => {\n      var _this = this;\n      return function (data1, labels1) {\n        let opts1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n        const aspectRatio1 = \"aspectRatio\" in opts1 ? opts1.aspectRatio : 2.2;\n        const strippedLabels1 = labels1.map(l1 => _this.stripHtml(l1));\n        return {\n          type: _pollUiBuilder.PIE_CHART_TYPE,\n          data: {\n            datasets: [{\n              data: data1,\n              backgroundColor: (0, _chartColors.getColors)(data1.length)\n            }],\n            labels: strippedLabels1\n          },\n          plugins: [_this.htmlLegendPlugin],\n          options: {\n            responsive: true,\n            aspectRatio: aspectRatio1,\n            animation: {\n              duration: 0\n            },\n            plugins: {\n              legend: {\n                labels: {\n                  generateLabels() {\n                    return labels1.map((text1, index1) => {\n                      return {\n                        fillStyle: (0, _chartColors.getColors)(data1.length)[index1],\n                        text: text1,\n                        index: index1\n                      };\n                    });\n                  }\n                },\n                display: false\n              },\n              htmlLegend: {\n                containerID: opts1?.legendContainerId\n              }\n            }\n          }\n        };\n      };\n    })();\n    registerLegendElement = (() => (0, _emberModifier.modifier)(element1 => {\n      this.legendElement = element1;\n    }))();\n    registerCanvasElement = (() => (0, _emberModifier.modifier)(element1 => {\n      this.canvasElement = element1;\n    }))();\n    get canvasId() {\n      return (0, _template2.htmlSafe)(`poll-results-chart-${this.args.id}`);\n    }\n    get legendId() {\n      return (0, _template2.htmlSafe)(`poll-results-legend-${this.args.id}`);\n    }\n    async drawPie() {\n      await (0, _loadScript.default)(\"/javascripts/Chart.min.js\");\n      const data1 = this.args.options.mapBy(\"votes\");\n      const labels1 = this.args.options.mapBy(\"html\");\n      const config1 = this.pieChartConfig(data1, labels1, {\n        legendContainerId: this.legendElement.id\n      });\n      const el1 = this.canvasElement;\n      // eslint-disable-next-line no-undef\n      this._chart = new Chart(el1.getContext(\"2d\"), config1);\n    }\n    static #_ = (() => dt7948.n(this.prototype, \"drawPie\", [_object.action]))();\n    static #_2 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div class=\"poll-results-chart\">\n          <canvas\n            {{didInsert this.drawPie}}\n            {{didInsert this.registerCanvasElement}}\n            id={{this.canvasId}}\n            class=\"poll-results-canvas\"\n          ></canvas>\n          <ul\n            {{didInsert this.registerLegendElement}}\n            id={{this.legendId}}\n            class=\"pie-chart-legends\"\n          >\n          </ul>\n        </div>\n      \n    */\n    {\n      \"id\": \"XLOMCFIw\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"poll-results-chart\\\"],[12],[1,\\\"\\\\n      \\\"],[11,\\\"canvas\\\"],[16,1,[30,0,[\\\"canvasId\\\"]]],[24,0,\\\"poll-results-canvas\\\"],[4,[32,0],[[30,0,[\\\"drawPie\\\"]]],null],[4,[32,0],[[30,0,[\\\"registerCanvasElement\\\"]]],null],[12],[13],[1,\\\"\\\\n      \\\"],[11,\\\"ul\\\"],[16,1,[30,0,[\\\"legendId\\\"]]],[24,0,\\\"pie-chart-legends\\\"],[4,[32,0],[[30,0,[\\\"registerLegendElement\\\"]]],null],[12],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[],false,[]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-results-pie.js\",\n      \"scope\": () => [_didInsert.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollResultsPieComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-results-ranked-choice\", [\"exports\", \"@glimmer/component\", \"discourse-common/helpers/i18n\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _i18n, _discourseI18n, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollResultsRankedChoiceComponent extends _component.default {\n    get rankedChoiceWinnerText() {\n      return _discourseI18n.default.t(\"poll.ranked_choice.winner\", {\n        count: this.args.rankedChoiceOutcome.round_activity.length,\n        winner: this.args.rankedChoiceOutcome.winning_candidate.html\n      });\n    }\n    get rankedChoiceTiedText() {\n      return _discourseI18n.default.t(\"poll.ranked_choice.tied\", {\n        count: this.args.rankedChoiceOutcome.round_activity.length\n      });\n    }\n    static #_ = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <h3 class=\"poll-results-ranked-choice-subtitle-rounds\">\n          {{i18n \"poll.ranked_choice.title.rounds\"}}\n        </h3>\n        <table class=\"poll-results-ranked-choice\">\n          <thead>\n            <tr>\n              <th>{{i18n \"poll.ranked_choice.round\"}}</th>\n              <th>{{i18n \"poll.ranked_choice.majority\"}}</th>\n              <th>{{i18n \"poll.ranked_choice.eliminated\"}}</th>\n            </tr>\n          </thead>\n          <tbody>\n            {{#each @rankedChoiceOutcome.round_activity as |round|}}\n              {{#if round.majority}}\n                <tr>\n                  <td>{{round.round}}</td>\n                  <td>{{round.majority.html}}</td>\n                  <td>{{i18n \"poll.ranked_choice.none\"}}</td>\n                </tr>\n              {{else}}\n                <tr>\n                  <td>{{round.round}}</td>\n                  <td>{{i18n \"poll.ranked_choice.none\"}}</td>\n                  <td>\n                    {{#each round.eliminated as |eliminated|}}\n                      {{eliminated.html}}\n                    {{/each}}\n                  </td>\n                </tr>\n              {{/if}}\n            {{/each}}\n          </tbody>\n        </table>\n        <h3 class=\"poll-results-ranked-choice-subtitle-outcome\">\n          {{i18n \"poll.ranked_choice.title.outcome\"}}\n        </h3>\n        {{#if @rankedChoiceOutcome.tied}}\n          <span\n            class=\"poll-results-ranked-choice-info\"\n          >{{this.rankedChoiceTiedText}}</span>\n          <ul class=\"poll-results-ranked-choice-tied-candidates\">\n            {{#each @rankedChoiceOutcome.tied_candidates as |tied_candidate|}}\n              <li\n                class=\"poll-results-ranked-choice-tied-candidate\"\n              >{{tied_candidate.html}}</li>\n            {{/each}}\n          </ul>\n        {{else}}\n          <span\n            class=\"poll-results-ranked-choice-info\"\n          >{{this.rankedChoiceWinnerText}}</span>\n        {{/if}}\n      \n    */\n    {\n      \"id\": \"8NdpxvhP\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"h3\\\"],[14,0,\\\"poll-results-ranked-choice-subtitle-rounds\\\"],[12],[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[\\\"poll.ranked_choice.title.rounds\\\"],null]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,\\\"table\\\"],[14,0,\\\"poll-results-ranked-choice\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"thead\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"th\\\"],[12],[1,[28,[32,0],[\\\"poll.ranked_choice.round\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"th\\\"],[12],[1,[28,[32,0],[\\\"poll.ranked_choice.majority\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"th\\\"],[12],[1,[28,[32,0],[\\\"poll.ranked_choice.eliminated\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,\\\"tbody\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,1,[\\\"round_activity\\\"]]],null]],null],null,[[[41,[30,2,[\\\"majority\\\"]],[[[1,\\\"            \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n              \\\"],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"round\\\"]]],[13],[1,\\\"\\\\n              \\\"],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"majority\\\",\\\"html\\\"]]],[13],[1,\\\"\\\\n              \\\"],[10,\\\"td\\\"],[12],[1,[28,[32,0],[\\\"poll.ranked_choice.none\\\"],null]],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"            \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n              \\\"],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"round\\\"]]],[13],[1,\\\"\\\\n              \\\"],[10,\\\"td\\\"],[12],[1,[28,[32,0],[\\\"poll.ranked_choice.none\\\"],null]],[13],[1,\\\"\\\\n              \\\"],[10,\\\"td\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,2,[\\\"eliminated\\\"]]],null]],null],null,[[[1,\\\"                  \\\"],[1,[30,3,[\\\"html\\\"]]],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"              \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[2]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,\\\"h3\\\"],[14,0,\\\"poll-results-ranked-choice-subtitle-outcome\\\"],[12],[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[\\\"poll.ranked_choice.title.outcome\\\"],null]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"tied\\\"]],[[[1,\\\"      \\\"],[10,1],[14,0,\\\"poll-results-ranked-choice-info\\\"],[12],[1,[30,0,[\\\"rankedChoiceTiedText\\\"]]],[13],[1,\\\"\\\\n      \\\"],[10,\\\"ul\\\"],[14,0,\\\"poll-results-ranked-choice-tied-candidates\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,1,[\\\"tied_candidates\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[10,\\\"li\\\"],[14,0,\\\"poll-results-ranked-choice-tied-candidate\\\"],[12],[1,[30,4,[\\\"html\\\"]]],[13],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"      \\\"],[10,1],[14,0,\\\"poll-results-ranked-choice-info\\\"],[12],[1,[30,0,[\\\"rankedChoiceWinnerText\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"  \\\"]],[\\\"@rankedChoiceOutcome\\\",\\\"round\\\",\\\"eliminated\\\",\\\"tied_candidate\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-results-ranked-choice.js\",\n      \"scope\": () => [_i18n.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollResultsRankedChoiceComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-results-standard\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/template\", \"discourse-common/helpers/i18n\", \"discourse/plugins/poll/lib/even-round\", \"discourse/plugins/poll/discourse/components/poll-voters\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _template2, _i18n, _evenRound, _pollVoters, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollResultsStandardComponent extends _component.default {\n    orderOptions = options1 => {\n      return options1.sort((a1, b1) => {\n        if (a1.votes < b1.votes) {\n          return 1;\n        } else if (a1.votes === b1.votes) {\n          if (a1.html < b1.html) {\n            return -1;\n          } else {\n            return 1;\n          }\n        } else {\n          return -1;\n        }\n      });\n    };\n    getPercentages = (ordered1, votersCount1) => {\n      return votersCount1 === 0 ? Array(ordered1.length).fill(0) : ordered1.map(o1 => 100 * o1.votes / votersCount1);\n    };\n    roundPercentages = percentages1 => {\n      return this.isMultiple ? percentages1.map(Math.floor) : (0, _evenRound.default)(percentages1);\n    };\n    enrichOptions = (ordered1, rounded1) => {\n      ordered1.forEach((option1, idx1) => {\n        const per1 = rounded1[idx1].toString();\n        const chosen1 = (this.args.vote || []).includes(option1.id);\n        option1.percentage = per1;\n        option1.chosen = chosen1;\n        let voters1 = this.args.isPublic ? this.args.voters[option1.id] || [] : [];\n        option1.voters = [...voters1];\n      });\n      return ordered1;\n    };\n    get votersCount() {\n      return this.args.votersCount || 0;\n    }\n    get orderedOptions() {\n      const ordered1 = this.orderOptions([...this.args.options]);\n      const percentages1 = this.getPercentages(ordered1, this.votersCount);\n      const roundedPercentages1 = this.roundPercentages(percentages1);\n      return this.enrichOptions(ordered1, roundedPercentages1);\n    }\n    get isMultiple() {\n      return this.args.pollType === \"multiple\";\n    }\n    static #_ = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <ul class=\"results\">\n          {{#each this.orderedOptions key=\"voters\" as |option|}}\n            <li class={{if option.chosen \"chosen\" \"\"}}>\n              <div class=\"option\">\n                <p>\n                  {{#unless @isRankedChoice}}\n                    <span class=\"percentage\">{{i18n\n                        \"number.percent\"\n                        count=option.percentage\n                      }}</span>\n                  {{/unless}}\n                  <span class=\"option-text\">{{htmlSafe option.html}}</span>\n                </p>\n                {{#unless @isRankedChoice}}\n                  <div class=\"bar-back\">\n                    <div\n                      class=\"bar\"\n                      style={{htmlSafe (concat \"width:\" option.percentage \"%\")}}\n                    />\n                  </div>\n                {{/unless}}\n                {{#if @isPublic}}\n                  <PollVoters\n                    @postId={{@postId}}\n                    @pollType={{@pollType}}\n                    @optionId={{option.id}}\n                    @pollName={{@pollName}}\n                    @isRankedChoice={{@isRankedChoice}}\n                    @totalVotes={{option.votes}}\n                    @voters={{option.voters}}\n                    @fetchVoters={{@fetchVoters}}\n                    @loading={{option.loading}}\n                  />\n                {{/if}}\n              </div>\n            </li>\n          {{/each}}\n        </ul>\n      \n    */\n    {\n      \"id\": \"SwDDWb6i\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"ul\\\"],[14,0,\\\"results\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,0,[\\\"orderedOptions\\\"]]],null]],null],\\\"voters\\\",[[[1,\\\"        \\\"],[10,\\\"li\\\"],[15,0,[52,[30,1,[\\\"chosen\\\"]],\\\"chosen\\\",\\\"\\\"]],[12],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"option\\\"],[12],[1,\\\"\\\\n            \\\"],[10,2],[12],[1,\\\"\\\\n\\\"],[41,[51,[30,2]],[[[1,\\\"                \\\"],[10,1],[14,0,\\\"percentage\\\"],[12],[1,[28,[32,0],[\\\"number.percent\\\"],[[\\\"count\\\"],[[30,1,[\\\"percentage\\\"]]]]]],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"              \\\"],[10,1],[14,0,\\\"option-text\\\"],[12],[1,[28,[32,1],[[30,1,[\\\"html\\\"]]],null]],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"],[41,[51,[30,2]],[[[1,\\\"              \\\"],[10,0],[14,0,\\\"bar-back\\\"],[12],[1,\\\"\\\\n                \\\"],[10,0],[14,0,\\\"bar\\\"],[15,5,[28,[32,1],[[28,[32,2],[\\\"width:\\\",[30,1,[\\\"percentage\\\"]],\\\"%\\\"],null]],null]],[12],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,3],[[[1,\\\"              \\\"],[8,[32,3],null,[[\\\"@postId\\\",\\\"@pollType\\\",\\\"@optionId\\\",\\\"@pollName\\\",\\\"@isRankedChoice\\\",\\\"@totalVotes\\\",\\\"@voters\\\",\\\"@fetchVoters\\\",\\\"@loading\\\"],[[30,4],[30,5],[30,1,[\\\"id\\\"]],[30,6],[30,2],[30,1,[\\\"votes\\\"]],[30,1,[\\\"voters\\\"]],[30,7],[30,1,[\\\"loading\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"option\\\",\\\"@isRankedChoice\\\",\\\"@isPublic\\\",\\\"@postId\\\",\\\"@pollType\\\",\\\"@pollName\\\",\\\"@fetchVoters\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\",\\\"unless\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-results-standard.js\",\n      \"scope\": () => [_i18n.default, _template2.htmlSafe, _helper.concat, _pollVoters.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollResultsStandardComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-results-tabs\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"truth-helpers\", \"discourse/components/d-button\", \"discourse-i18n\", \"discourse/plugins/poll/discourse/components/poll-results-ranked-choice\", \"discourse/plugins/poll/discourse/components/poll-results-standard\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _helper, _object, _truthHelpers, _dButton, _discourseI18n, _pollResultsRankedChoice, _pollResultsStandard, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class TabsComponent extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"activeTab\", [_tracking.tracked]))();\n    #activeTab = (() => (dt7948.i(this, \"activeTab\"), void 0))();\n    tabOne = (() => _discourseI18n.default.t(\"poll.results.tabs.votes\"))();\n    tabTwo = (() => _discourseI18n.default.t(\"poll.results.tabs.outcome\"))();\n    constructor() {\n      super(...arguments);\n      this.activeTab = this.args.isRankedChoice && this.args.isPublic ? this.tabs[1] : this.tabs[0];\n    }\n    get tabs() {\n      let tabs1 = [];\n      if (!this.args.isRankedChoice || this.args.isRankedChoice && this.args.isPublic) {\n        tabs1.push(this.tabOne);\n      }\n      if (this.args.isRankedChoice) {\n        tabs1.push(this.tabTwo);\n      }\n      return tabs1;\n    }\n    selectTab(tab1) {\n      this.activeTab = tab1;\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"selectTab\", [_object.action]))();\n    static #_3 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div class=\"tab-container\">\n          <ul class=\"tabs nav nav-items\">\n            {{#each this.tabs as |tab|}}\n              <li class=\"tab nav-item {{if (eq tab this.activeTab) 'active'}}\">\n                <DButton class=\"nav-btn\" @action={{fn this.selectTab tab}}>\n                  {{tab}}\n                </DButton>\n              </li>\n            {{/each}}\n          </ul>\n          <div class=\"tab-content\">\n            {{#if (eq this.activeTab this.tabOne)}}\n              <PollResultsStandard\n                @options={{@options}}\n                @pollName={{@pollName}}\n                @pollType={{@pollType}}\n                @isPublic={{@isPublic}}\n                @isRankedChoice={{@isRankedChoice}}\n                @postId={{@postId}}\n                @vote={{@vote}}\n                @voters={{@voters}}\n                @votersCount={{@votersCount}}\n                @fetchVoters={{@fetchVoters}}\n              />\n            {{/if}}\n    \n            {{#if (eq this.activeTab this.tabTwo)}}\n              <PollResultsRankedChoice\n                @rankedChoiceOutcome={{@rankedChoiceOutcome}}\n              />\n            {{/if}}\n          </div>\n        </div>\n      \n    */\n    {\n      \"id\": \"MpwnC8yl\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"tab-container\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"ul\\\"],[14,0,\\\"tabs nav nav-items\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,0,[\\\"tabs\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[10,\\\"li\\\"],[15,0,[29,[\\\"tab nav-item \\\",[52,[28,[32,0],[[30,1],[30,0,[\\\"activeTab\\\"]]],null],\\\"active\\\"]]]],[12],[1,\\\"\\\\n            \\\"],[8,[32,1],[[24,0,\\\"nav-btn\\\"]],[[\\\"@action\\\"],[[28,[32,2],[[30,0,[\\\"selectTab\\\"]],[30,1]],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n              \\\"],[1,[30,1]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"tab-content\\\"],[12],[1,\\\"\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"activeTab\\\"]],[30,0,[\\\"tabOne\\\"]]],null],[[[1,\\\"          \\\"],[8,[32,3],null,[[\\\"@options\\\",\\\"@pollName\\\",\\\"@pollType\\\",\\\"@isPublic\\\",\\\"@isRankedChoice\\\",\\\"@postId\\\",\\\"@vote\\\",\\\"@voters\\\",\\\"@votersCount\\\",\\\"@fetchVoters\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7],[30,8],[30,9],[30,10],[30,11]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"activeTab\\\"]],[30,0,[\\\"tabTwo\\\"]]],null],[[[1,\\\"          \\\"],[8,[32,4],null,[[\\\"@rankedChoiceOutcome\\\"],[[30,12]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"tab\\\",\\\"@options\\\",\\\"@pollName\\\",\\\"@pollType\\\",\\\"@isPublic\\\",\\\"@isRankedChoice\\\",\\\"@postId\\\",\\\"@vote\\\",\\\"@voters\\\",\\\"@votersCount\\\",\\\"@fetchVoters\\\",\\\"@rankedChoiceOutcome\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-results-tabs.js\",\n      \"scope\": () => [_truthHelpers.eq, _dButton.default, _helper.fn, _pollResultsStandard.default, _pollResultsRankedChoice.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = TabsComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-voters-ranked-choice\", [\"exports\", \"@glimmer/component\", \"truth-helpers\", \"discourse/helpers/bound-avatar-template\", \"discourse-common/helpers/d-icon\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _truthHelpers, _boundAvatarTemplate, _dIcon, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollVotersComponent extends _component.default {\n    groupVotersByRank = voters1 => {\n      return voters1.reduce((groups1, voter1) => {\n        const rank1 = voter1.rank;\n        groups1[rank1] ??= [];\n        groups1[rank1].push(voter1);\n        return groups1;\n      }, {});\n    };\n    get rankedChoiceVoters() {\n      const voters1 = [...this.args.voters];\n      // Group voters by rank so they can be displayed together by rank\n      const groupedByRank1 = this.groupVotersByRank(voters1);\n      // Convert groups to array of objects with keys rank and voters\n      const groupedVoters1 = Object.keys(groupedByRank1).map(rank1 => ({\n        rank: rank1,\n        voters: groupedByRank1[rank1]\n      }));\n      return groupedVoters1;\n    }\n    static #_ = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        {{#each this.rankedChoiceVoters as |rank|}}\n          <ul>\n            {{#if (eq rank.rank \"Abstain\")}}\n              <span class=\"rank\">{{icon \"ban\"}}</span>\n            {{else}}\n              <span class=\"rank\">{{rank.rank}}</span>\n            {{/if}}\n            {{#each rank.voters as |user|}}\n              <li>\n                {{avatar user.user.avatar_template \"tiny\"}}\n              </li>\n            {{/each}}\n          </ul>\n        {{/each}}\n      \n    */\n    {\n      \"id\": \"69/Hn8Ad\",\n      \"block\": \"[[[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,0,[\\\"rankedChoiceVoters\\\"]]],null]],null],null,[[[1,\\\"      \\\"],[10,\\\"ul\\\"],[12],[1,\\\"\\\\n\\\"],[41,[28,[32,0],[[30,1,[\\\"rank\\\"]],\\\"Abstain\\\"],null],[[[1,\\\"          \\\"],[10,1],[14,0,\\\"rank\\\"],[12],[1,[28,[32,1],[\\\"ban\\\"],null]],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[10,1],[14,0,\\\"rank\\\"],[12],[1,[30,1,[\\\"rank\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]]],[42,[28,[31,1],[[28,[31,1],[[30,1,[\\\"voters\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n            \\\"],[1,[28,[32,2],[[30,2,[\\\"user\\\",\\\"avatar_template\\\"]],\\\"tiny\\\"],null]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"  \\\"]],[\\\"rank\\\",\\\"user\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-voters-ranked-choice.js\",\n      \"scope\": () => [_truthHelpers.eq, _dIcon.default, _boundAvatarTemplate.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollVotersComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-voters\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"discourse/components/conditional-loading-spinner\", \"discourse/components/d-button\", \"discourse/helpers/bound-avatar-template\", \"discourse/plugins/poll/discourse/components/poll-voters-ranked-choice\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _conditionalLoadingSpinner, _dButton, _boundAvatarTemplate, _pollVotersRankedChoice, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PollVotersComponent extends _component.default {\n    get showMore() {\n      return this.args.voters.length < this.args.totalVotes;\n    }\n    static #_ = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div class=\"poll-voters\">\n          <ul class=\"poll-voters-list\">\n            {{#if @isRankedChoice}}\n              <PollVotersRankedChoice @voters={{@voters}} />\n            {{else}}\n              {{#each @voters as |user|}}\n                <li>\n                  {{avatar user.avatar_template \"tiny\"}}\n                </li>\n              {{/each}}\n            {{/if}}\n          </ul>\n          {{#if this.showMore}}\n            <ConditionalLoadingSpinner @condition={{@loading}}>\n              <DButton\n                @action={{fn @fetchVoters @optionId}}\n                @icon=\"chevron-down\"\n                class=\"poll-voters-toggle-expand\"\n              />\n            </ConditionalLoadingSpinner>\n          {{/if}}\n        </div>\n      \n    */\n    {\n      \"id\": \"IY201Kk5\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"poll-voters\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"ul\\\"],[14,0,\\\"poll-voters-list\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,1],[[[1,\\\"          \\\"],[8,[32,0],null,[[\\\"@voters\\\"],[[30,2]]],null],[1,\\\"\\\\n\\\"]],[]],[[[42,[28,[31,2],[[28,[31,2],[[30,2]],null]],null],null,[[[1,\\\"            \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,1],[[30,3,[\\\"avatar_template\\\"]],\\\"tiny\\\"],null]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[3]],null]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showMore\\\"]],[[[1,\\\"        \\\"],[8,[32,2],null,[[\\\"@condition\\\"],[[30,4]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[8,[32,3],[[24,0,\\\"poll-voters-toggle-expand\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[28,[32,4],[[30,5],[30,6]],null],\\\"chevron-down\\\"]],null],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@isRankedChoice\\\",\\\"@voters\\\",\\\"user\\\",\\\"@loading\\\",\\\"@fetchVoters\\\",\\\"@optionId\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll-voters.js\",\n      \"scope\": () => [_pollVotersRankedChoice.default, _boundAvatarTemplate.default, _conditionalLoadingSpinner.default, _dButton.default, _helper.fn],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollVotersComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-update\", \"@ember/service\", \"@ember/template\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/round\", \"discourse-common/helpers/d-icon\", \"discourse-common/helpers/i18n\", \"discourse-i18n\", \"discourse/plugins/poll/discourse/components/modal/poll-breakdown\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", \"discourse/plugins/poll/discourse/components/poll-buttons-dropdown\", \"discourse/plugins/poll/discourse/components/poll-info\", \"discourse/plugins/poll/discourse/components/poll-options\", \"discourse/plugins/poll/discourse/components/poll-results-pie\", \"discourse/plugins/poll/discourse/components/poll-results-tabs\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _modifier, _object, _didUpdate, _service, _template2, _ajax, _ajaxError, _round, _dIcon, _i18n, _discourseI18n, _pollBreakdown, _pollUiBuilder, _pollButtonsDropdown, _pollInfo, _pollOptions, _pollResultsPie, _pollResultsTabs, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const FETCH_VOTERS_COUNT = 25;\n  const STAFF_ONLY = \"staff_only\";\n  const MULTIPLE = \"multiple\";\n  const NUMBER = \"number\";\n  const REGULAR = \"regular\";\n  const RANKED_CHOICE = \"ranked_choice\";\n  const ON_VOTE = \"on_vote\";\n  const ON_CLOSE = \"on_close\";\n  class PollComponent extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n    #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"appEvents\", [_service.service]))();\n    #appEvents = (() => (dt7948.i(this, \"appEvents\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"dialog\", [_service.service]))();\n    #dialog = (() => (dt7948.i(this, \"dialog\"), void 0))();\n    static #_5 = (() => dt7948.g(this.prototype, \"router\", [_service.service]))();\n    #router = (() => (dt7948.i(this, \"router\"), void 0))();\n    static #_6 = (() => dt7948.g(this.prototype, \"modal\", [_service.service]))();\n    #modal = (() => (dt7948.i(this, \"modal\"), void 0))();\n    static #_7 = (() => dt7948.g(this.prototype, \"isStaff\", [_tracking.tracked], function () {\n      return this.currentUser && this.currentUser.staff;\n    }))();\n    #isStaff = (() => (dt7948.i(this, \"isStaff\"), void 0))();\n    static #_8 = (() => dt7948.g(this.prototype, \"vote\", [_tracking.tracked], function () {\n      return this.args.attrs.vote || [];\n    }))();\n    #vote = (() => (dt7948.i(this, \"vote\"), void 0))();\n    static #_9 = (() => dt7948.g(this.prototype, \"titleHTML\", [_tracking.tracked], function () {\n      return (0, _template2.htmlSafe)(this.args.attrs.titleHTML);\n    }))();\n    #titleHTML = (() => (dt7948.i(this, \"titleHTML\"), void 0))();\n    static #_10 = (() => dt7948.g(this.prototype, \"topicArchived\", [_tracking.tracked], function () {\n      return this.args.attrs.post.get(\"topic.archived\");\n    }))();\n    #topicArchived = (() => (dt7948.i(this, \"topicArchived\"), void 0))();\n    static #_11 = (() => dt7948.g(this.prototype, \"options\", [_tracking.tracked], function () {\n      return [];\n    }))();\n    #options = (() => (dt7948.i(this, \"options\"), void 0))();\n    static #_12 = (() => dt7948.g(this.prototype, \"poll\", [_tracking.tracked], function () {\n      return this.args.attrs.poll;\n    }))();\n    #poll = (() => (dt7948.i(this, \"poll\"), void 0))();\n    static #_13 = (() => dt7948.g(this.prototype, \"voters\", [_tracking.tracked], function () {\n      return this.poll.voters || 0;\n    }))();\n    #voters = (() => (dt7948.i(this, \"voters\"), void 0))();\n    static #_14 = (() => dt7948.g(this.prototype, \"preloadedVoters\", [_tracking.tracked], function () {\n      return this.args.preloadedVoters || [];\n    }))();\n    #preloadedVoters = (() => (dt7948.i(this, \"preloadedVoters\"), void 0))();\n    static #_15 = (() => dt7948.g(this.prototype, \"isRankedChoice\", [_tracking.tracked], function () {\n      return this.poll.type === RANKED_CHOICE;\n    }))();\n    #isRankedChoice = (() => (dt7948.i(this, \"isRankedChoice\"), void 0))();\n    static #_16 = (() => dt7948.g(this.prototype, \"rankedChoiceOutcome\", [_tracking.tracked], function () {\n      return this.poll.ranked_choice_outcome || [];\n    }))();\n    #rankedChoiceOutcome = (() => (dt7948.i(this, \"rankedChoiceOutcome\"), void 0))();\n    static #_17 = (() => dt7948.g(this.prototype, \"isMultiVoteType\", [_tracking.tracked], function () {\n      return this.isRankedChoice || this.isMultiple;\n    }))();\n    #isMultiVoteType = (() => (dt7948.i(this, \"isMultiVoteType\"), void 0))();\n    static #_18 = (() => dt7948.g(this.prototype, \"staffOnly\", [_tracking.tracked], function () {\n      return this.poll.results === STAFF_ONLY;\n    }))();\n    #staffOnly = (() => (dt7948.i(this, \"staffOnly\"), void 0))();\n    static #_19 = (() => dt7948.g(this.prototype, \"isMultiple\", [_tracking.tracked], function () {\n      return this.poll.type === MULTIPLE;\n    }))();\n    #isMultiple = (() => (dt7948.i(this, \"isMultiple\"), void 0))();\n    static #_20 = (() => dt7948.g(this.prototype, \"isNumber\", [_tracking.tracked], function () {\n      return this.poll.type === NUMBER;\n    }))();\n    #isNumber = (() => (dt7948.i(this, \"isNumber\"), void 0))();\n    static #_21 = (() => dt7948.g(this.prototype, \"showingResults\", [_tracking.tracked], function () {\n      return false;\n    }))();\n    #showingResults = (() => (dt7948.i(this, \"showingResults\"), void 0))();\n    static #_22 = (() => dt7948.g(this.prototype, \"hasSavedVote\", [_tracking.tracked], function () {\n      return this.args.attrs.hasSavedVote;\n    }))();\n    #hasSavedVote = (() => (dt7948.i(this, \"hasSavedVote\"), void 0))();\n    static #_23 = (() => dt7948.g(this.prototype, \"status\", [_tracking.tracked], function () {\n      return this.poll.status;\n    }))();\n    #status = (() => (dt7948.i(this, \"status\"), void 0))();\n    static #_24 = (() => dt7948.g(this.prototype, \"showResults\", [_tracking.tracked], function () {\n      return this.hasSavedVote || this.showingResults || this.topicArchived && !this.staffOnly || this.closed && !this.staffOnly;\n    }))();\n    #showResults = (() => (dt7948.i(this, \"showResults\"), void 0))();\n    post = this.args.attrs.post;\n    isMe = (() => this.currentUser && this.args.attrs.post.user_id === this.currentUser.id)();\n    checkUserGroups = (user1, poll1) => {\n      const pollGroups1 = poll1 && poll1.groups && poll1.groups.split(\",\").map(g1 => g1.toLowerCase());\n      if (!pollGroups1) {\n        return true;\n      }\n      const userGroups1 = user1 && user1.groups && user1.groups.map(g1 => g1.name.toLowerCase());\n      return userGroups1 && pollGroups1.some(g1 => userGroups1.includes(g1));\n    };\n    castVotes = option1 => {\n      if (!this.canCastVotes) {\n        return;\n      }\n      if (!this.currentUser) {\n        return;\n      }\n      return (0, _ajax.ajax)(\"/polls/vote\", {\n        type: \"PUT\",\n        data: {\n          post_id: this.args.attrs.post.id,\n          poll_name: this.poll.name,\n          options: this.vote\n        }\n      }).then(_ref => {\n        let {\n          poll: poll1\n        } = _ref;\n        this.options = [...poll1.options];\n        this.hasSavedVote = true;\n        this.rankedChoiceOutcome = poll1.ranked_choice_outcome || [];\n        this.poll.setProperties(poll1);\n        this.appEvents.trigger(\"poll:voted\", poll1, this.args.attrs.post, this.args.attrs.vote);\n        const voters1 = poll1.voters;\n        this.voters = [Number(voters1)][0];\n        if (this.poll.results !== \"on_close\") {\n          this.showResults = true;\n        }\n        if (this.poll.results === \"staff_only\") {\n          if (this.currentUser && this.currentUser.staff) {\n            this.showResults = true;\n          } else {\n            this.showResults = false;\n          }\n        }\n      }).catch(error1 => {\n        if (error1) {\n          if (!this.isMultiple && !this.isRankedChoice) {\n            this._toggleOption(option1);\n          }\n          (0, _ajaxError.popupAjaxError)(error1);\n        } else {\n          this.dialog.alert(_discourseI18n.default.t(\"poll.error_while_casting_votes\"));\n        }\n      });\n    };\n    areRanksValid = arr1 => {\n      let ranks1 = new Set(); // Using a Set to keep track of unique ranks\n      let hasNonZeroDuplicate1 = false;\n      arr1.forEach(obj1 => {\n        const rank1 = obj1.rank;\n        if (rank1 !== 0) {\n          if (ranks1.has(rank1)) {\n            hasNonZeroDuplicate1 = true;\n            return; // Exit forEach loop if a non-zero duplicate is found\n          }\n          ranks1.add(rank1);\n        }\n      });\n      return !hasNonZeroDuplicate1;\n    };\n    _toggleOption = (() => {\n      var _this = this;\n      return function (option1) {\n        let rank1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n        let options1 = _this.options;\n        let vote1 = _this.vote;\n        if (_this.isMultiple) {\n          const chosenIdx1 = vote1.indexOf(option1.id);\n          if (chosenIdx1 !== -1) {\n            vote1.splice(chosenIdx1, 1);\n          } else {\n            vote1.push(option1.id);\n          }\n        } else if (_this.isRankedChoice) {\n          options1.forEach((candidate1, i1) => {\n            const chosenIdx1 = vote1.findIndex(object1 => object1.digest === candidate1.id);\n            if (chosenIdx1 === -1) {\n              vote1.push({\n                digest: candidate1.id,\n                rank: candidate1.id === option1 ? rank1 : 0\n              });\n            } else {\n              if (candidate1.id === option1) {\n                vote1[chosenIdx1].rank = rank1;\n                options1[i1].rank = rank1;\n              }\n            }\n          });\n        } else {\n          vote1 = [option1.id];\n        }\n        _this.vote = [...vote1];\n        _this.options = [...options1];\n      };\n    })();\n    constructor() {\n      super(...arguments);\n      this.id = this.args.attrs.id;\n      this.post = this.args.attrs.post;\n      this.options = this.poll.options;\n      this.groupableUserFields = this.args.attrs.groupableUserFields;\n      this.rankedChoiceDropdownContent = [];\n      if (this.isRankedChoice) {\n        this.rankedChoiceDropdownContent.push({\n          id: 0,\n          name: _discourseI18n.default.t(\"poll.options.ranked_choice.abstain\")\n        });\n      }\n      this.options.forEach((option1, i1) => {\n        option1.rank = 0;\n        if (this.isRankedChoice) {\n          this.rankedChoiceDropdownContent.push({\n            id: i1 + 1,\n            name: (i1 + 1).toString()\n          });\n          this.args.attrs.vote.forEach(vote1 => {\n            if (vote1.digest === option1.id) {\n              option1.rank = vote1.rank;\n            }\n          });\n        }\n      });\n    }\n    get min() {\n      let min1 = parseInt(this.args.attrs.poll.min, 10);\n      if (isNaN(min1) || min1 < 0) {\n        min1 = 1;\n      }\n      return min1;\n    }\n    get max() {\n      let max1 = parseInt(this.args.attrs.poll.max, 10);\n      const numOptions1 = this.args.attrs.poll.options.length;\n      if (isNaN(max1) || max1 > numOptions1) {\n        max1 = numOptions1;\n      }\n      return max1;\n    }\n    get closed() {\n      return this.status === \"closed\" || this.isAutomaticallyClosed;\n    }\n    get isAutomaticallyClosed() {\n      const poll1 = this.poll;\n      return (poll1.close ?? false) && moment.utc(poll1.close, \"YYYY-MM-DD HH:mm:ss Z\") <= moment();\n    }\n    get hasVoted() {\n      return this.vote && this.vote.length > 0;\n    }\n    get hideResultsDisabled() {\n      return !this.staffOnly && (this.closed || this.topicArchived);\n    }\n    toggleOption(option1) {\n      let rank1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      if (this.closed) {\n        return;\n      }\n      if (!this.currentUser) {\n        // unlikely, handled by template logic\n        return;\n      }\n      if (!this.checkUserGroups(this.currentUser, this.poll)) {\n        return;\n      }\n      if (!this.isMultiple && !this.isRankedChoice && this.vote.length === 1 && this.vote[0] === option1.id) {\n        return this.removeVote();\n      }\n      if (!this.isMultiple && !this.isRankedChoice) {\n        this.vote.length = 0;\n      }\n      this._toggleOption(option1, rank1);\n      if (!this.isMultiple && !this.isRankedChoice) {\n        this.castVotes(option1);\n      }\n    }\n    static #_25 = (() => dt7948.n(this.prototype, \"toggleOption\", [_object.action]))();\n    toggleResults() {\n      const showResults1 = !this.showResults;\n      this.showResults = showResults1;\n    }\n    static #_26 = (() => dt7948.n(this.prototype, \"toggleResults\", [_object.action]))();\n    get canCastVotes() {\n      if (this.closed || this.showingResults || !this.currentUser) {\n        return false;\n      }\n      const selectedOptionCount1 = this.vote?.length || 0;\n      if (this.isMultiple) {\n        return selectedOptionCount1 >= this.min && selectedOptionCount1 <= this.max;\n      }\n      if (this.isRankedChoice) {\n        return this.options.length === this.vote.length && this.areRanksValid(this.vote);\n      }\n      return selectedOptionCount1 > 0;\n    }\n    get notInVotingGroup() {\n      return !this.checkUserGroups(this.currentUser, this.poll);\n    }\n    get pollGroups() {\n      return _discourseI18n.default.t(\"poll.results.groups.title\", {\n        groups: this.poll.groups\n      });\n    }\n    get showCastVotesButton() {\n      return (this.isMultiple || this.isRankedChoice) && !this.showResults;\n    }\n    get castVotesButtonClass() {\n      return `btn cast-votes ${this.canCastVotes ? \"btn-primary\" : \"btn-default\"}`;\n    }\n    get castVotesButtonIcon() {\n      return !this.castVotesDisabled ? \"check\" : \"far-square\";\n    }\n    get castVotesDisabled() {\n      return !this.canCastVotes;\n    }\n    get showHideResultsButton() {\n      return this.showResults && !this.hideResultsDisabled;\n    }\n    get showShowResultsButton() {\n      return !this.showResults && !this.hideResultsDisabled && !(this.poll.results === ON_VOTE && !this.hasSavedVote && !this.isMe) && !(this.poll.results === ON_CLOSE && !this.closed) && !(this.poll.results === STAFF_ONLY && !this.isStaff) && this.voters > 0;\n    }\n    get showRemoveVoteButton() {\n      return !this.showResults && !this.closed && !this.hideResultsDisabled && this.hasSavedVote;\n    }\n    get isCheckbox() {\n      if (this.isMultiple) {\n        return true;\n      } else {\n        return false;\n      }\n    }\n    get resultsWidgetTypeClass() {\n      const type1 = this.poll.type;\n      return this.isNumber || this.poll.chart_type !== _pollUiBuilder.PIE_CHART_TYPE ? `discourse-poll-${type1}-results` : \"discourse-poll-pie-chart\";\n    }\n    get resultsPie() {\n      return this.poll.chart_type === _pollUiBuilder.PIE_CHART_TYPE;\n    }\n    get averageRating() {\n      const totalScore1 = this.options.reduce((total1, o1) => {\n        return total1 + parseInt(o1.html, 10) * parseInt(o1.votes, 10);\n      }, 0);\n      const average1 = this.voters === 0 ? 0 : (0, _round.default)(totalScore1 / this.voters, -2);\n      return (0, _template2.htmlSafe)(_discourseI18n.default.t(\"poll.average_rating\", {\n        average: average1\n      }));\n    }\n    updatedVoters() {\n      this.preloadedVoters = this.args.preloadedVoters;\n      this.options = [...this.args.options];\n      if (this.isRankedChoice) {\n        this.options.forEach(candidate1 => {\n          let specificVote1 = this.vote.find(vote1 => vote1.digest === candidate1.id);\n          let rank1 = specificVote1 ? specificVote1.rank : 0;\n          candidate1.rank = rank1;\n        });\n      }\n    }\n    static #_27 = (() => dt7948.n(this.prototype, \"updatedVoters\", [_object.action]))();\n    fetchVoters(optionId1) {\n      let votersCount1;\n      this.loading = true;\n      let options1 = this.options;\n      options1.find(option1 => option1.id === optionId1).loading = true;\n      this.options = [...options1];\n      votersCount1 = this.options.find(option1 => option1.id === optionId1).votes;\n      return (0, _ajax.ajax)(\"/polls/voters.json\", {\n        data: {\n          post_id: this.post.id,\n          poll_name: this.poll.name,\n          option_id: optionId1,\n          page: Math.floor(votersCount1 / FETCH_VOTERS_COUNT) + 1,\n          limit: FETCH_VOTERS_COUNT\n        }\n      }).then(result1 => {\n        const voters1 = optionId1 ? this.preloadedVoters[optionId1] : this.preloadedVoters;\n        const newVoters1 = optionId1 ? result1.voters[optionId1] : result1.voters;\n        if (this.isRankedChoice) {\n          this.preloadedVoters[optionId1] = [...new Set([...newVoters1])];\n        } else {\n          const votersSet1 = new Set(voters1.map(voter1 => voter1.username));\n          newVoters1.forEach(voter1 => {\n            if (!votersSet1.has(voter1.username)) {\n              votersSet1.add(voter1.username);\n              voters1.push(voter1);\n            }\n          });\n          // remove users who changed their vote\n          if (this.poll.type === REGULAR) {\n            Object.keys(this.preloadedVoters).forEach(otherOptionId1 => {\n              if (optionId1 !== otherOptionId1) {\n                this.preloadedVoters[otherOptionId1] = this.preloadedVoters[otherOptionId1].filter(voter1 => !votersSet1.has(voter1.username));\n              }\n            });\n          }\n        }\n        this.preloadedVoters[optionId1] = [...new Set([...this.preloadedVoters[optionId1], ...newVoters1])];\n      }).catch(error1 => {\n        if (error1) {\n          (0, _ajaxError.popupAjaxError)(error1);\n        } else {\n          this.dialog.alert(_discourseI18n.default.t(\"poll.error_while_fetching_voters\"));\n        }\n      }).finally(() => {\n        options1.find(option1 => option1.id === optionId1).loading = false;\n        this.options = [...options1];\n      });\n    }\n    static #_28 = (() => dt7948.n(this.prototype, \"fetchVoters\", [_object.action]))();\n    dropDownClick(dropDownAction1) {\n      this[dropDownAction1]();\n    }\n    static #_29 = (() => dt7948.n(this.prototype, \"dropDownClick\", [_object.action]))();\n    removeVote() {\n      return (0, _ajax.ajax)(\"/polls/vote\", {\n        type: \"DELETE\",\n        data: {\n          post_id: this.post.id,\n          poll_name: this.poll.name\n        }\n      }).then(_ref2 => {\n        let {\n          poll: poll1\n        } = _ref2;\n        if (this.poll.type === RANKED_CHOICE) {\n          poll1.options.forEach(option1 => {\n            option1.rank = 0;\n          });\n        }\n        this.options = [...poll1.options];\n        this.poll.setProperties(poll1);\n        this.rankedChoiceOutcome = poll1.ranked_choice_outcome || [];\n        this.vote = [];\n        this.voters = poll1.voters;\n        this.hasSavedVote = false;\n        this.appEvents.trigger(\"poll:voted\", poll1, this.post, this.vote);\n      }).catch(error1 => (0, _ajaxError.popupAjaxError)(error1));\n    }\n    static #_30 = (() => dt7948.n(this.prototype, \"removeVote\", [_object.action]))();\n    toggleStatus() {\n      if (this.isAutomaticallyClosed) {\n        return;\n      }\n      this.dialog.yesNoConfirm({\n        message: _discourseI18n.default.t(this.closed ? \"poll.open.confirm\" : \"poll.close.confirm\"),\n        didConfirm: () => {\n          const status1 = this.closed ? \"open\" : \"closed\";\n          (0, _ajax.ajax)(\"/polls/toggle_status\", {\n            type: \"PUT\",\n            data: {\n              post_id: this.post.id,\n              poll_name: this.poll.name,\n              status: status1\n            }\n          }).then(() => {\n            this.poll.status = status1;\n            this.status = status1;\n            if (this.poll.results === \"on_close\" || this.poll.results === \"always\") {\n              this.showResults = this.status === \"closed\";\n            }\n          }).catch(error1 => {\n            if (error1) {\n              (0, _ajaxError.popupAjaxError)(error1);\n            } else {\n              this.dialog.alert(_discourseI18n.default.t(\"poll.error_while_toggling_status\"));\n            }\n          });\n        }\n      });\n    }\n    static #_31 = (() => dt7948.n(this.prototype, \"toggleStatus\", [_object.action]))();\n    showBreakdown() {\n      this.modal.show(_pollBreakdown.default, {\n        model: this.args.attrs\n      });\n    }\n    static #_32 = (() => dt7948.n(this.prototype, \"showBreakdown\", [_object.action]))();\n    exportResults() {\n      const queryID1 = this.poll.type === RANKED_CHOICE ? this.siteSettings.poll_export_ranked_choice_data_explorer_query_id : this.siteSettings.poll_export_data_explorer_query_id;\n      // This uses the Data Explorer plugin export as CSV route\n      // There is detection to check if the plugin is enabled before showing the button\n      (0, _ajax.ajax)(`/admin/plugins/explorer/queries/${queryID1}/run.csv`, {\n        type: \"POST\",\n        data: {\n          // needed for data-explorer route compatibility\n          params: JSON.stringify({\n            poll_name: this.poll.name,\n            post_id: this.post.id.toString()\n          }),\n          explain: false,\n          limit: 1000000,\n          download: 1\n        }\n      }).then(csvContent1 => {\n        const downloadLink1 = document.createElement(\"a\");\n        const blob1 = new Blob([csvContent1], {\n          type: \"text/csv;charset=utf-8;\"\n        });\n        downloadLink1.href = URL.createObjectURL(blob1);\n        downloadLink1.setAttribute(\"download\", `poll-export-${this.poll.name}-${this.post.id}.csv`);\n        downloadLink1.click();\n        downloadLink1.remove();\n      }).catch(error1 => {\n        if (error1) {\n          (0, _ajaxError.popupAjaxError)(error1);\n        } else {\n          this.dialog.alert(_discourseI18n.default.t(\"poll.error_while_exporting_results\"));\n        }\n      });\n    }\n    static #_33 = (() => dt7948.n(this.prototype, \"exportResults\", [_object.action]))();\n    static #_34 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <div\n          {{didUpdate this.updatedVoters @preloadedVoters}}\n          class=\"poll-container\"\n        >\n          {{this.titleHTML}}\n          {{#if this.notInVotingGroup}}\n            <div class=\"alert alert-danger\">{{this.pollGroups}}</div>\n          {{/if}}\n          {{#if this.showResults}}\n            <div class={{this.resultsWidgetTypeClass}}>\n              {{#if this.isNumber}}\n                <span>{{this.averageRating}}</span>\n              {{else}}\n                {{#if this.resultsPie}}\n                  <PollResultsPie @id={{this.id}} @options={{this.options}} />\n                {{else}}\n                  <PollResultsTabs\n                    @options={{this.options}}\n                    @pollName={{this.poll.name}}\n                    @pollType={{this.poll.type}}\n                    @isRankedChoice={{this.isRankedChoice}}\n                    @isPublic={{this.poll.public}}\n                    @postId={{this.post.id}}\n                    @vote={{this.vote}}\n                    @voters={{this.preloadedVoters}}\n                    @votersCount={{this.poll.voters}}\n                    @fetchVoters={{this.fetchVoters}}\n                    @rankedChoiceOutcome={{this.rankedChoiceOutcome}}\n                  />\n                {{/if}}\n              {{/if}}\n            </div>\n          {{else}}\n            <PollOptions\n              @isCheckbox={{this.isCheckbox}}\n              @isRankedChoice={{this.isRankedChoice}}\n              @rankedChoiceDropdownContent={{this.rankedChoiceDropdownContent}}\n              @options={{this.options}}\n              @votes={{this.vote}}\n              @sendOptionSelect={{this.toggleOption}}\n            />\n          {{/if}}\n        </div>\n        <PollInfo\n          @options={{this.options}}\n          @min={{this.min}}\n          @max={{this.max}}\n          @isMultiple={{this.isMultiple}}\n          @close={{this.close}}\n          @closed={{this.closed}}\n          @results={{this.poll.results}}\n          @showResults={{this.showResults}}\n          @postUserId={{this.poll.post.user_id}}\n          @isPublic={{this.poll.public}}\n          @hasVoted={{this.hasVoted}}\n          @voters={{this.voters}}\n        />\n        <div class=\"poll-buttons\">\n          {{#if this.showCastVotesButton}}\n            <button\n              class={{this.castVotesButtonClass}}\n              title=\"poll.cast-votes.title\"\n              disabled={{this.castVotesDisabled}}\n              {{on \"click\" this.castVotes}}\n            >\n              {{icon this.castVotesButtonIcon}}\n              <span class=\"d-button-label\">{{i18n \"poll.cast-votes.label\"}}</span>\n            </button>\n          {{/if}}\n    \n          {{#if this.showHideResultsButton}}\n            <button\n              class=\"btn btn-default toggle-results\"\n              title=\"poll.hide-results.title\"\n              {{on \"click\" this.toggleResults}}\n            >\n              {{icon \"chevron-left\"}}\n              <span class=\"d-button-label\">{{i18n \"poll.hide-results.label\"}}</span>\n            </button>\n          {{/if}}\n    \n          {{#if this.showShowResultsButton}}\n            <button\n              class=\"btn btn-default toggle-results\"\n              title=\"poll.show-results.title\"\n              {{on \"click\" this.toggleResults}}\n            >\n              {{icon \"chart-bar\"}}\n              <span class=\"d-button-label\">{{i18n \"poll.show-results.label\"}}</span>\n            </button>\n          {{/if}}\n    \n          {{#if this.showRemoveVoteButton}}\n            <button\n              class=\"btn btn-default remove-vote\"\n              title=\"poll.remove-vote.title\"\n              {{on \"click\" this.removeVote}}\n            >\n              {{icon \"undo\"}}\n              <span class=\"d-button-label\">{{i18n \"poll.remove-vote.label\"}}</span>\n            </button>\n          {{/if}}\n    \n          <PollButtonsDropdown\n            @closed={{this.closed}}\n            @voters={{this.voters}}\n            @isStaff={{this.isStaff}}\n            @isMe={{this.isMe}}\n            @isRankedChoice={{this.isRankedChoice}}\n            @topicArchived={{this.topicArchived}}\n            @groupableUserFields={{this.groupableUserFields}}\n            @isAutomaticallyClosed={{this.isAutomaticallyClosed}}\n            @dropDownClick={{this.dropDownClick}}\n          />\n        </div>\n      \n    */\n    {\n      \"id\": \"g9gkpX7O\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[11,0],[24,0,\\\"poll-container\\\"],[4,[32,0],[[30,0,[\\\"updatedVoters\\\"]],[30,1]],null],[12],[1,\\\"\\\\n      \\\"],[1,[30,0,[\\\"titleHTML\\\"]]],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"notInVotingGroup\\\"]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"alert alert-danger\\\"],[12],[1,[30,0,[\\\"pollGroups\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,0,[\\\"showResults\\\"]],[[[1,\\\"        \\\"],[10,0],[15,0,[30,0,[\\\"resultsWidgetTypeClass\\\"]]],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"isNumber\\\"]],[[[1,\\\"            \\\"],[10,1],[12],[1,[30,0,[\\\"averageRating\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]],[[[41,[30,0,[\\\"resultsPie\\\"]],[[[1,\\\"              \\\"],[8,[32,1],null,[[\\\"@id\\\",\\\"@options\\\"],[[30,0,[\\\"id\\\"]],[30,0,[\\\"options\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[8,[32,2],null,[[\\\"@options\\\",\\\"@pollName\\\",\\\"@pollType\\\",\\\"@isRankedChoice\\\",\\\"@isPublic\\\",\\\"@postId\\\",\\\"@vote\\\",\\\"@voters\\\",\\\"@votersCount\\\",\\\"@fetchVoters\\\",\\\"@rankedChoiceOutcome\\\"],[[30,0,[\\\"options\\\"]],[30,0,[\\\"poll\\\",\\\"name\\\"]],[30,0,[\\\"poll\\\",\\\"type\\\"]],[30,0,[\\\"isRankedChoice\\\"]],[30,0,[\\\"poll\\\",\\\"public\\\"]],[30,0,[\\\"post\\\",\\\"id\\\"]],[30,0,[\\\"vote\\\"]],[30,0,[\\\"preloadedVoters\\\"]],[30,0,[\\\"poll\\\",\\\"voters\\\"]],[30,0,[\\\"fetchVoters\\\"]],[30,0,[\\\"rankedChoiceOutcome\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]]]],[]]],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[8,[32,3],null,[[\\\"@isCheckbox\\\",\\\"@isRankedChoice\\\",\\\"@rankedChoiceDropdownContent\\\",\\\"@options\\\",\\\"@votes\\\",\\\"@sendOptionSelect\\\"],[[30,0,[\\\"isCheckbox\\\"]],[30,0,[\\\"isRankedChoice\\\"]],[30,0,[\\\"rankedChoiceDropdownContent\\\"]],[30,0,[\\\"options\\\"]],[30,0,[\\\"vote\\\"]],[30,0,[\\\"toggleOption\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n    \\\"],[8,[32,4],null,[[\\\"@options\\\",\\\"@min\\\",\\\"@max\\\",\\\"@isMultiple\\\",\\\"@close\\\",\\\"@closed\\\",\\\"@results\\\",\\\"@showResults\\\",\\\"@postUserId\\\",\\\"@isPublic\\\",\\\"@hasVoted\\\",\\\"@voters\\\"],[[30,0,[\\\"options\\\"]],[30,0,[\\\"min\\\"]],[30,0,[\\\"max\\\"]],[30,0,[\\\"isMultiple\\\"]],[30,0,[\\\"close\\\"]],[30,0,[\\\"closed\\\"]],[30,0,[\\\"poll\\\",\\\"results\\\"]],[30,0,[\\\"showResults\\\"]],[30,0,[\\\"poll\\\",\\\"post\\\",\\\"user_id\\\"]],[30,0,[\\\"poll\\\",\\\"public\\\"]],[30,0,[\\\"hasVoted\\\"]],[30,0,[\\\"voters\\\"]]]],null],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"poll-buttons\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showCastVotesButton\\\"]],[[[1,\\\"        \\\"],[11,\\\"button\\\"],[16,0,[30,0,[\\\"castVotesButtonClass\\\"]]],[24,\\\"title\\\",\\\"poll.cast-votes.title\\\"],[16,\\\"disabled\\\",[30,0,[\\\"castVotesDisabled\\\"]]],[4,[32,5],[\\\"click\\\",[30,0,[\\\"castVotes\\\"]]],null],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,6],[[30,0,[\\\"castVotesButtonIcon\\\"]]],null]],[1,\\\"\\\\n          \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,7],[\\\"poll.cast-votes.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showHideResultsButton\\\"]],[[[1,\\\"        \\\"],[11,\\\"button\\\"],[24,0,\\\"btn btn-default toggle-results\\\"],[24,\\\"title\\\",\\\"poll.hide-results.title\\\"],[4,[32,5],[\\\"click\\\",[30,0,[\\\"toggleResults\\\"]]],null],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,6],[\\\"chevron-left\\\"],null]],[1,\\\"\\\\n          \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,7],[\\\"poll.hide-results.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showShowResultsButton\\\"]],[[[1,\\\"        \\\"],[11,\\\"button\\\"],[24,0,\\\"btn btn-default toggle-results\\\"],[24,\\\"title\\\",\\\"poll.show-results.title\\\"],[4,[32,5],[\\\"click\\\",[30,0,[\\\"toggleResults\\\"]]],null],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,6],[\\\"chart-bar\\\"],null]],[1,\\\"\\\\n          \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,7],[\\\"poll.show-results.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showRemoveVoteButton\\\"]],[[[1,\\\"        \\\"],[11,\\\"button\\\"],[24,0,\\\"btn btn-default remove-vote\\\"],[24,\\\"title\\\",\\\"poll.remove-vote.title\\\"],[4,[32,5],[\\\"click\\\",[30,0,[\\\"removeVote\\\"]]],null],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,6],[\\\"undo\\\"],null]],[1,\\\"\\\\n          \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,7],[\\\"poll.remove-vote.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n      \\\"],[8,[32,8],null,[[\\\"@closed\\\",\\\"@voters\\\",\\\"@isStaff\\\",\\\"@isMe\\\",\\\"@isRankedChoice\\\",\\\"@topicArchived\\\",\\\"@groupableUserFields\\\",\\\"@isAutomaticallyClosed\\\",\\\"@dropDownClick\\\"],[[30,0,[\\\"closed\\\"]],[30,0,[\\\"voters\\\"]],[30,0,[\\\"isStaff\\\"]],[30,0,[\\\"isMe\\\"]],[30,0,[\\\"isRankedChoice\\\"]],[30,0,[\\\"topicArchived\\\"]],[30,0,[\\\"groupableUserFields\\\"]],[30,0,[\\\"isAutomaticallyClosed\\\"]],[30,0,[\\\"dropDownClick\\\"]]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@preloadedVoters\\\"],false,[\\\"if\\\"]]\",\n      \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/components/poll.js\",\n      \"scope\": () => [_didUpdate.default, _pollResultsPie.default, _pollResultsTabs.default, _pollOptions.default, _pollInfo.default, _modifier.on, _dIcon.default, _i18n.default, _pollButtonsDropdown.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PollComponent;\n});","define(\"discourse/plugins/poll/discourse/initializers/add-poll-ui-builder\", [\"exports\", \"discourse/lib/plugin-api\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\"], function (_exports, _pluginApi, _pollUiBuilder) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  function initializePollUIBuilder(api) {\n    api.addComposerToolbarPopupMenuOption({\n      action: toolbarEvent => {\n        api.container.lookup(\"service:modal\").show(_pollUiBuilder.default, {\n          model: {\n            toolbarEvent\n          }\n        });\n      },\n      icon: \"chart-bar\",\n      label: \"poll.ui_builder.title\",\n      condition: composer => {\n        const siteSettings = api.container.lookup(\"service:site-settings\");\n        const currentUser = api.getCurrentUser();\n        return siteSettings.poll_enabled && (composer.model.topic?.pm_with_non_human_user || currentUser && (currentUser.staff || currentUser.can_create_poll));\n      }\n    });\n  }\n  var _default = _exports.default = {\n    name: \"add-poll-ui-builder\",\n    initialize() {\n      (0, _pluginApi.withPluginApi)(\"1.14.0\", initializePollUIBuilder);\n    }\n  };\n});","define(\"discourse/plugins/poll/discourse/initializers/extend-for-poll\", [\"exports\", \"@ember/object\", \"discourse/lib/plugin-api\", \"discourse/widgets/glue\", \"discourse-common/lib/get-owner\", \"discourse-common/utils/decorators\"], function (_exports, _object, _pluginApi, _glue, _getOwner, _decorators) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PLUGIN_ID = \"discourse-poll\";\n  let _glued = [];\n  let _interval = null;\n  function rerender() {\n    _glued.forEach(g => g.queueRerender());\n  }\n  function cleanUpPolls() {\n    if (_interval) {\n      clearInterval(_interval);\n      _interval = null;\n    }\n    _glued.forEach(g => g.cleanUp());\n    _glued = [];\n  }\n  function initializePolls(api) {\n    const register = (0, _getOwner.getRegister)(api),\n      pollGroupableUserFields = api.container.lookup(\"service:site-settings\").poll_groupable_user_fields;\n    cleanUpPolls();\n    api.modifyClass(\"controller:topic\", dt7948.p({\n      pluginId: PLUGIN_ID,\n      subscribe() {\n        this._super(...arguments);\n        this.messageBus.subscribe(`/polls/${this.model.id}`, this._onPollMessage);\n      },\n      unsubscribe() {\n        this.messageBus.unsubscribe(\"/polls/*\", this._onPollMessage);\n        this._super(...arguments);\n      },\n      _onPollMessage(msg) {\n        const post = this.get(\"model.postStream\").findLoadedPost(msg.post_id);\n        post?.set(\"polls\", msg.polls);\n      }\n    }, [[\"method\", \"_onPollMessage\", [_decorators.bind]]]));\n    api.modifyClass(\"model:post\", dt7948.p({\n      pluginId: PLUGIN_ID,\n      _polls: null,\n      pollsObject: null,\n      pollsChanged() {\n        const polls = this.polls;\n        if (polls) {\n          this._polls = this._polls || {};\n          polls.forEach(p => {\n            const existing = this._polls[p.name];\n            if (existing) {\n              this._polls[p.name].setProperties(p);\n            } else {\n              this._polls[p.name] = _object.default.create(p);\n            }\n          });\n          this.set(\"pollsObject\", this._polls);\n          rerender();\n        }\n      }\n    }, [[\"method\", \"pollsChanged\", [(0, _decorators.observes)(\"polls\")]]]));\n    function attachPolls(elem, helper) {\n      let pollNodes = [...elem.querySelectorAll(\".poll\")];\n      pollNodes = pollNodes.filter(node => node.parentNode.tagName !== \"BLOCKQUOTE\");\n      if (!pollNodes.length || !helper) {\n        return;\n      }\n      const post = helper.getModel();\n      api.preventCloak(post.id);\n      post.pollsChanged();\n      const polls = post.pollsObject || {};\n      const votes = post.polls_votes || {};\n      _interval = _interval || setInterval(rerender, 30000);\n      pollNodes.forEach(pollNode => {\n        const pollName = pollNode.dataset.pollName;\n        let poll = polls[pollName];\n        let pollPost = post;\n        let vote = votes[pollName] || [];\n        const quotedId = pollNode.closest(\".expanded-quote\")?.dataset.postId;\n        if (quotedId && post.quoted[quotedId]) {\n          pollPost = post.quoted[quotedId];\n          pollPost = _object.default.create(pollPost);\n          poll = _object.default.create(pollPost.polls.findBy(\"name\", pollName));\n          vote = pollPost.polls_votes || {};\n          vote = vote[pollName] || [];\n        }\n        if (poll) {\n          const titleElement = pollNode.querySelector(\".poll-title\");\n          const attrs = {\n            id: `${pollName}-${pollPost.id}`,\n            post: pollPost,\n            poll,\n            vote,\n            hasSavedVote: vote.length > 0,\n            titleHTML: titleElement?.outerHTML,\n            groupableUserFields: (pollGroupableUserFields || \"\").split(\"|\").filter(Boolean),\n            _postCookedWidget: helper.widget\n          };\n          const glue = new _glue.default(\"discourse-poll\", register, attrs);\n          glue.appendTo(pollNode);\n          _glued.push(glue);\n        }\n      });\n    }\n    api.includePostAttributes(\"polls\", \"polls_votes\");\n    api.decorateCookedElement(attachPolls, {\n      onlyStream: true\n    });\n    api.cleanupStream(cleanUpPolls);\n    const siteSettings = api.container.lookup(\"service:site-settings\");\n    if (siteSettings.poll_enabled) {\n      api.addSearchSuggestion(\"in:polls\");\n    }\n  }\n  var _default = _exports.default = {\n    name: \"extend-for-poll\",\n    initialize() {\n      (0, _pluginApi.withPluginApi)(\"0.8.7\", initializePolls);\n    }\n  };\n});","define(\"discourse/plugins/poll/discourse/widgets/discourse-poll\", [\"exports\", \"discourse/widgets/render-glimmer\", \"discourse/widgets/widget\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", \"@ember/template-factory\"], function (_exports, _renderGlimmer, _widget, _pollUiBuilder, _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, _widget.createWidget)(\"discourse-poll\", {\n    tagName: \"div\",\n    buildKey: attrs => `poll-${attrs.id}`,\n    services: [\"dialog\"],\n    buildAttributes(attrs) {\n      let cssClasses = \"poll-outer\";\n      if (attrs.poll.chart_type === _pollUiBuilder.PIE_CHART_TYPE) {\n        cssClasses += \" pie\";\n      }\n      return {\n        class: cssClasses,\n        \"data-poll-name\": attrs.poll.name,\n        \"data-poll-type\": attrs.poll.type\n      };\n    },\n    html(attrs) {\n      return [new _renderGlimmer.default(this, \"div.poll\", (0, _templateFactory.createTemplateFactory)(\n      /*\n        <Poll @attrs={{@data.attrs}} @preloadedVoters={{@data.preloadedVoters}} @options={{@data.options}} />\n      */\n      {\n        \"id\": \"ylHwocOn\",\n        \"block\": \"[[[8,[39,0],null,[[\\\"@attrs\\\",\\\"@preloadedVoters\\\",\\\"@options\\\"],[[30,1,[\\\"attrs\\\"]],[30,1,[\\\"preloadedVoters\\\"]],[30,1,[\\\"options\\\"]]]],null]],[\\\"@data\\\"],false,[\\\"poll\\\"]]\",\n        \"moduleName\": \"/code/current/app/assets/javascripts/discourse/discourse/plugins/poll/discourse/widgets/discourse-poll.js\",\n        \"isStrictMode\": false\n      }), {\n        attrs,\n        preloadedVoters: attrs.poll.preloaded_voters,\n        options: attrs.poll.options\n      })];\n    }\n  });\n});","define(\"discourse/plugins/poll/lib/chart-colors\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.getColors = getColors;\n  function getColors(count, palette) {\n    palette = palette || \"cool\";\n    let gradient;\n    switch (palette) {\n      case \"cool\":\n        gradient = {\n          0: [255, 255, 255],\n          25: [220, 237, 200],\n          50: [66, 179, 213],\n          75: [26, 39, 62],\n          100: [0, 0, 0]\n        };\n        break;\n      case \"warm\":\n        gradient = {\n          0: [255, 255, 255],\n          25: [254, 235, 101],\n          50: [228, 82, 27],\n          75: [77, 52, 47],\n          100: [0, 0, 0]\n        };\n        break;\n    }\n    let gradientKeys = Object.keys(gradient);\n    let colors = [];\n    let currentGradientValue;\n    let previousGradientIndex;\n    for (let colorIndex = 0; colorIndex < count; colorIndex++) {\n      currentGradientValue = (colorIndex + 1) * (100 / (count + 1));\n      previousGradientIndex = previousGradientIndex || 0;\n      let baseGradientKeyIndex;\n      for (let y = previousGradientIndex; y < gradientKeys.length; y++) {\n        if (!gradientKeys[y + 1]) {\n          baseGradientKeyIndex = y - 1;\n          break;\n        } else if (currentGradientValue >= gradientKeys[y] && currentGradientValue < gradientKeys[y + 1]) {\n          baseGradientKeyIndex = y;\n          break;\n        }\n      }\n      let differenceMultiplier = (currentGradientValue - gradientKeys[baseGradientKeyIndex]) / (gradientKeys[baseGradientKeyIndex + 1] - gradientKeys[baseGradientKeyIndex]);\n      let color = [];\n      for (let k = 0; k < 3; k++) {\n        color.push(Math.round(gradient[gradientKeys[baseGradientKeyIndex]][k] - (gradient[gradientKeys[baseGradientKeyIndex]][k] - gradient[gradientKeys[baseGradientKeyIndex + 1]][k]) * differenceMultiplier));\n      }\n      colors.push(`rgb(${color.toString()})`);\n      previousGradientIndex = baseGradientKeyIndex;\n    }\n    return colors;\n  }\n});","define(\"discourse/plugins/poll/lib/discourse-markdown/poll\", [\"exports\", \"discourse-i18n\"], function (_exports, _discourseI18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.setup = setup;\n  /*eslint no-bitwise:0 */\n\n  const DATA_PREFIX = \"data-poll-\";\n  const DEFAULT_POLL = {\n    name: \"poll\",\n    status: \"open\"\n  };\n  const ALLOWED_ATTRIBUTES = [\"chartType\", \"close\", \"groups\", \"max\", \"min\", \"name\", \"order\", \"public\", \"results\", \"status\", \"step\", \"type\"];\n  function addNumberListItems(state, pollTokens, min, max, step) {\n    pollTokens.push(new state.Token(\"bullet_list_open\", \"ul\", 1));\n    for (let i = min; i <= max; i += step) {\n      pollTokens.push(new state.Token(\"list_item_open\", \"li\", 1));\n      let token = new state.Token(\"text\", \"\", 0);\n      token.content = String(i);\n      pollTokens.push(token);\n      pollTokens.push(new state.Token(\"list_item_close\", \"li\", -1));\n    }\n    pollTokens.push(new state.Token(\"bullet_list_close\", \"ul\", -1));\n  }\n  function addPollContainer(state, titleTokens, pollTokens) {\n    let token = state.push(\"poll_container_open\", \"div\", 1);\n    token.attrs = [[\"class\", \"poll-container\"]];\n    if (titleTokens.length > 0) {\n      token = state.push(\"poll_title_open\", \"div\", 1);\n      token.attrs = [[\"class\", \"poll-title\"]];\n      state.tokens.push(...titleTokens);\n      state.push(\"poll_title_close\", \"div\", -1);\n    }\n    for (let i = 0; i < pollTokens.length; i++) {\n      if (pollTokens[i].type === \"list_item_open\") {\n        let listItemCloseIndex = pollTokens.findIndex((t, j) => j > i && t.type === \"list_item_close\");\n        if (listItemCloseIndex === -1) {\n          continue;\n        }\n        let text = pollTokens.slice(i, listItemCloseIndex + 1).filter(c => c.type === \"text\" || c.type === \"inline\").map(c => c.content).join(\" \");\n        let hash = md5(JSON.stringify([text]));\n        pollTokens[i].attrs ||= [];\n        pollTokens[i].attrs.push([DATA_PREFIX + \"option-id\", hash]);\n      }\n    }\n    state.tokens.push(...pollTokens);\n    state.push(\"poll_container_close\", \"div\", -1);\n  }\n  function addPollInfo(state) {\n    let token = state.push(\"poll_info_open\", \"div\", 1);\n    token.attrs = [[\"class\", \"poll-info\"]];\n    token = state.push(\"poll_info_counts_open\", \"div\", 1);\n    token.attrs = [[\"class\", \"poll-info_counts\"]];\n    token = state.push(\"poll_info_counts_count_open\", \"div\", 1);\n    token.attrs = [[\"class\", \"poll-info_counts-count\"]];\n    token = state.push(\"poll_info_number_open\", \"span\", 1);\n    token.attrs = [[\"class\", \"info-number\"]];\n    token.block = false;\n    token = state.push(\"text\", \"\", 0);\n    token.content = \"0\";\n    state.push(\"poll_info_number_close\", \"span\", -1);\n    token = state.push(\"poll_info_label_open\", \"span\", 1);\n    token.attrs = [[\"class\", \"info-label\"]];\n    token.block = false;\n    token = state.push(\"text\", \"\", 0);\n    token.content = _discourseI18n.default.t(\"poll.voters\", {\n      count: 0\n    });\n    state.push(\"poll_info_label_close\", \"span\", -1);\n    state.push(\"poll_info_counts_count_close\", \"div\", -1);\n    state.push(\"poll_info_counts_close\", \"div\", -1);\n    state.push(\"poll_info_close\", \"div\", -1);\n  }\n  const rule = {\n    tag: \"poll\",\n    before(state, _ref) {\n      let {\n        attrs\n      } = _ref;\n      let open = state.tokens.filter(t => t.type === \"poll_open\").length;\n      let closed = state.tokens.filter(t => t.type === \"poll_close\").length;\n      if (open > closed) {\n        return; // poll-ception is now allowed\n      }\n      let token = state.push(\"poll_open\", \"div\", 1);\n      token.poll_attrs = {\n        ...DEFAULT_POLL,\n        ...attrs\n      };\n    },\n    after(state, openToken) {\n      if (openToken.type !== \"poll_open\") {\n        return;\n      }\n      let attrs = openToken.poll_attrs;\n      let openTokenIndex = state.tokens.indexOf(openToken);\n      let pollTokens = state.tokens.slice(openTokenIndex + 1);\n      let titleTokens = [];\n      if (pollTokens.length > 0 && pollTokens[0].type === \"heading_open\") {\n        let idx = pollTokens.findIndex(t => t.type === \"heading_close\");\n        if (idx !== -1) {\n          titleTokens = pollTokens.splice(0, idx + 1).slice(1, -1);\n          state.tokens.splice(openTokenIndex + 1, idx + 1);\n        }\n      }\n      if (attrs.type === \"number\") {\n        let min = parseInt(attrs.min, 10);\n        let max = parseInt(attrs.max, 10);\n        let step = parseInt(attrs.step, 10);\n        if (isNaN(min)) {\n          min = 1;\n        }\n        if (isNaN(max)) {\n          max = state.md.options.discourse.pollMaximumOptions;\n        }\n        if (isNaN(step) || step < 1) {\n          step = 1;\n        }\n        if (pollTokens.length > 0) {\n          state.tokens.splice(openTokenIndex, 1);\n          return;\n        } else if (min <= max) {\n          addNumberListItems(state, pollTokens, min, max, step);\n        }\n      }\n      state.tokens.splice(openTokenIndex + 1);\n      openToken.attrs ||= [];\n      openToken.attrs.push([\"class\", \"poll\"]);\n      for (let n of ALLOWED_ATTRIBUTES) {\n        if (attrs[n]) {\n          openToken.attrs.push([DATA_PREFIX + n, attrs[n]]);\n        }\n      }\n      if (pollTokens.length > 0) {\n        if (!pollTokens[0].type.endsWith(\"_list_open\")) {\n          return;\n        }\n      }\n      addPollContainer(state, titleTokens, pollTokens);\n      addPollInfo(state);\n      state.push(\"poll_close\", \"div\", -1);\n    }\n  };\n  function setup(helper) {\n    helper.allowList([\"a.button.cast-votes\", \"a.button.toggle-results\", \"div.poll-buttons\", \"div.poll-container\", \"div.poll-info_counts-count\", \"div.poll-info_counts\", \"div.poll-info\", \"div.poll-title\", \"div.poll\", \"div[data-*]\", \"li[data-*]\", \"span.info-label\", \"span.info-number\", \"span.info-text\"]);\n    helper.registerOptions((opts, siteSettings) => {\n      opts.features.poll = siteSettings.poll_enabled;\n      opts.pollMaximumOptions = siteSettings.poll_maximum_options;\n    });\n    helper.registerPlugin(md => md.block.bbcode.ruler.push(\"poll\", rule));\n  }\n\n  /*!\n   * Joseph Myer's md5() algorithm wrapped in a self-invoked function to prevent\n   * global namespace pollution, modified to hash unicode characters as UTF-8.\n   *\n   * Copyright 1999-2010, Joseph Myers, Paul Johnston, Greg Holt, Will Bond <will@wbond.net>\n   * http://www.myersdaily.org/joseph/javascript/md5-text.html\n   * http://pajhome.org.uk/crypt/md5\n   *\n   * Released under the BSD license\n   * http://www.opensource.org/licenses/bsd-license\n   */\n  function md5cycle(x, k) {\n    let a = x[0],\n      b = x[1],\n      c = x[2],\n      d = x[3];\n    a = ff(a, b, c, d, k[0], 7, -680876936);\n    d = ff(d, a, b, c, k[1], 12, -389564586);\n    c = ff(c, d, a, b, k[2], 17, 606105819);\n    b = ff(b, c, d, a, k[3], 22, -1044525330);\n    a = ff(a, b, c, d, k[4], 7, -176418897);\n    d = ff(d, a, b, c, k[5], 12, 1200080426);\n    c = ff(c, d, a, b, k[6], 17, -1473231341);\n    b = ff(b, c, d, a, k[7], 22, -45705983);\n    a = ff(a, b, c, d, k[8], 7, 1770035416);\n    d = ff(d, a, b, c, k[9], 12, -1958414417);\n    c = ff(c, d, a, b, k[10], 17, -42063);\n    b = ff(b, c, d, a, k[11], 22, -1990404162);\n    a = ff(a, b, c, d, k[12], 7, 1804603682);\n    d = ff(d, a, b, c, k[13], 12, -40341101);\n    c = ff(c, d, a, b, k[14], 17, -1502002290);\n    b = ff(b, c, d, a, k[15], 22, 1236535329);\n    a = gg(a, b, c, d, k[1], 5, -165796510);\n    d = gg(d, a, b, c, k[6], 9, -1069501632);\n    c = gg(c, d, a, b, k[11], 14, 643717713);\n    b = gg(b, c, d, a, k[0], 20, -373897302);\n    a = gg(a, b, c, d, k[5], 5, -701558691);\n    d = gg(d, a, b, c, k[10], 9, 38016083);\n    c = gg(c, d, a, b, k[15], 14, -660478335);\n    b = gg(b, c, d, a, k[4], 20, -405537848);\n    a = gg(a, b, c, d, k[9], 5, 568446438);\n    d = gg(d, a, b, c, k[14], 9, -1019803690);\n    c = gg(c, d, a, b, k[3], 14, -187363961);\n    b = gg(b, c, d, a, k[8], 20, 1163531501);\n    a = gg(a, b, c, d, k[13], 5, -1444681467);\n    d = gg(d, a, b, c, k[2], 9, -51403784);\n    c = gg(c, d, a, b, k[7], 14, 1735328473);\n    b = gg(b, c, d, a, k[12], 20, -1926607734);\n    a = hh(a, b, c, d, k[5], 4, -378558);\n    d = hh(d, a, b, c, k[8], 11, -2022574463);\n    c = hh(c, d, a, b, k[11], 16, 1839030562);\n    b = hh(b, c, d, a, k[14], 23, -35309556);\n    a = hh(a, b, c, d, k[1], 4, -1530992060);\n    d = hh(d, a, b, c, k[4], 11, 1272893353);\n    c = hh(c, d, a, b, k[7], 16, -155497632);\n    b = hh(b, c, d, a, k[10], 23, -1094730640);\n    a = hh(a, b, c, d, k[13], 4, 681279174);\n    d = hh(d, a, b, c, k[0], 11, -358537222);\n    c = hh(c, d, a, b, k[3], 16, -722521979);\n    b = hh(b, c, d, a, k[6], 23, 76029189);\n    a = hh(a, b, c, d, k[9], 4, -640364487);\n    d = hh(d, a, b, c, k[12], 11, -421815835);\n    c = hh(c, d, a, b, k[15], 16, 530742520);\n    b = hh(b, c, d, a, k[2], 23, -995338651);\n    a = ii(a, b, c, d, k[0], 6, -198630844);\n    d = ii(d, a, b, c, k[7], 10, 1126891415);\n    c = ii(c, d, a, b, k[14], 15, -1416354905);\n    b = ii(b, c, d, a, k[5], 21, -57434055);\n    a = ii(a, b, c, d, k[12], 6, 1700485571);\n    d = ii(d, a, b, c, k[3], 10, -1894986606);\n    c = ii(c, d, a, b, k[10], 15, -1051523);\n    b = ii(b, c, d, a, k[1], 21, -2054922799);\n    a = ii(a, b, c, d, k[8], 6, 1873313359);\n    d = ii(d, a, b, c, k[15], 10, -30611744);\n    c = ii(c, d, a, b, k[6], 15, -1560198380);\n    b = ii(b, c, d, a, k[13], 21, 1309151649);\n    a = ii(a, b, c, d, k[4], 6, -145523070);\n    d = ii(d, a, b, c, k[11], 10, -1120210379);\n    c = ii(c, d, a, b, k[2], 15, 718787259);\n    b = ii(b, c, d, a, k[9], 21, -343485551);\n    x[0] = add32(a, x[0]);\n    x[1] = add32(b, x[1]);\n    x[2] = add32(c, x[2]);\n    x[3] = add32(d, x[3]);\n  }\n  function cmn(q, a, b, x, s, t) {\n    a = add32(add32(a, q), add32(x, t));\n    return add32(a << s | a >>> 32 - s, b);\n  }\n  function ff(a, b, c, d, x, s, t) {\n    return cmn(b & c | ~b & d, a, b, x, s, t);\n  }\n  function gg(a, b, c, d, x, s, t) {\n    return cmn(b & d | c & ~d, a, b, x, s, t);\n  }\n  function hh(a, b, c, d, x, s, t) {\n    return cmn(b ^ c ^ d, a, b, x, s, t);\n  }\n  function ii(a, b, c, d, x, s, t) {\n    return cmn(c ^ (b | ~d), a, b, x, s, t);\n  }\n  function md51(s) {\n    // Converts the string to UTF-8 \"bytes\"\n    s = unescape(encodeURI(s));\n    let n = s.length,\n      state = [1732584193, -271733879, -1732584194, 271733878],\n      i;\n    for (i = 64; i <= s.length; i += 64) {\n      md5cycle(state, md5blk(s.substring(i - 64, i)));\n    }\n    s = s.substring(i - 64);\n    let tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n    for (i = 0; i < s.length; i++) {\n      tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n    }\n    tail[i >> 2] |= 0x80 << (i % 4 << 3);\n    if (i > 55) {\n      md5cycle(state, tail);\n      for (i = 0; i < 16; i++) {\n        tail[i] = 0;\n      }\n    }\n    tail[14] = n * 8;\n    md5cycle(state, tail);\n    return state;\n  }\n  function md5blk(s) {\n    /* I figured global was faster.   */\n    let md5blks = [],\n      i; /* Andy King said do it this way. */\n    for (i = 0; i < 64; i += 4) {\n      md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n    }\n    return md5blks;\n  }\n  let hex_chr = \"0123456789abcdef\".split(\"\");\n  function rhex(n) {\n    let s = \"\",\n      j = 0;\n    for (; j < 4; j++) {\n      s += hex_chr[n >> j * 8 + 4 & 0x0f] + hex_chr[n >> j * 8 & 0x0f];\n    }\n    return s;\n  }\n  function hex(x) {\n    for (let i = 0; i < x.length; i++) {\n      x[i] = rhex(x[i]);\n    }\n    return x.join(\"\");\n  }\n  function add32(a, b) {\n    return a + b & 0xffffffff;\n  }\n  function md5(s) {\n    return hex(md51(s));\n  }\n});","define(\"discourse/plugins/poll/lib/even-round\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _default;\n  // works as described on http://stackoverflow.com/a/13483710\n  function sumsUpTo100(percentages) {\n    return percentages.map(p => Math.floor(p)).reduce((a, b) => a + b) === 100;\n  }\n  function _default(percentages) {\n    let decimals = percentages.map(a => a % 1);\n    const sumOfDecimals = Math.ceil(decimals.reduce((a, b) => a + b));\n    // compensate error by adding 1 to n items with the greatest decimal part\n    for (let i = 0, max = decimals.length; i < sumOfDecimals && i < max; i++) {\n      // find the greatest item in the decimals array, set it to 0,\n      // and increase the corresponding item in the percentages array by 1\n      let greatest = 0;\n      let index = 0;\n      for (let j = 0; j < decimals.length; j++) {\n        if (decimals[j] > greatest) {\n          index = j;\n          greatest = decimals[j];\n        }\n      }\n      ++percentages[index];\n      decimals[index] = 0;\n      // quit early when there is a rounding issue\n      if (sumsUpTo100(percentages)) {\n        break;\n      }\n    }\n    return percentages.map(p => Math.floor(p));\n  }\n});"],"mappings":"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"}