{"version":3,"file":"poll.js","names":["define","_exports","_component","_helper","_modifier","_object","_service","_string","_template","_component2","_dModal","_concatClass","_ajax","_ajaxError","_comboBox","_truthHelpers","_discourseI18n","_pollBreakdownChart","_pollBreakdownOption","_templateFactory","Object","defineProperty","value","default","PollBreakdownModal","dt7948","c","g","this","prototype","service","dialog","i","siteSettings","model","charts","groupedBy","highlightedOption","displayMode","init","set","groupableUserFields","id","fetchGroupedPollData","super","arguments","title","poll","trustHTML","post","topic","n","computed","poll_groupable_user_fields","split","filter","Boolean","map","field","transformed","length","classify","label","join","totalVotes","options","reduce","sum","option","votes","ajax","data","post_id","poll_name","name","user_field_name","catch","error","popupAjaxError","alert","i18n","then","result","isDestroying","isDestroyed","grouped_results","setGrouping","action","onSelectPanel","panel","setComponentTemplate","createTemplateFactory","block","moduleName","scope","eq","on","fn","get","isStrictMode","tagName","_tracking","_trackedBuiltIns","_dButton","_dToggleSwitch","_dateTimeInput","_inputTip","_radioButton","_dIcon","_withEventValue","_arrayTools","_constants","_decorators","_trackedTools","_utilities","_autoFocus","_groupChooser","REGULAR_POLL_TYPE","RANKED_CHOICE_POLL_TYPE","PIE_CHART_TYPE","NUMBER_POLL_TYPE","MULTIPLE_POLL_TYPE","BAR_CHART_TYPE","ALWAYS_POLL_RESULT","PollUiBuilderModal","currentUser","site","tracked","chartType","dynamic","pollAutoClose","pollGroups","pollMax","pollMin","pollOptionsText","pollResult","pollStep","pollTitle","pollType","poll_default_public","publicPoll","showAdvanced","autoTrackedArray","TrackedObject","pollOptions","showNumber","isNumber","showRankedChoice","isRankedChoice","rankedChoiceOrRegular","isRegular","rankedChoiceOrNumber","canRemoveOption","pollResults","staff","push","isMultiple","pollOptionsCount","siteGroups","groups","AUTO_GROUPS","everyone","isPie","enforceMinMaxValues","poll_maximum_options","bind","pollOutput","pollHeader","output","match","args","toolbarEvent","getText","step","toISOString","trim","forEach","minNumOfOptionsValidation","failed","reason","count","ok","showMinNumOfOptionsValidation","minMaxValueValidation","parseInt","optionsCount","disableInsert","_comboboxOptions","startIndex","endIndex","Array","keys","number","onChangePollMin","event","target","onChangePollMax","onOptionsTextChange","e","insertPoll","addText","closeModal","toggleAdvanced","x","updateValue","onInputKeydown","index","key","preventDefault","stopPropagation","addOption","code","shiftKey","metaKey","ctrlKey","discourse_local_dates_enabled","generateCurrentDateMarkup","optionalRequire","timezone","user_option","markup","input","start","selectionStart","end","selectionEnd","slice","requestAnimationFrame","setSelectionRange","atIndex","splice","removeOption","removeValueFromArray","updatePollType","togglePublic","Textarea","and","not","_computed","_runloop","_loadChartJs","_chartColors","_pollUiBuilder","PollBreakdownChart","group","setHighlightedOption","mapBy","_optionToSlice","_previousHighlightedSliceIndex","_previousDisplayMode","willDestroy","_chart","destroy","didInsertElement","canvas","element","querySelector","Chart","ChartDataLabelsPlugin","Promise","all","loadChartJSDatalabels","getContext","chartConfig","plugins","didReceiveAttrs","_updateDisplayMode","_updateHighlight","colorStyle","optionColors","transformedData","counter","colors","getColors","color","type","datasets","backgroundColor","hoverBorderColor","tooltip","datalabels","borderRadius","font","family","getComputedStyle","document","body","fontFamily","size","padding","top","right","bottom","left","formatter","toNumber","precision","responsive","aspectRatio","animation","duration","onHover","activeElements","next","sliceIndex","optionIndex","find","Number","config","update","undefined","datasetIndex","setActiveElements","classNames","_computed2","_decoratePollOption","PollBreakdownOption","onMouseOver","onMouseOut","propertyEqual","highlighted","equal","showPercentage","constructor","percent","colorBackgroundStyle","colorPreviewStyle","helpers","getHoverColor","_dropdownMenu","_dMenu","buttonOptionsMap","exportResults","className","icon","showBreakdown","openPoll","closePoll","showTally","PollButtonsDropdownComponent","getDropdownButtonState","dropDownClick","dropDownAction","getDropdownContent","contents","isAdmin","admin","dataExplorerEnabled","data_explorer_enabled","exportQueryID","poll_export_ranked_choice_data_explorer_query_id","poll_export_data_explorer_query_id","closed","voters","isStaff","isMe","topicArchived","isAutomaticallyClosed","availableDisplayMode","showDropdown","showDropdownAsButton","_formatter","STAFF_ONLY","PollInfoComponent","multipleHelpText","min","max","votersLabel","showTotalVotes","showResults","total","o","totalVotesLabel","automaticCloseAgeLabel","age","automaticCloseClosesInLabel","timeLeft","showMultipleHelpText","closeTitle","closeDate","moment","utc","close","isValid","format","relativeAge","toDate","addAgo","to","resultsOnVote","results","hasVoted","postUserId","resultsOnVoteTitle","resultsOnClose","resultsOnCloseTitle","resultsStaffOnly","resultsStaffOnlyTitle","publicTitle","isPublic","publicTitleLabel","showInstructionsSection","isDynamic","PollOptionsDropdownComponent","onRegisterApi","api","dMenu","selectRank","rank","sendRank","rankLabel","_routeAction","_pollOptionRankedChoiceDropdown","PollOptionsComponent","_pollOptionRankedChoice","isChosen","includes","sendClick","closest","sendOptionSelect","rankedChoiceDropdownContent","priority","toString","_didInsert","_emberModifier","_decoratedHtml","PollResultsPieComponent","htmlLegendPlugin","afterUpdate","chart","ul","getElementById","containerID","innerHTML","legend","labels","generateLabels","item","li","createElement","classList","add","onclick","toggleDataVisibility","boxSpan","style","background","fillStyle","textContainer","fontColor","text","getDataVisibility","opacity","appendChild","stripHtml","html","DOMParser","parseFromString","textContent","pieChartConfig","opts","strippedLabels","l","display","htmlLegend","legendContainerId","registerLegendElement","modifier","legendElement","registerCanvasElement","canvasElement","canvasId","legendId","drawPie","el","applyHtmlDecorators","NULL_HELPER","NON_STREAM_HTML_DECORATOR","_decorateCookedContent","PollResultsRankedChoiceComponent","rankedChoiceWinnerText","rankedChoiceOutcome","round_activity","winner","winning_candidate","rankedChoiceTiedText","_evenRound","_pollVoters","PollResultsStandardComponent","orderOptions","sort","a","b","getPercentages","ordered","votersCount","fill","roundPercentages","percentages","Math","floor","enrichOptions","rounded","idx","per","chosen","vote","percentage","loading","orderedOptions","roundedPercentages","concat","_pollResultsRankedChoice","_pollResultsStandard","TabsComponent","activeTab","tabOne","tabTwo","tabs","selectTab","tab","_boundAvatarTemplate","PollVotersComponent","groupVotersByRank","voter","rankedChoiceVoters","groupedByRank","_conditionalLoadingSpinner","_pollVotersRankedChoice","showMore","_didUpdate","_round","_pollBreakdown","_pollButtonsDropdown","_pollInfo","_pollOptions","_pollResultsPie","_pollResultsTabs","RANKED_CHOICE","ON_CLOSE","CLOSED_STATUS","PollComponent","router","appEvents","modal","defaultPreloadedVoters","preloadedVoters","voterListExpanded","polls_votes","hasSavedVote","staffOnly","checkUserGroups","user","toLowerCase","userGroups","some","areRanksValid","arr","ranks","Set","hasNonZeroDuplicate","allZeros","obj","has","_toggleOption","chosenIdx","indexOf","candidate","findIndex","object","digest","public","preloaded_voters","titleHTML","user_id","status","castVotes","canCastVotes","assign","trigger","enrichedOptions","ranked_choice_outcome","isNaN","numOptions","hideResultsDisabled","toggleOption","removeVote","toggleResults","selectedOptionCount","notInVotingGroup","showCastVotesButton","castVotesButtonClass","castVotesButtonIcon","castVotesDisabled","showHideResultsButton","showShowResultsButton","showRemoveVoteButton","isCheckbox","resultsWidgetTypeClass","chart_type","resultsPie","averageRating","totalScore","average","updatedVoters","fetchVoters","optionId","option_id","page","limit","newVoters","votersSet","username","otherOptionId","finally","toggleStatus","yesNoConfirm","message","didConfirm","refresh","show","queryID","params","JSON","stringify","explain","download","csvContent","downloadLink","blob","Blob","href","URL","createObjectURL","setAttribute","click","remove","toggleDisplayMode","_pluginApi","_richEditorExtension","initializePollUIBuilder","addComposerToolbarPopupMenuOption","container","lookup","condition","composer","getCurrentUser","poll_enabled","pm_with_non_human_user","can_create_poll","registerRichEditorExtension","initialize","withPluginApi","_poll","_templateOnly","attachPolls","elem","helper","pollNodes","querySelectorAll","node","parentNode","getModel","polls","pollsObject","pollNode","pollName","dataset","pollPost","quotedId","postId","quoted","create","p","outerHTML","pollDynamic","newPollNode","replaceWith","renderGlimmer","initializePolls","modifyClass","Superclass","subscribe","messageBus","_onPollMessage","unsubscribe","msg","findLoadedPost","_polls","_refreshPollsObject","rawPoll","decorateCookedElement","onlyStream","addSearchSuggestion","setAdminPluginIcon","cleanups","getCSSColor","varName","documentElement","getPropertyValue","palette","cssColors","gradientColors","gradient","currentGradientValue","previousGradientIndex","gradientKeys","colorIndex","baseGradientKeyIndex","y","differenceMultiplier","k","round","generateGradientColors","setup","allowList","registerOptions","features","pollMaximumOptions","registerPlugin","md","bbcode","ruler","rule","DATA_PREFIX","DEFAULT_POLL","ALLOWED_ATTRIBUTES","tag","before","state","attrs","tokens","t","poll_attrs","after","openToken","openTokenIndex","pollTokens","titleTokens","discourse","Token","token","content","String","addNumberListItems","endsWith","listItemCloseIndex","j","hash","md5","addPollContainer","addPollInfo","md5cycle","d","ff","gg","hh","ii","add32","cmn","q","s","md5blk","md5blks","charCodeAt","hex_chr","rhex","hex","unescape","encodeURI","substring","tail","md51","sumsUpTo100","decimals","sumOfDecimals","ceil","greatest","_text","extension","nodeSpec","selectable","isolating","defining","parseDOM","getAttrs","dom","getAttribute","toDOM","class","poll_info","contentEditable","parse","poll_container","ignore","poll_title","poll_info_counts","poll_info_counts_count","poll_info_number","poll_info_label_open","poll_info_label_close","serializeNode","buildBBCodeAttrs","write","renderContent"],"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/initializers/poll-admin-plugin-configuration-nav.js","discourse/plugins/poll/discourse/modifiers/decorate-cooked-content.js","discourse/plugins/poll/discourse/modifiers/decorate-poll-option.js","discourse/plugins/poll/lib/chart-colors.js","discourse/plugins/poll/lib/discourse-markdown/poll.js","discourse/plugins/poll/lib/even-round.js","discourse/plugins/poll/lib/rich-editor-extension.js"],"sourcesContent":["define(\"discourse/plugins/poll/discourse/components/modal/poll-breakdown\", [\"exports\", \"@ember/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"@ember/string\", \"@ember/template\", \"@ember-decorators/component\", \"discourse/components/d-modal\", \"discourse/helpers/concat-class\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/select-kit/components/combo-box\", \"discourse/truth-helpers\", \"discourse-i18n\", \"discourse/plugins/poll/discourse/components/poll-breakdown-chart\", \"discourse/plugins/poll/discourse/components/poll-breakdown-option\", \"@ember/template-factory\"], function (_exports, _component, _helper, _modifier, _object, _service, _string, _template, _component2, _dModal, _concatClass, _ajax, _ajaxError, _comboBox, _truthHelpers, _discourseI18n, _pollBreakdownChart, _pollBreakdownOption, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const PollBreakdownModal = dt7948.c(class PollBreakdownModal extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"dialog\", [_service.service]);\n    }\n    #dialog = (dt7948.i(this, \"dialog\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    model = null;\n    charts = null;\n    groupedBy = null;\n    highlightedOption = null;\n    displayMode = \"percentage\";\n    init() {\n      this.set(\"groupedBy\", this.groupableUserFields[0]?.id);\n      this.fetchGroupedPollData();\n      super.init(...arguments);\n    }\n    get title() {\n      return this.model?.poll?.title ? (0, _template.trustHTML)(this.model?.poll?.title) : this.model?.post?.topic?.title;\n    }\n    static {\n      dt7948.n(this.prototype, \"title\", [(0, _object.computed)(\"model.poll.title\", \"model.post.topic.title\")]);\n    }\n    get groupableUserFields() {\n      return this.siteSettings.poll_groupable_user_fields.split(\"|\").filter(Boolean).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    get totalVotes() {\n      return this.model?.poll?.options?.reduce((sum, option) => sum + option.votes, 0);\n    }\n    static {\n      dt7948.n(this.prototype, \"totalVotes\", [(0, _object.computed)(\"model.poll.options\")]);\n    }\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((0, _discourseI18n.i18n)(\"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 {\n      dt7948.n(this.prototype, \"setGrouping\", [_object.action]);\n    }\n    onSelectPanel(panel) {\n      this.set(\"displayMode\", panel.id);\n    }\n    static {\n      dt7948.n(this.prototype, \"onSelectPanel\", [_object.action]);\n    }\n    static {\n      (0, _component.setComponentTemplate)((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={{concatClass\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={{concatClass\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\": \"WXpfE+RP\",\n        \"block\": \"[[[8,[32,0],[[24,0,\\\"poll-breakdown has-tabs\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\"],[[28,[32,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,[32,2],[\\\"modal-tab percentage\\\",[52,[28,[32,3],[[30,0,[\\\"displayMode\\\"]],\\\"percentage\\\"],null],\\\"is-active\\\"]],null]],[4,[32,4],[\\\"click\\\",[28,[32,5],[[28,[31,1],[[30,0,[\\\"displayMode\\\"]]],null],\\\"percentage\\\"],null]],null],[12],[1,[28,[32,1],[\\\"poll.breakdown.percentage\\\"],null]],[13],[1,\\\"\\\\n      \\\"],[11,\\\"li\\\"],[16,0,[28,[32,2],[\\\"modal-tab count\\\",[52,[28,[32,3],[[30,0,[\\\"displayMode\\\"]],\\\"count\\\"],null],\\\"is-active\\\"]],null]],[4,[32,4],[\\\"click\\\",[28,[32,5],[[28,[31,1],[[30,0,[\\\"displayMode\\\"]]],null],\\\"count\\\"],null]],null],[12],[1,[28,[32,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,[32,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,[31,3],[[28,[31,3],[[30,0,[\\\"model\\\",\\\"poll\\\",\\\"options\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[8,[32,6],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,[32,5],[[28,[31,1],[[30,0,[\\\"highlightedOption\\\"]]],null],[30,3]],null],[28,[32,5],[[28,[31,1],[[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,[32,1],[\\\"poll.breakdown.breakdown\\\"],null]],[13],[1,\\\"\\\\n\\\\n        \\\"],[8,[32,7],[[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,[31,3],[[28,[31,3],[[30,0,[\\\"charts\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[8,[32,8],null,[[\\\"@group\\\",\\\"@options\\\",\\\"@displayMode\\\",\\\"@highlightedOption\\\",\\\"@setHighlightedOption\\\"],[[28,[32,9],[[30,4],\\\"group\\\"],null],[28,[32,9],[[30,4],\\\"options\\\"],null],[30,0,[\\\"displayMode\\\"]],[30,0,[\\\"highlightedOption\\\"]],[28,[32,5],[[28,[31,1],[[30,0,[\\\"highlightedOption\\\"]]],null]],null]]],null],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[]]]]]],[\\\"@closeModal\\\",\\\"option\\\",\\\"index\\\",\\\"chart\\\"],[\\\"if\\\",\\\"mut\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/modal/poll-breakdown.js\",\n        \"scope\": () => [_dModal.default, _discourseI18n.i18n, _concatClass.default, _truthHelpers.eq, _modifier.on, _helper.fn, _pollBreakdownOption.default, _comboBox.default, _pollBreakdownChart.default, _helper.get],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.tagName)(\"\")]);\n  var _default = _exports.default = PollBreakdownModal;\n});","define(\"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"@ember-compat/tracked-built-ins\", \"discourse/components/d-button\", \"discourse/components/d-modal\", \"discourse/components/d-toggle-switch\", \"discourse/components/date-time-input\", \"discourse/components/input-tip\", \"discourse/components/radio-button\", \"discourse/helpers/concat-class\", \"discourse/helpers/d-icon\", \"discourse/helpers/with-event-value\", \"discourse/lib/array-tools\", \"discourse/lib/constants\", \"discourse/lib/decorators\", \"discourse/lib/tracked-tools\", \"discourse/lib/utilities\", \"discourse/modifiers/auto-focus\", \"discourse/select-kit/components/combo-box\", \"discourse/select-kit/components/group-chooser\", \"discourse/truth-helpers\", \"discourse-i18n\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _component2, _helper, _modifier, _object, _service, _trackedBuiltIns, _dButton, _dModal, _dToggleSwitch, _dateTimeInput, _inputTip, _radioButton, _concatClass, _dIcon, _withEventValue, _arrayTools, _constants, _decorators, _trackedTools, _utilities, _autoFocus, _comboBox, _groupChooser, _truthHelpers, _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 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 {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"site\", [_service.service]);\n    }\n    #site = (dt7948.i(this, \"site\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"chartType\", [_tracking.tracked], function () {\n        return BAR_CHART_TYPE;\n      });\n    }\n    #chartType = (dt7948.i(this, \"chartType\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"dynamic\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #dynamic = (dt7948.i(this, \"dynamic\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollAutoClose\", [_tracking.tracked]);\n    }\n    #pollAutoClose = (dt7948.i(this, \"pollAutoClose\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollGroups\", [_tracking.tracked]);\n    }\n    #pollGroups = (dt7948.i(this, \"pollGroups\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollMax\", [_tracking.tracked], function () {\n        return 2;\n      });\n    }\n    #pollMax = (dt7948.i(this, \"pollMax\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollMin\", [_tracking.tracked], function () {\n        return 1;\n      });\n    }\n    #pollMin = (dt7948.i(this, \"pollMin\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollOptionsText\", [_tracking.tracked], function () {\n        return \"\";\n      });\n    }\n    #pollOptionsText = (dt7948.i(this, \"pollOptionsText\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollResult\", [_tracking.tracked], function () {\n        return ALWAYS_POLL_RESULT;\n      });\n    }\n    #pollResult = (dt7948.i(this, \"pollResult\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollStep\", [_tracking.tracked], function () {\n        return 1;\n      });\n    }\n    #pollStep = (dt7948.i(this, \"pollStep\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollTitle\", [_tracking.tracked]);\n    }\n    #pollTitle = (dt7948.i(this, \"pollTitle\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollType\", [_tracking.tracked], function () {\n        return REGULAR_POLL_TYPE;\n      });\n    }\n    #pollType = (dt7948.i(this, \"pollType\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"publicPoll\", [_tracking.tracked], function () {\n        return this.siteSettings.poll_default_public;\n      });\n    }\n    #publicPoll = (dt7948.i(this, \"publicPoll\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"showAdvanced\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #showAdvanced = (dt7948.i(this, \"showAdvanced\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"pollOptions\", [_trackedTools.autoTrackedArray], function () {\n        return [new _trackedBuiltIns.TrackedObject({\n          value: \"\"\n        })];\n      });\n    }\n    #pollOptions = (dt7948.i(this, \"pollOptions\"), void 0);\n    get showNumber() {\n      return this.showAdvanced || this.isNumber;\n    }\n    get showRankedChoice() {\n      return this.showAdvanced || this.isRankedChoice;\n    }\n    get rankedChoiceOrRegular() {\n      return this.isRankedChoice || this.isRegular;\n    }\n    get rankedChoiceOrNumber() {\n      return this.isRankedChoice || this.isNumber;\n    }\n    get canRemoveOption() {\n      return this.pollOptions.length > 1;\n    }\n    get pollResults() {\n      const options = [{\n        name: (0, _discourseI18n.i18n)(\"poll.ui_builder.poll_result.always\"),\n        value: ALWAYS_POLL_RESULT\n      }, {\n        name: (0, _discourseI18n.i18n)(\"poll.ui_builder.poll_result.vote\"),\n        value: VOTE_POLL_RESULT\n      }, {\n        name: (0, _discourseI18n.i18n)(\"poll.ui_builder.poll_result.closed\"),\n        value: CLOSED_POLL_RESULT\n      }];\n      if (this.currentUser.staff) {\n        options.push({\n          name: (0, _discourseI18n.i18n)(\"poll.ui_builder.poll_result.staff\"),\n          value: STAFF_POLL_RESULT\n        });\n      }\n      return options;\n    }\n    get isRegular() {\n      return this.pollType === REGULAR_POLL_TYPE;\n    }\n    get isNumber() {\n      return this.pollType === NUMBER_POLL_TYPE;\n    }\n    get isMultiple() {\n      return this.pollType === MULTIPLE_POLL_TYPE;\n    }\n    get isRankedChoice() {\n      return this.pollType === RANKED_CHOICE_POLL_TYPE;\n    }\n    get pollOptionsCount() {\n      return (this.pollOptions || []).filter(option => option.value.length > 0).length;\n    }\n    get siteGroups() {\n      // prevents group \"everyone\" to be listed\n      return this.site.groups.filter(g => g.id !== _constants.AUTO_GROUPS.everyone.id);\n    }\n    get isPie() {\n      return this.pollType !== NUMBER_POLL_TYPE && this.chartType === PIE_CHART_TYPE;\n    }\n    enforceMinMaxValues() {\n      if (this.isMultiple) {\n        if (this.pollMin <= 0 || this.pollMin >= this.pollMax || this.pollMin >= this.pollOptionsCount) {\n          this.pollMin = this.pollOptionsCount > 0 ? 1 : 0;\n        }\n        if (this.pollMax <= 0 || this.pollMin >= this.pollMax || this.pollMax > this.pollOptionsCount) {\n          this.pollMax = this.pollOptionsCount;\n        }\n      } else if (this.isNumber) {\n        this.pollMax = this.siteSettings.poll_maximum_options;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"enforceMinMaxValues\", [_decorators.bind]);\n    }\n    get pollOutput() {\n      let pollHeader = \"[poll\";\n      let output = \"\";\n      const match = this.args.model.toolbarEvent.getText().match(/\\[poll(\\s+name=[^\\s\\]]+)*.*\\]/gim);\n      if (match) {\n        pollHeader += ` name=poll${match.length + 1}`;\n      }\n      let step = this.pollStep;\n      if (step < 1) {\n        step = 1;\n      }\n      if (this.pollType) {\n        pollHeader += ` type=${this.pollType}`;\n      }\n      if (this.pollResult) {\n        pollHeader += ` results=${this.pollResult}`;\n      }\n      if (this.pollMin && this.pollType !== REGULAR_POLL_TYPE) {\n        pollHeader += ` min=${this.pollMin}`;\n      }\n      if (this.pollMax && this.pollType !== REGULAR_POLL_TYPE) {\n        pollHeader += ` max=${this.pollMax}`;\n      }\n      if (this.pollType === NUMBER_POLL_TYPE) {\n        pollHeader += ` step=${step}`;\n      }\n      pollHeader += ` public=${this.publicPoll ? \"true\" : \"false\"}`;\n      if (this.chartType && this.pollType !== NUMBER_POLL_TYPE) {\n        pollHeader += ` chartType=${this.chartType}`;\n      }\n      if (this.dynamic) {\n        pollHeader += ` dynamic=true`;\n      }\n      if (this.pollGroups?.length > 0) {\n        pollHeader += ` groups=${this.pollGroups}`;\n      }\n      if (this.pollAutoClose) {\n        pollHeader += ` close=${this.pollAutoClose.toISOString()}`;\n      }\n      pollHeader += \"]\";\n      output += `${pollHeader}\\n`;\n      if (this.pollTitle) {\n        output += `# ${this.pollTitle.trim()}\\n`;\n      }\n      if (this.pollOptions.length > 0 && this.pollType !== NUMBER_POLL_TYPE) {\n        this.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    get minNumOfOptionsValidation() {\n      if (!this.isNumber) {\n        if (this.pollOptionsCount < 1) {\n          return {\n            failed: true,\n            reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.options_min_count\")\n          };\n        }\n        if (this.pollOptionsCount > this.siteSettings.poll_maximum_options) {\n          return {\n            failed: true,\n            reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.options_max_count\", {\n              count: this.siteSettings.poll_maximum_options\n            })\n          };\n        }\n      }\n      return {\n        ok: true\n      };\n    }\n    get showMinNumOfOptionsValidation() {\n      return this.pollOptions.length !== 1 || this.pollOptions[0].value !== \"\";\n    }\n    get minMaxValueValidation() {\n      const pollMin = parseInt(this.pollMin, 10) || 0;\n      const pollMax = parseInt(this.pollMax, 10) || 0;\n      const pollStep = parseInt(this.pollStep, 10) || 0;\n      if (pollMin < 0) {\n        return {\n          failed: true,\n          reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.invalid_min_value\")\n        };\n      }\n      if (pollMax < 0 || this.isMultiple && pollMax > this.pollOptionsCount) {\n        return {\n          failed: true,\n          reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.invalid_max_value\")\n        };\n      }\n      if (pollMin > pollMax) {\n        return {\n          failed: true,\n          reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.invalid_values\")\n        };\n      }\n      if (this.isNumber) {\n        if (pollStep < 1) {\n          return {\n            failed: true,\n            reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.min_step_value\")\n          };\n        }\n        const optionsCount = (pollMax - pollMin + 1) / pollStep;\n        if (optionsCount < 1) {\n          return {\n            failed: true,\n            reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.options_min_count\")\n          };\n        }\n        if (optionsCount > this.siteSettings.poll_maximum_options) {\n          return {\n            failed: true,\n            reason: (0, _discourseI18n.i18n)(\"poll.ui_builder.help.options_max_count\", {\n              count: this.siteSettings.poll_maximum_options\n            })\n          };\n        }\n      }\n      return {\n        ok: true\n      };\n    }\n    get disableInsert() {\n      return !this.minMaxValueValidation.ok || !this.minNumOfOptionsValidation.ok;\n    }\n    _comboboxOptions(startIndex, endIndex) {\n      return [...Array(endIndex - startIndex).keys()].map(number => ({\n        value: number + startIndex,\n        name: number + startIndex\n      }));\n    }\n    onChangePollMin(event) {\n      this.pollMin = event.target.value;\n      this.enforceMinMaxValues();\n    }\n    static {\n      dt7948.n(this.prototype, \"onChangePollMin\", [_object.action]);\n    }\n    onChangePollMax(event) {\n      this.pollMax = event.target.value;\n      this.enforceMinMaxValues();\n    }\n    static {\n      dt7948.n(this.prototype, \"onChangePollMax\", [_object.action]);\n    }\n    onOptionsTextChange(e) {\n      this.pollOptions = e.target.value.split(\"\\n\").map(value => new _trackedBuiltIns.TrackedObject({\n        value\n      }));\n      this.enforceMinMaxValues();\n    }\n    static {\n      dt7948.n(this.prototype, \"onOptionsTextChange\", [_object.action]);\n    }\n    insertPoll() {\n      this.args.model.toolbarEvent.addText(this.pollOutput);\n      this.args.closeModal();\n    }\n    static {\n      dt7948.n(this.prototype, \"insertPoll\", [_object.action]);\n    }\n    toggleAdvanced() {\n      this.showAdvanced = !this.showAdvanced;\n      if (this.showAdvanced) {\n        this.pollOptionsText = this.pollOptions.map(x => x.value).join(\"\\n\");\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleAdvanced\", [_object.action]);\n    }\n    updateValue(option, event) {\n      option.value = event.target.value;\n      this.enforceMinMaxValues();\n    }\n    static {\n      dt7948.n(this.prototype, \"updateValue\", [_object.action]);\n    }\n    onInputKeydown(option, 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        return;\n      }\n      if (event.code === \"Period\" && event.shiftKey && (event.metaKey || event.ctrlKey) && this.siteSettings.discourse_local_dates_enabled) {\n        const generateCurrentDateMarkup = (0, _utilities.optionalRequire)(\"discourse/plugins/discourse-local-dates/lib/generate-current-date-markup\");\n        if (!generateCurrentDateMarkup) {\n          return;\n        }\n        event.preventDefault();\n        const timezone = this.currentUser.user_option?.timezone;\n        const markup = generateCurrentDateMarkup(timezone);\n        const input = event.target;\n        const start = input.selectionStart;\n        const end = input.selectionEnd;\n        const value = option.value || \"\";\n        option.value = value.slice(0, start) + markup + value.slice(end);\n        this.enforceMinMaxValues();\n        requestAnimationFrame(() => {\n          input.setSelectionRange(start + markup.length, start + markup.length);\n        });\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"onInputKeydown\", [_object.action]);\n    }\n    addOption(atIndex) {\n      if (atIndex === -1) {\n        atIndex = this.pollOptions.length;\n      }\n      const option = new _trackedBuiltIns.TrackedObject({\n        value: \"\"\n      });\n      this.pollOptions.splice(atIndex, 0, option);\n      this.enforceMinMaxValues();\n    }\n    static {\n      dt7948.n(this.prototype, \"addOption\", [_object.action]);\n    }\n    removeOption(option) {\n      (0, _arrayTools.removeValueFromArray)(this.pollOptions, option);\n      this.enforceMinMaxValues();\n    }\n    static {\n      dt7948.n(this.prototype, \"removeOption\", [_object.action]);\n    }\n    updatePollType(pollType, event) {\n      event?.preventDefault();\n      this.pollType = pollType;\n      this.enforceMinMaxValues();\n    }\n    static {\n      dt7948.n(this.prototype, \"updatePollType\", [_object.action]);\n    }\n    togglePublic() {\n      this.publicPoll = !this.publicPoll;\n    }\n    static {\n      dt7948.n(this.prototype, \"togglePublic\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((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\n                {{on \"input\" (withEventValue (fn (mut this.pollTitle)))}}\n                type=\"text\"\n                value={{this.pollTitle}}\n              />\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                      {{autoFocus}}\n                      {{on \"input\" (fn this.updateValue option)}}\n                      {{on \"keydown\" (fn this.onInputKeydown option index)}}\n                    />\n                    {{#if this.canRemoveOption}}\n                      <DButton\n                        @icon=\"trash-can\"\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                  {{on \"input\" this.onChangePollMin}}\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                  {{on \"input\" this.onChangePollMax}}\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                    {{on \"input\" (withEventValue (fn (mut this.pollStep)))}}\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-dynamic\">\n              <DToggleSwitch\n                @state={{this.dynamic}}\n                @label=\"poll.ui_builder.poll_dynamic.label\"\n                class=\"poll-toggle-dynamic\"\n                {{on \"click\" (fn (mut this.dynamic) (not this.dynamic))}}\n              />\n            </div>\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\">{{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\">{{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=\"gear\"\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\": \"CODW02mc\",\n        \"block\": \"[[[8,[32,0],[[24,0,\\\"poll-ui-builder\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\",\\\"@inline\\\"],[[28,[32,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,[32,2],[[16,0,[28,[32,3],[\\\"poll-type-value poll-type-value-regular\\\",[52,[30,0,[\\\"isRegular\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[32,4],[[30,0,[\\\"updatePollType\\\"]],\\\"regular\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[1,[28,[32,1],[\\\"poll.ui_builder.poll_type.regular\\\"],null]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,2],[[16,0,[28,[32,3],[\\\"poll-type-value poll-type-value-multiple\\\",[52,[30,0,[\\\"isMultiple\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[32,4],[[30,0,[\\\"updatePollType\\\"]],\\\"multiple\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[1,[28,[32,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,[32,2],[[16,0,[28,[32,3],[\\\"poll-type-value poll-type-value-number\\\",[52,[30,0,[\\\"isNumber\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[32,4],[[30,0,[\\\"updatePollType\\\"]],\\\"number\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[1,[28,[32,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,[32,2],[[16,0,[28,[32,3],[\\\"poll-type-value poll-type-value-ranked-choice\\\",[52,[30,0,[\\\"isRankedChoice\\\"]],\\\"active\\\"]],null]]],[[\\\"@action\\\"],[[28,[32,4],[[30,0,[\\\"updatePollType\\\"]],\\\"ranked_choice\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[1,[28,[32,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,[32,1],[\\\"poll.ui_builder.poll_title.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[11,\\\"input\\\"],[16,2,[30,0,[\\\"pollTitle\\\"]]],[24,4,\\\"text\\\"],[4,[32,5],[\\\"input\\\",[28,[32,6],[[28,[32,4],[[28,[31,1],[[30,0,[\\\"pollTitle\\\"]]],null]],null]],null]],null],[12],[13],[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,[32,1],[\\\"poll.ui_builder.poll_options.label\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[8,[32,7],[[4,[32,5],[\\\"input\\\",[30,0,[\\\"onOptionsTextChange\\\"]]],null]],[[\\\"@value\\\"],[[30,0,[\\\"pollOptionsText\\\"]]]],null],[1,\\\"\\\"],[41,[30,0,[\\\"showMinNumOfOptionsValidation\\\"]],[[[41,[51,[30,0,[\\\"minNumOfOptionsValidation\\\",\\\"ok\\\"]]],[[[1,\\\"              \\\"],[8,[32,8],null,[[\\\"@validation\\\"],[[30,0,[\\\"minNumOfOptionsValidation\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[]],null]],[]],[[[42,[28,[31,4],[[28,[31,4],[[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,[32,9],null,null],[4,[32,5],[\\\"input\\\",[28,[32,4],[[30,0,[\\\"updateValue\\\"]],[30,3]],null]],null],[4,[32,5],[\\\"keydown\\\",[28,[32,4],[[30,0,[\\\"onInputKeydown\\\"]],[30,3],[30,4]],null]],null],[12],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"canRemoveOption\\\"]],[[[1,\\\"                \\\"],[8,[32,2],null,[[\\\"@icon\\\",\\\"@action\\\"],[\\\"trash-can\\\",[28,[32,4],[[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,[32,2],[[24,0,\\\"btn-default poll-option-add\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"plus\\\",\\\"poll.ui_builder.poll_options.add\\\",[28,[32,4],[[30,0,[\\\"addOption\\\"]],-1],null]]],null],[1,\\\"\\\\n\\\"],[41,[28,[32,10],[[30,0,[\\\"showMinNumOfOptionsValidation\\\"]],[28,[32,11],[[30,0,[\\\"minNumOfOptionsValidation\\\",\\\"ok\\\"]]],null]],null],[[[1,\\\"              \\\"],[8,[32,8],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,[32,1],[\\\"poll.ui_builder.poll_config.min\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[11,\\\"input\\\"],[16,2,[30,0,[\\\"pollMin\\\"]]],[24,0,\\\"poll-options-min\\\"],[24,\\\"min\\\",\\\"1\\\"],[24,4,\\\"number\\\"],[4,[32,5],[\\\"input\\\",[30,0,[\\\"onChangePollMin\\\"]]],null],[12],[13],[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,[32,1],[\\\"poll.ui_builder.poll_config.max\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[11,\\\"input\\\"],[16,2,[30,0,[\\\"pollMax\\\"]]],[24,0,\\\"poll-options-max\\\"],[24,\\\"min\\\",\\\"1\\\"],[24,4,\\\"number\\\"],[4,[32,5],[\\\"input\\\",[30,0,[\\\"onChangePollMax\\\"]]],null],[12],[13],[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,[32,1],[\\\"poll.ui_builder.poll_config.step\\\"],null]],[13],[1,\\\"\\\\n            \\\"],[11,\\\"input\\\"],[16,2,[30,0,[\\\"pollStep\\\"]]],[24,\\\"min\\\",\\\"1\\\"],[24,0,\\\"poll-options-step\\\"],[24,4,\\\"number\\\"],[4,[32,5],[\\\"input\\\",[28,[32,6],[[28,[32,4],[[28,[31,1],[[30,0,[\\\"pollStep\\\"]]],null]],null]],null]],null],[12],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[51,[30,0,[\\\"minMaxValueValidation\\\",\\\"ok\\\"]]],[[[1,\\\"        \\\"],[8,[32,8],null,[[\\\"@validation\\\"],[[30,0,[\\\"minMaxValueValidation\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"input-group poll-public\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,12],[[24,0,\\\"poll-toggle-public\\\"],[4,[32,5],[\\\"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-dynamic\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,12],[[24,0,\\\"poll-toggle-dynamic\\\"],[4,[32,5],[\\\"click\\\",[28,[32,4],[[28,[31,1],[[30,0,[\\\"dynamic\\\"]]],null],[28,[32,11],[[30,0,[\\\"dynamic\\\"]]],null]],null]],null]],[[\\\"@state\\\",\\\"@label\\\"],[[30,0,[\\\"dynamic\\\"]],\\\"poll.ui_builder.poll_dynamic.label\\\"]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"input-group poll-allowed-groups\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[14,0,\\\"input-group-label\\\"],[12],[1,[28,[32,1],[\\\"poll.ui_builder.poll_groups.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,13],null,[[\\\"@content\\\",\\\"@value\\\",\\\"@onChange\\\",\\\"@labelProperty\\\",\\\"@valueProperty\\\"],[[30,0,[\\\"siteGroups\\\"]],[30,0,[\\\"pollGroups\\\"]],[28,[32,4],[[28,[31,1],[[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,[32,1],[\\\"poll.ui_builder.automatic_close.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,14],null,[[\\\"@date\\\",\\\"@onChange\\\",\\\"@clearable\\\",\\\"@useGlobalPickerContainer\\\"],[[30,0,[\\\"pollAutoClose\\\"]],[28,[32,4],[[28,[31,1],[[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,[32,1],[\\\"poll.ui_builder.poll_result.label\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,15],[[24,0,\\\"poll-result\\\"]],[[\\\"@content\\\",\\\"@value\\\",\\\"@valueProperty\\\",\\\"@onChange\\\"],[[30,0,[\\\"pollResults\\\"]],[30,0,[\\\"pollResult\\\"]],\\\"value\\\",[28,[32,4],[[28,[31,1],[[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,[32,1],[\\\"poll.ui_builder.poll_chart_type.label\\\"],null]],[13],[1,\\\"\\\\n\\\\n          \\\"],[10,0],[14,0,\\\"radio-group\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[32,16],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,[32,17],[\\\"chart-bar\\\"],null]],[1,\\\"\\\\n              \\\"],[1,[28,[32,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,[32,16],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,[32,17],[\\\"chart-pie\\\"],null]],[1,\\\"\\\\n              \\\"],[1,[28,[32,1],[\\\"poll.ui_builder.poll_chart_type.pie\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\"  \\\"]],[]],[[[1,\\\"\\\\n    \\\"],[8,[32,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,[32,2],[[24,0,\\\"btn-flat\\\"]],[[\\\"@label\\\",\\\"@action\\\"],[\\\"cancel\\\",[30,1]]],null],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,2],[[24,0,\\\"btn-default show-advanced\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@title\\\"],[[30,0,[\\\"toggleAdvanced\\\"]],\\\"gear\\\",[52,[30,0,[\\\"showAdvanced\\\"]],\\\"poll.ui_builder.hide_advanced\\\",\\\"poll.ui_builder.show_advanced\\\"]]],null],[1,\\\"\\\\n\\\\n  \\\"]],[]]]]]],[\\\"@closeModal\\\",\\\"@inline\\\",\\\"option\\\",\\\"index\\\"],[\\\"if\\\",\\\"mut\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/modal/poll-ui-builder.js\",\n        \"scope\": () => [_dModal.default, _discourseI18n.i18n, _dButton.default, _concatClass.default, _helper.fn, _modifier.on, _withEventValue.default, _component2.Textarea, _inputTip.default, _autoFocus.default, _truthHelpers.and, _truthHelpers.not, _dToggleSwitch.default, _groupChooser.default, _dateTimeInput.default, _comboBox.default, _radioButton.default, _dIcon.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = PollUiBuilderModal;\n});","define(\"discourse/plugins/poll/discourse/components/poll-breakdown-chart\", [\"exports\", \"@ember/component\", \"@ember/object\", \"@ember/object/computed\", \"@ember/runloop\", \"@ember/template\", \"@ember-decorators/component\", \"discourse/lib/load-chart-js\", \"discourse-i18n\", \"discourse/plugins/poll/lib/chart-colors\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", \"@ember/template-factory\"], function (_exports, _component, _object, _computed, _runloop, _template, _component2, _loadChartJs, _discourseI18n, _chartColors, _pollUiBuilder, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components, ember/require-tagless-components */\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 {\n      dt7948.g(this.prototype, \"data\", [(0, _computed.mapBy)(\"options\", \"votes\")]);\n    }\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    willDestroy() {\n      super.willDestroy(...arguments);\n      if (this._chart) {\n        this._chart.destroy();\n      }\n    }\n    async didInsertElement() {\n      super.didInsertElement(...arguments);\n      const canvas = this.element.querySelector(\"canvas\");\n      const [Chart, ChartDataLabelsPlugin] = await Promise.all([(0, _loadChartJs.default)(), (0, _loadChartJs.loadChartJSDatalabels)()]);\n      this._chart = new Chart(canvas.getContext(\"2d\"), {\n        ...this.chartConfig,\n        plugins: [ChartDataLabelsPlugin]\n      });\n    }\n    didReceiveAttrs() {\n      super.didReceiveAttrs(...arguments);\n      if (this._chart) {\n        this._updateDisplayMode();\n        this._updateHighlight();\n      }\n    }\n    get colorStyle() {\n      return (0, _template.trustHTML)(`background: ${this.optionColors[this.index]};`);\n    }\n    static {\n      dt7948.n(this.prototype, \"colorStyle\", [(0, _object.computed)(\"optionColors\", \"index\")]);\n    }\n    get chartConfig() {\n      const data = this.data;\n      const displayMode = this.displayMode;\n      const transformedData = [];\n      let counter = 0;\n      this._optionToSlice = {}; // eslint-disable-line ember/no-side-effects\n      data.forEach((votes, index) => {\n        if (votes > 0) {\n          transformedData.push(votes);\n          this._optionToSlice[index] = counter++; // eslint-disable-line ember/no-side-effects\n        }\n      });\n      const totalVotes = transformedData.reduce((sum, votes) => sum + votes, 0);\n      const colors = (0, _chartColors.getColors)(data.length).filter((color, index) => data[index] > 0);\n      return {\n        type: _pollUiBuilder.PIE_CHART_TYPE,\n        data: {\n          datasets: [{\n            data: transformedData,\n            backgroundColor: colors,\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(votes) {\n                if (displayMode !== \"percentage\") {\n                  return votes;\n                }\n                const percent = _discourseI18n.default.toNumber(votes / totalVotes * 100.0, {\n                  precision: 1\n                });\n                return `${percent}%`;\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: (event, activeElements) => {\n            if (!activeElements.length) {\n              (0, _runloop.next)(() => {\n                this.setHighlightedOption(null);\n              });\n              return;\n            }\n            const sliceIndex = activeElements[0].index;\n            const optionIndex = Object.keys(this._optionToSlice).find(option => this._optionToSlice[option] === sliceIndex);\n            (0, _runloop.next)(() => {\n              this.setHighlightedOption(Number(optionIndex));\n            });\n          }\n        }\n      };\n    }\n    static {\n      dt7948.n(this.prototype, \"chartConfig\", [(0, _object.computed)(\"data\", \"displayMode\")]);\n    }\n    _updateDisplayMode() {\n      if (this.displayMode !== this._previousDisplayMode) {\n        const config = this.chartConfig;\n        this._chart.data.datasets = config.data.datasets;\n        this._chart.options = config.options;\n        this._chart.update();\n        this._previousDisplayMode = this.displayMode;\n      }\n    }\n    _updateHighlight() {\n      const activeElements = [];\n      if (this.highlightedOption) {\n        const index = this._optionToSlice[this.highlightedOption];\n        if (index !== undefined) {\n          activeElements.push({\n            datasetIndex: 0,\n            index\n          });\n        }\n      }\n      this._chart.setActiveElements(activeElements);\n      this._chart.update();\n    }\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <label class=\"poll-breakdown-chart-label\">{{@group}}</label>\n      <canvas class=\"poll-breakdown-chart-chart\"></canvas>\n      */\n      {\n        \"id\": \"vqcYlkdG\",\n        \"block\": \"[[[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]],[\\\"@group\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-breakdown-chart.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\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\", \"@ember/object/computed\", \"@ember/template\", \"@ember-decorators/component\", \"discourse/lib/computed\", \"discourse/lib/load-chart-js\", \"discourse-i18n\", \"discourse/plugins/poll/lib/chart-colors\", \"discourse/plugins/poll/discourse/modifiers/decorate-poll-option\", \"@ember/template-factory\"], function (_exports, _component, _modifier, _object, _computed, _template, _component2, _computed2, _loadChartJs, _discourseI18n, _chartColors, _decoratePollOption, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const 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 {\n      dt7948.g(this.prototype, \"highlighted\", [(0, _computed2.propertyEqual)(\"highlightedOption\", \"index\")]);\n    }\n    #highlighted = (dt7948.i(this, \"highlighted\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"showPercentage\", [(0, _computed.equal)(\"displayMode\", \"percentage\")]);\n    }\n    #showPercentage = (dt7948.i(this, \"showPercentage\"), void 0);\n    constructor() {\n      super(...arguments);\n      (0, _loadChartJs.default)().then(Chart => {\n        this.set(\"Chart\", Chart);\n      });\n    }\n    get percent() {\n      return _discourseI18n.default.toNumber(this.option?.votes / this.totalVotes * 100.0, {\n        precision: 1\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"percent\", [(0, _object.computed)(\"option.votes\", \"totalVotes\")]);\n    }\n    get optionColors() {\n      return (0, _chartColors.getColors)(this.optionsCount);\n    }\n    static {\n      dt7948.n(this.prototype, \"optionColors\", [(0, _object.computed)(\"optionsCount\")]);\n    }\n    get colorBackgroundStyle() {\n      if (this.highlighted) {\n        // TODO: Use CSS variables (#10341)\n        return (0, _template.trustHTML)(\"background: rgba(0, 0, 0, 0.1);\");\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"colorBackgroundStyle\", [(0, _object.computed)(\"highlighted\")]);\n    }\n    get colorPreviewStyle() {\n      const color = this.highlighted ? this.Chart?.helpers.getHoverColor(this.optionColors[this.index]) : this.optionColors[this.index];\n      return (0, _template.trustHTML)(`background: ${color};`);\n    }\n    static {\n      dt7948.n(this.prototype, \"colorPreviewStyle\", [(0, _object.computed)(\"Chart\", \"highlighted\", \"optionColors\", \"index\")]);\n    }\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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\n          class=\"poll-breakdown-option-text\"\n          {{decoratePollOption @option.html}}\n        ></span>\n      </li>\n      */\n      {\n        \"id\": \"wtUjcWAK\",\n        \"block\": \"[[[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  \\\"],[11,1],[24,0,\\\"poll-breakdown-option-text\\\"],[4,[32,2],[[30,3,[\\\"html\\\"]]],null],[12],[13],[1,\\\"\\\\n\\\"],[13]],[\\\"@onMouseOver\\\",\\\"@onMouseOut\\\",\\\"@option\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-breakdown-option.js\",\n        \"scope\": () => [_modifier.on, _discourseI18n.i18n, _decoratePollOption.default],\n        \"isStrictMode\": true\n      }), this);\n    }\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/float-kit/components/d-menu\", \"discourse/helpers/d-icon\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _object, _service, _dButton, _dropdownMenu, _dMenu, _dIcon, _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-keyhole\",\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    showTally: {\n      className: \"btn-default show-tally\",\n      label: \"poll.show-tally.label\",\n      title: \"poll.show-tally.title\",\n      icon: \"info\",\n      action: \"toggleDisplayMode\"\n    },\n    showPercentage: {\n      className: \"btn-default show-percentage\",\n      label: \"poll.show-percentage.label\",\n      title: \"poll.show-percentage.title\",\n      icon: \"info\",\n      action: \"toggleDisplayMode\"\n    }\n  };\n  class PollButtonsDropdownComponent extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    constructor() {\n      super(...arguments);\n      this.getDropdownButtonState = false;\n    }\n    dropDownClick(dropDownAction) {\n      this.args.dropDownClick(dropDownAction);\n    }\n    static {\n      dt7948.n(this.prototype, \"dropDownClick\", [_object.action]);\n    }\n    get getDropdownContent() {\n      const contents = [];\n      const isAdmin = this.currentUser && this.currentUser.admin;\n      const dataExplorerEnabled = this.siteSettings.data_explorer_enabled;\n      const exportQueryID = 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,\n        voters,\n        isStaff,\n        isMe,\n        topicArchived,\n        groupableUserFields,\n        isAutomaticallyClosed,\n        availableDisplayMode\n      } = this.args;\n      if (availableDisplayMode) {\n        const option = {\n          ...buttonOptionsMap[availableDisplayMode]\n        };\n        option.id = option.action;\n        contents.push(option);\n      }\n      if (groupableUserFields.length && voters > 0) {\n        const option = {\n          ...buttonOptionsMap.showBreakdown\n        };\n        option.id = option.action;\n        contents.push(option);\n      }\n      if (isAdmin && dataExplorerEnabled && voters > 0 && exportQueryID) {\n        const option = {\n          ...buttonOptionsMap.exportResults\n        };\n        option.id = option.action;\n        contents.push(option);\n      }\n      if (this.currentUser && (isMe || isStaff) && !topicArchived) {\n        if (closed) {\n          if (!isAutomaticallyClosed) {\n            const option = {\n              ...buttonOptionsMap.openPoll\n            };\n            option.id = option.action;\n            contents.push(option);\n          }\n        } else {\n          const option = {\n            ...buttonOptionsMap.closePoll\n          };\n          option.id = option.action;\n          contents.push(option);\n        }\n      }\n      return contents;\n    }\n    get showDropdown() {\n      return this.getDropdownContent.length > 1;\n    }\n    get showDropdownAsButton() {\n      return this.getDropdownContent.length === 1;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div class=\"poll-buttons-dropdown\">\n        {{#if this.showDropdown}}\n          <DMenu class=\"widget-dropdown-header\">\n            <:trigger>\n              {{icon \"gear\"}}\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        \"id\": \"5DOSUzOq\",\n        \"block\": \"[[[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],[\\\"gear\\\"],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]],[]]],[13]],[\\\"dropdown\\\",\\\"content\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/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  }\n  _exports.default = PollButtonsDropdownComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-info\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"@ember/template\", \"discourse/helpers/d-icon\", \"discourse/lib/formatter\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _service, _template, _dIcon, _formatter, _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 {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    get multipleHelpText() {\n      const {\n        min,\n        max,\n        options\n      } = this.args;\n      const optionsCount = options.length;\n      if (max > 0) {\n        if (min === max && min > 1) {\n          return (0, _template.trustHTML)((0, _discourseI18n.i18n)(\"poll.multiple.help.x_options\", {\n            count: min\n          }));\n        }\n        if (min > 1) {\n          if (max < optionsCount) {\n            return (0, _template.trustHTML)((0, _discourseI18n.i18n)(\"poll.multiple.help.between_min_and_max_options\", {\n              min,\n              max\n            }));\n          }\n          return (0, _template.trustHTML)((0, _discourseI18n.i18n)(\"poll.multiple.help.at_least_min_options\", {\n            count: min\n          }));\n        }\n        if (max <= optionsCount) {\n          return (0, _template.trustHTML)((0, _discourseI18n.i18n)(\"poll.multiple.help.up_to_max_options\", {\n            count: max\n          }));\n        }\n      }\n    }\n    get votersLabel() {\n      return (0, _discourseI18n.i18n)(\"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((total, o) => {\n        return total + parseInt(o.votes, 10);\n      }, 0);\n    }\n    get totalVotesLabel() {\n      return (0, _discourseI18n.i18n)(\"poll.total_votes\", {\n        count: this.totalVotes\n      });\n    }\n    get automaticCloseAgeLabel() {\n      return (0, _discourseI18n.i18n)(\"poll.automatic_close.age\", this.age);\n    }\n    get automaticCloseClosesInLabel() {\n      return (0, _discourseI18n.i18n)(\"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 closeDate = moment.utc(this.args.close, \"YYYY-MM-DD HH:mm:ss Z\");\n      if (closeDate.isValid()) {\n        return closeDate.format(\"LLL\");\n      } else {\n        return \"\";\n      }\n    }\n    get age() {\n      const closeDate = moment.utc(this.args.close, \"YYYY-MM-DD HH:mm:ss Z\");\n      if (closeDate.isValid()) {\n        return (0, _formatter.relativeAge)(closeDate.toDate(), {\n          addAgo: true\n        });\n      } else {\n        return 0;\n      }\n    }\n    get timeLeft() {\n      const closeDate = moment.utc(this.args.close, \"YYYY-MM-DD HH:mm:ss Z\");\n      if (closeDate.isValid()) {\n        return moment().to(closeDate, 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, _template.trustHTML)((0, _discourseI18n.i18n)(\"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, _template.trustHTML)((0, _discourseI18n.i18n)(\"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, _template.trustHTML)((0, _discourseI18n.i18n)(\"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, _template.trustHTML)((0, _discourseI18n.i18n)(\"poll.public.title\"));\n    }\n    get showInstructionsSection() {\n      return this.showMultipleHelpText || this.args.close || this.resultsOnVote || this.resultsOnClose || this.resultsStaffOnly || this.publicTitle || this.args.isDynamic;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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 (if @isDynamic true this.poll.dynamic)}}\n              <li class=\"is-dynamic\">\n                {{icon \"shuffle\"}}\n                <span>{{i18n \"poll.dynamic.enabled_hint\"}}</span>\n              </li>\n            {{/if}}\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-halved\"}}\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        \"id\": \"fBLe22UM\",\n        \"block\": \"[[[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,[52,[30,2],true,[30,0,[\\\"poll\\\",\\\"dynamic\\\"]]],[[[1,\\\"        \\\"],[10,\\\"li\\\"],[14,0,\\\"is-dynamic\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,0],[\\\"shuffle\\\"],null]],[1,\\\"\\\\n          \\\"],[10,1],[12],[1,[28,[32,1],[\\\"poll.dynamic.enabled_hint\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[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-halved\\\"],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],[13]],[\\\"@voters\\\",\\\"@isDynamic\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-info.js\",\n        \"scope\": () => [_dIcon.default, _discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = PollInfoComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-option-ranked-choice-dropdown\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/object\", \"discourse/components/d-button\", \"discourse/components/dropdown-menu\", \"discourse/float-kit/components/d-menu\", \"discourse/helpers/d-icon\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _object, _dButton, _dropdownMenu, _dMenu, _dIcon, _discourseI18n, _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    onRegisterApi(api) {\n      this.dMenu = api;\n    }\n    static {\n      dt7948.n(this.prototype, \"onRegisterApi\", [_object.action]);\n    }\n    selectRank(option, rank) {\n      this.args.sendRank(option, rank);\n      this.dMenu.close();\n    }\n    static {\n      dt7948.n(this.prototype, \"selectRank\", [_object.action]);\n    }\n    get rankLabel() {\n      return this.args.rank === 0 ? (0, _discourseI18n.i18n)(\"poll.options.ranked_choice.abstain\") : this.args.rank;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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        \"id\": \"oauIHUhI\",\n        \"block\": \"[[[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  \\\"]],[]]]]]],[\\\"dropdown\\\",\\\"@rankedChoiceDropdownContent\\\",\\\"content\\\",\\\"@option\\\"],[\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/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  }\n  _exports.default = PollOptionsDropdownComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-option-ranked-choice\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/helpers/route-action\", \"discourse/plugins/poll/discourse/modifiers/decorate-poll-option\", \"discourse/plugins/poll/discourse/components/poll-option-ranked-choice-dropdown\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _object, _service, _dButton, _routeAction, _decoratePollOption, _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 {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    sendRank(option, rank = 0) {\n      this.args.sendRank(option, rank);\n    }\n    static {\n      dt7948.n(this.prototype, \"sendRank\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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\n            @action={{routeAction \"showLogin\"}}\n            @label=\"poll.options.ranked_choice.login\"\n            class=\"btn-default\"\n          />\n        {{/if}}\n        <span class=\"option-text\" {{decoratePollOption @option.html}}></span>\n      </div>\n      */\n      {\n        \"id\": \"pwq0SrWw\",\n        \"block\": \"[[[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\\\"]],[[\\\"@action\\\",\\\"@label\\\"],[[28,[32,2],[\\\"showLogin\\\"],null],\\\"poll.options.ranked_choice.login\\\"]],null],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"  \\\"],[11,1],[24,0,\\\"option-text\\\"],[4,[32,3],[[30,1,[\\\"html\\\"]]],null],[12],[13],[1,\\\"\\\\n\\\"],[13]],[\\\"@option\\\",\\\"@rankedChoiceDropdownContent\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-option-ranked-choice.js\",\n        \"scope\": () => [_pollOptionRankedChoiceDropdown.default, _dButton.default, _routeAction.default, _decoratePollOption.default],\n        \"isStrictMode\": true\n      }), this);\n    }\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\", \"discourse/helpers/concat-class\", \"discourse/helpers/d-icon\", \"discourse/helpers/route-action\", \"discourse-i18n\", \"discourse/plugins/poll/discourse/modifiers/decorate-poll-option\", \"discourse/plugins/poll/discourse/components/poll-option-ranked-choice\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _modifier, _object, _service, _concatClass, _dIcon, _routeAction, _discourseI18n, _decoratePollOption, _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 {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    isChosen = option => {\n      return this.args.votes.includes(option.id);\n    };\n    sendClick(option, event) {\n      if (event.target.closest(\".discourse-local-date\")) {\n        return;\n      }\n      this.args.sendOptionSelect(option);\n    }\n    static {\n      dt7948.n(this.prototype, \"sendClick\", [_object.action]);\n    }\n    sendRank(option, rank = 0) {\n      this.args.sendOptionSelect(option, rank);\n    }\n    static {\n      dt7948.n(this.prototype, \"sendRank\", [_object.action]);\n    }\n    get rankedChoiceDropdownContent() {\n      let rankedChoiceDropdownContent = [];\n      rankedChoiceDropdownContent.push({\n        id: 0,\n        name: (0, _discourseI18n.i18n)(\"poll.options.ranked_choice.abstain\")\n      });\n      this.args.options.forEach((option, i) => {\n        option.rank = 0;\n        let priority = \"\";\n        if (i === 0) {\n          priority = ` ${(0, _discourseI18n.i18n)(\"poll.options.ranked_choice.highest_priority\")}`;\n        }\n        if (i === this.args.options.length - 1) {\n          priority = ` ${(0, _discourseI18n.i18n)(\"poll.options.ranked_choice.lowest_priority\")}`;\n        }\n        rankedChoiceDropdownContent.push({\n          id: i + 1,\n          name: (i + 1).toString() + priority\n        });\n      });\n      return rankedChoiceDropdownContent;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <ul\n        class={{concatClass\n          (if @isRankedChoice \"ranked-choice-poll-options\")\n          \"options\"\n        }}\n      >\n        {{#each @options key=\"rank\" as |option|}}\n          {{#if @isRankedChoice}}\n            <PollOptionRankedChoice\n              @option={{option}}\n              @rankedChoiceDropdownContent={{this.rankedChoiceDropdownContent}}\n              @sendRank={{this.sendRank}}\n            />\n          {{else}}\n            <li 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-square-check\"}}\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\n                    class=\"option-text\"\n                    {{decoratePollOption option.html}}\n                  ></span>\n                </button>\n              {{else}}\n                <button {{on \"click\" (routeAction \"showLogin\")}}>\n                  {{#if (this.isChosen option)}}\n                    {{#if @isCheckbox}}\n                      {{icon \"far-square-check\"}}\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\n                    class=\"option-text\"\n                    {{decoratePollOption option.html}}\n                  ></span>\n                </button>\n              {{/if}}\n            </li>\n          {{/if}}\n        {{/each}}\n      </ul>\n      */\n      {\n        \"id\": \"zAPu0Lmn\",\n        \"block\": \"[[[10,\\\"ul\\\"],[15,0,[28,[32,0],[[52,[30,1],\\\"ranked-choice-poll-options\\\"],\\\"options\\\"],null]],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,2]],null]],null],\\\"rank\\\",[[[41,[30,1],[[[1,\\\"      \\\"],[8,[32,1],null,[[\\\"@option\\\",\\\"@rankedChoiceDropdownContent\\\",\\\"@sendRank\\\"],[[30,3],[30,0,[\\\"rankedChoiceDropdownContent\\\"]],[30,0,[\\\"sendRank\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"      \\\"],[10,\\\"li\\\"],[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,4],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"far-square-check\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]],[[[41,[30,4],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"far-square\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"far-circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]]],[1,\\\"            \\\"],[11,1],[24,0,\\\"option-text\\\"],[4,[32,5],[[30,3,[\\\"html\\\"]]],null],[12],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[11,\\\"button\\\"],[4,[32,2],[\\\"click\\\",[28,[32,6],[\\\"showLogin\\\"],null]],null],[12],[1,\\\"\\\\n\\\"],[41,[28,[30,0,[\\\"isChosen\\\"]],[[30,3]],null],[[[41,[30,4],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"far-square-check\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]],[[[41,[30,4],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"far-square\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                \\\"],[1,[28,[32,4],[\\\"far-circle\\\"],null]],[1,\\\"\\\\n\\\"]],[]]]],[]]],[1,\\\"            \\\"],[11,1],[24,0,\\\"option-text\\\"],[4,[32,5],[[30,3,[\\\"html\\\"]]],null],[12],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[3]],null],[13]],[\\\"@isRankedChoice\\\",\\\"@options\\\",\\\"option\\\",\\\"@isCheckbox\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-options.js\",\n        \"scope\": () => [_concatClass.default, _pollOptionRankedChoice.default, _modifier.on, _helper.fn, _dIcon.default, _decoratePollOption.default, _routeAction.default],\n        \"isStrictMode\": true\n      }), this);\n    }\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/components/decorated-html\", \"discourse/lib/load-chart-js\", \"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, _template, _emberModifier, _decoratedHtml, _loadChartJs, _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(chart, args, options) {\n        const ul = document.getElementById(options.containerID);\n        if (!ul) {\n          return;\n        }\n        ul.innerHTML = \"\";\n        const items = chart.options.plugins.legend.labels.generateLabels(chart);\n        items.forEach(item => {\n          const li = document.createElement(\"li\");\n          li.classList.add(\"legend\");\n          li.onclick = () => {\n            chart.toggleDataVisibility(item.index);\n            chart.update();\n          };\n          const boxSpan = document.createElement(\"span\");\n          boxSpan.classList.add(\"swatch\");\n          boxSpan.style.background = item.fillStyle;\n          const textContainer = document.createElement(\"span\");\n          textContainer.style.color = item.fontColor;\n          textContainer.innerHTML = item.text;\n          if (!chart.getDataVisibility(item.index)) {\n            li.style.opacity = 0.2;\n          } else {\n            li.style.opacity = 1.0;\n          }\n          li.appendChild(boxSpan);\n          li.appendChild(textContainer);\n          ul.appendChild(li);\n        });\n      }\n    };\n    stripHtml = html => {\n      let doc = new DOMParser().parseFromString(html, \"text/html\");\n      return doc.body.textContent || \"\";\n    };\n    pieChartConfig = (data, labels, opts = {}) => {\n      const aspectRatio = \"aspectRatio\" in opts ? opts.aspectRatio : 2.2;\n      const strippedLabels = labels.map(l => this.stripHtml(l));\n      return {\n        type: _pollUiBuilder.PIE_CHART_TYPE,\n        data: {\n          datasets: [{\n            data,\n            backgroundColor: (0, _chartColors.getColors)(data.length)\n          }],\n          labels: strippedLabels\n        },\n        plugins: [this.htmlLegendPlugin],\n        options: {\n          responsive: true,\n          aspectRatio,\n          animation: {\n            duration: 0\n          },\n          plugins: {\n            legend: {\n              labels: {\n                generateLabels() {\n                  return labels.map((text, index) => {\n                    return {\n                      fillStyle: (0, _chartColors.getColors)(data.length)[index],\n                      text,\n                      index\n                    };\n                  });\n                }\n              },\n              display: false\n            },\n            htmlLegend: {\n              containerID: opts?.legendContainerId\n            }\n          }\n        }\n      };\n    };\n    registerLegendElement = (0, _emberModifier.modifier)(element => {\n      this.legendElement = element;\n    });\n    registerCanvasElement = (0, _emberModifier.modifier)(element => {\n      this.canvasElement = element;\n    });\n    get canvasId() {\n      return (0, _template.trustHTML)(`poll-results-chart-${this.args.id}`);\n    }\n    get legendId() {\n      return (0, _template.trustHTML)(`poll-results-legend-${this.args.id}`);\n    }\n    async drawPie() {\n      const Chart = await (0, _loadChartJs.default)();\n      const data = this.args.options.map(option => option.votes);\n      const labels = this.args.options.map(option => option.html);\n      const config = this.pieChartConfig(data, labels, {\n        legendContainerId: this.legendElement.id\n      });\n      const el = this.canvasElement;\n      this._chart = new Chart(el.getContext(\"2d\"), config);\n      (0, _decoratedHtml.applyHtmlDecorators)(this.legendElement, _decoratedHtml.NULL_HELPER, _decoratedHtml.NON_STREAM_HTML_DECORATOR);\n    }\n    static {\n      dt7948.n(this.prototype, \"drawPie\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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        \"id\": \"jlDoqufN\",\n        \"block\": \"[[[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]],[],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-results-pie.js\",\n        \"scope\": () => [_didInsert.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = PollResultsPieComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-results-ranked-choice\", [\"exports\", \"@glimmer/component\", \"@ember/template\", \"discourse-i18n\", \"discourse/plugins/poll/discourse/modifiers/decorate-cooked-content\", \"discourse/plugins/poll/discourse/modifiers/decorate-poll-option\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _template, _discourseI18n, _decorateCookedContent, _decoratePollOption, _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 (0, _template.trustHTML)((0, _discourseI18n.i18n)(\"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 (0, _discourseI18n.i18n)(\"poll.ranked_choice.tied\", {\n        count: this.args.rankedChoiceOutcome?.round_activity?.length\n      });\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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 {{decoratePollOption 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                    <span {{decoratePollOption eliminated.html}}></span>\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}}\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                {{decoratePollOption tied_candidate.html}}\n              ></li>\n            {{/each}}\n          </ul>\n        {{else}}\n          <span\n            class=\"poll-results-ranked-choice-info\"\n            {{decorateCookedContent}}\n          >{{this.rankedChoiceWinnerText}}</span>\n        {{/if}}\n      {{/if}}\n      */\n      {\n        \"id\": \"zLotu8MA\",\n        \"block\": \"[[[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          \\\"],[11,\\\"td\\\"],[4,[32,1],[[30,2,[\\\"majority\\\",\\\"html\\\"]]],null],[12],[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,\\\"              \\\"],[11,1],[4,[32,1],[[30,3,[\\\"html\\\"]]],null],[12],[13],[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],[[[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,\\\"        \\\"],[11,\\\"li\\\"],[24,0,\\\"poll-results-ranked-choice-tied-candidate\\\"],[4,[32,1],[[30,4,[\\\"html\\\"]]],null],[12],[13],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[11,1],[24,0,\\\"poll-results-ranked-choice-info\\\"],[4,[32,2],null,null],[12],[1,[30,0,[\\\"rankedChoiceWinnerText\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]]]],[]],null]],[\\\"@rankedChoiceOutcome\\\",\\\"round\\\",\\\"eliminated\\\",\\\"tied_candidate\\\"],[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-results-ranked-choice.js\",\n        \"scope\": () => [_discourseI18n.i18n, _decoratePollOption.default, _decorateCookedContent.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = PollResultsRankedChoiceComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-results-standard\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/template\", \"discourse-i18n\", \"discourse/plugins/poll/lib/even-round\", \"discourse/plugins/poll/discourse/modifiers/decorate-poll-option\", \"discourse/plugins/poll/discourse/components/poll-voters\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _template, _discourseI18n, _evenRound, _decoratePollOption, _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 = options => {\n      options.forEach(option => {\n        option.votes = option.votes ?? 0;\n      });\n      return options.sort((a, b) => {\n        if (a.votes < b.votes) {\n          return 1;\n        } else if (a.votes === b.votes) {\n          if (a.html < b.html) {\n            return -1;\n          } else {\n            return 1;\n          }\n        } else {\n          return -1;\n        }\n      });\n    };\n    getPercentages = (ordered, votersCount) => {\n      return votersCount === 0 ? Array(ordered.length).fill(0) : ordered.map(o => 100 * o.votes / votersCount);\n    };\n    roundPercentages = percentages => {\n      return this.isMultiple ? percentages.map(Math.floor) : (0, _evenRound.default)(percentages);\n    };\n    enrichOptions = (ordered, rounded) => {\n      ordered.forEach((option, idx) => {\n        const per = rounded[idx].toString();\n        const chosen = (this.args.vote || []).includes(option.id);\n        option.percentage = per;\n        option.chosen = chosen;\n        let voters = this.args.isPublic ? this.args.voters?.[option.id]?.voters ?? [] : [];\n        option.voters = [...voters];\n        option.loading = this.args.isPublic ? this.args.voters?.[option.id]?.loading ?? false : false;\n      });\n      return ordered;\n    };\n    get votersCount() {\n      return this.args.votersCount || 0;\n    }\n    get orderedOptions() {\n      const ordered = this.orderOptions([...this.args.options]);\n      const percentages = this.getPercentages(ordered, this.votersCount);\n      const roundedPercentages = this.roundPercentages(percentages);\n      return this.enrichOptions(ordered, roundedPercentages);\n    }\n    get isMultiple() {\n      return this.args.pollType === \"multiple\";\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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                  {{#if @showTally}}\n                    <span class=\"absolute\">{{i18n\n                        \"poll.votes\"\n                        count=option.votes\n                      }}</span>\n                  {{else}}\n                    <span class=\"percentage\">{{i18n\n                        \"number.percent\"\n                        count=option.percentage\n                      }}</span>\n                  {{/if}}\n                {{/unless}}\n                <span\n                  class=\"option-text\"\n                  {{decoratePollOption option.html}}\n                ></span>\n              </p>\n              {{#unless @isRankedChoice}}\n                <div class=\"bar-back\">\n                  <div\n                    class=\"bar\"\n                    style={{trustHTML (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        \"id\": \"F4qSns2C\",\n        \"block\": \"[[[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]],[[[41,[30,3],[[[1,\\\"              \\\"],[10,1],[14,0,\\\"absolute\\\"],[12],[1,[28,[32,0],[\\\"poll.votes\\\"],[[\\\"count\\\"],[[30,1,[\\\"votes\\\"]]]]]],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[10,1],[14,0,\\\"percentage\\\"],[12],[1,[28,[32,0],[\\\"number.percent\\\"],[[\\\"count\\\"],[[30,1,[\\\"percentage\\\"]]]]]],[13],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[1,\\\"          \\\"],[11,1],[24,0,\\\"option-text\\\"],[4,[32,1],[[30,1,[\\\"html\\\"]]],null],[12],[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,2],[[28,[32,3],[\\\"width:\\\",[30,1,[\\\"percentage\\\"]],\\\"%\\\"],null]],null]],[12],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,4],[[[1,\\\"          \\\"],[8,[32,4],null,[[\\\"@postId\\\",\\\"@pollType\\\",\\\"@optionId\\\",\\\"@pollName\\\",\\\"@isRankedChoice\\\",\\\"@totalVotes\\\",\\\"@voters\\\",\\\"@fetchVoters\\\",\\\"@loading\\\"],[[30,5],[30,6],[30,1,[\\\"id\\\"]],[30,7],[30,2],[30,1,[\\\"votes\\\"]],[30,1,[\\\"voters\\\"]],[30,8],[30,1,[\\\"loading\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[13]],[\\\"option\\\",\\\"@isRankedChoice\\\",\\\"@showTally\\\",\\\"@isPublic\\\",\\\"@postId\\\",\\\"@pollType\\\",\\\"@pollName\\\",\\\"@fetchVoters\\\"],[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\",\\\"unless\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll-results-standard.js\",\n        \"scope\": () => [_discourseI18n.i18n, _decoratePollOption.default, _template.trustHTML, _helper.concat, _pollVoters.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = PollResultsStandardComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-results-tabs\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"discourse/components/d-button\", \"discourse/truth-helpers\", \"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, _dButton, _truthHelpers, _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 {\n      dt7948.g(this.prototype, \"activeTab\", [_tracking.tracked]);\n    }\n    #activeTab = (dt7948.i(this, \"activeTab\"), void 0);\n    tabOne = (0, _discourseI18n.i18n)(\"poll.results.tabs.votes\");\n    tabTwo = (0, _discourseI18n.i18n)(\"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 tabs = [];\n      if (!this.args.isRankedChoice || this.args.isRankedChoice && this.args.isPublic) {\n        tabs.push(this.tabOne);\n      }\n      if (this.args.isRankedChoice) {\n        tabs.push(this.tabTwo);\n      }\n      return tabs;\n    }\n    selectTab(tab) {\n      this.activeTab = tab;\n    }\n    static {\n      dt7948.n(this.prototype, \"selectTab\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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              @showTally={{@showTally}}\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        \"id\": \"cdHrtEmZ\",\n        \"block\": \"[[[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\\\",\\\"@showTally\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7],[30,8],[30,9],[30,10],[30,11],[30,12]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"activeTab\\\"]],[30,0,[\\\"tabTwo\\\"]]],null],[[[1,\\\"      \\\"],[8,[32,4],null,[[\\\"@rankedChoiceOutcome\\\"],[[30,13]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\"],[13]],[\\\"tab\\\",\\\"@options\\\",\\\"@pollName\\\",\\\"@pollType\\\",\\\"@isPublic\\\",\\\"@isRankedChoice\\\",\\\"@postId\\\",\\\"@vote\\\",\\\"@voters\\\",\\\"@votersCount\\\",\\\"@fetchVoters\\\",\\\"@showTally\\\",\\\"@rankedChoiceOutcome\\\"],[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/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  }\n  _exports.default = TabsComponent;\n});","define(\"discourse/plugins/poll/discourse/components/poll-voters-ranked-choice\", [\"exports\", \"@glimmer/component\", \"discourse/helpers/bound-avatar-template\", \"discourse/helpers/d-icon\", \"discourse/truth-helpers\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _boundAvatarTemplate, _dIcon, _truthHelpers, _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 = voters => {\n      return voters.reduce((groups, voter) => {\n        const rank = voter.rank;\n        groups[rank] ??= [];\n        groups[rank].push(voter);\n        return groups;\n      }, {});\n    };\n    get rankedChoiceVoters() {\n      const voters = [...this.args.voters];\n      // Group voters by rank so they can be displayed together by rank\n      const groupedByRank = this.groupVotersByRank(voters);\n      // Convert groups to array of objects with keys rank and voters\n      const groupedVoters = Object.keys(groupedByRank).map(rank => ({\n        rank,\n        voters: groupedByRank[rank]\n      }));\n      return groupedVoters;\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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 |voter|}}\n            <li>\n              <a\n                data-user-card={{voter.user.username}}\n                title={{voter.user.username}}\n              >\n                {{avatar voter.user.avatar_template \"tiny\"}}\n              </a>\n            </li>\n          {{/each}}\n        </ul>\n      {{/each}}\n      */\n      {\n        \"id\": \"sch9560c\",\n        \"block\": \"[[[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        \\\"],[10,3],[15,\\\"data-user-card\\\",[30,2,[\\\"user\\\",\\\"username\\\"]]],[15,\\\"title\\\",[30,2,[\\\"user\\\",\\\"username\\\"]]],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,2],[[30,2,[\\\"user\\\",\\\"avatar_template\\\"]],\\\"tiny\\\"],null]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null]],[\\\"rank\\\",\\\"voter\\\"],[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/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  }\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 {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\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                <a data-user-card={{user.username}} title={{user.username}}>\n                  {{avatar user.avatar_template \"tiny\"}}\n                </a>\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        \"id\": \"FQzmuaTe\",\n        \"block\": \"[[[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          \\\"],[10,3],[15,\\\"data-user-card\\\",[30,3,[\\\"username\\\"]]],[15,\\\"title\\\",[30,3,[\\\"username\\\"]]],[12],[1,\\\"\\\\n            \\\"],[1,[28,[32,1],[[30,3,[\\\"avatar_template\\\"]],\\\"tiny\\\"],null]],[1,\\\"\\\\n          \\\"],[13],[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],[13]],[\\\"@isRankedChoice\\\",\\\"@voters\\\",\\\"user\\\",\\\"@loading\\\",\\\"@fetchVoters\\\",\\\"@optionId\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/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  }\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\", \"@ember-compat/tracked-built-ins\", \"discourse/helpers/d-icon\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/round\", \"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, _template, _trackedBuiltIns, _dIcon, _ajax, _ajaxError, _round, _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  const CLOSED_STATUS = \"closed\";\n  const OPEN_STATUS = \"open\";\n  class PollComponent extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"siteSettings\", [_service.service]);\n    }\n    #siteSettings = (dt7948.i(this, \"siteSettings\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"appEvents\", [_service.service]);\n    }\n    #appEvents = (dt7948.i(this, \"appEvents\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"dialog\", [_service.service]);\n    }\n    #dialog = (dt7948.i(this, \"dialog\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"modal\", [_service.service]);\n    }\n    #modal = (dt7948.i(this, \"modal\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"preloadedVoters\", [_tracking.tracked], function () {\n        return this.defaultPreloadedVoters();\n      });\n    }\n    #preloadedVoters = (dt7948.i(this, \"preloadedVoters\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"voterListExpanded\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #voterListExpanded = (dt7948.i(this, \"voterListExpanded\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"vote\", [_tracking.tracked], function () {\n        return this.args.post.polls_votes?.[this.args.poll.name] || [];\n      });\n    }\n    #vote = (dt7948.i(this, \"vote\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"hasSavedVote\", [_tracking.tracked], function () {\n        return this.vote.length > 0;\n      });\n    }\n    #hasSavedVote = (dt7948.i(this, \"hasSavedVote\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"showResults\", [_tracking.tracked], function () {\n        return !(this.poll.results === ON_CLOSE && !this.closed) && (this.hasSavedVote || this.topicArchived && !this.staffOnly || this.closed && !this.staffOnly);\n      });\n    }\n    #showResults = (dt7948.i(this, \"showResults\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"showTally\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #showTally = (dt7948.i(this, \"showTally\"), void 0);\n    checkUserGroups = (user, poll) => {\n      const pollGroups = poll && poll.groups && poll.groups.split(\",\").map(g => g.toLowerCase());\n      if (!pollGroups) {\n        return true;\n      }\n      const userGroups = user && user.groups && user.groups.map(g => g.name.toLowerCase());\n      return userGroups && pollGroups.some(g => userGroups.includes(g));\n    };\n    areRanksValid = arr => {\n      let ranks = new Set(); // Using a Set to keep track of unique ranks\n      let hasNonZeroDuplicate = false;\n      let allZeros = true;\n      arr.forEach(obj => {\n        const rank = obj.rank;\n        if (rank !== 0) {\n          allZeros = false; // Set to false if any rank is non-zero\n          if (ranks.has(rank)) {\n            hasNonZeroDuplicate = true;\n            return; // Exit forEach loop if a non-zero duplicate is found\n          }\n          ranks.add(rank);\n        }\n      });\n      return !hasNonZeroDuplicate && !allZeros;\n    };\n    _toggleOption = (option, rank = 0) => {\n      if (this.isMultiple) {\n        const chosenIdx = this.vote.indexOf(option.id);\n        if (chosenIdx !== -1) {\n          this.vote.splice(chosenIdx, 1);\n        } else {\n          this.vote.push(option.id);\n        }\n      } else if (this.isRankedChoice) {\n        this.options.forEach(candidate => {\n          const chosenIdx = this.vote.findIndex(object => object.digest === candidate.id);\n          if (chosenIdx === -1) {\n            this.vote.push({\n              digest: candidate.id,\n              rank: candidate.id === option ? rank : 0\n            });\n          } else {\n            if (candidate.id === option) {\n              this.vote[chosenIdx].rank = rank;\n            }\n          }\n        });\n      } else {\n        this.vote = [option.id];\n      }\n      this.vote = [...this.vote];\n    };\n    get poll() {\n      return this.args.poll;\n    }\n    defaultPreloadedVoters() {\n      const preloadedVoters = {};\n      if (this.poll.public && this.poll.preloaded_voters) {\n        Object.keys(this.poll.preloaded_voters).forEach(key => {\n          preloadedVoters[key] = {\n            voters: this.poll.preloaded_voters[key],\n            loading: false\n          };\n        });\n      }\n      this.options.forEach(option => {\n        if (!preloadedVoters[option.id]) {\n          preloadedVoters[option.id] = {\n            voters: [],\n            loading: false\n          };\n        }\n      });\n      return preloadedVoters;\n    }\n    get id() {\n      return `${this.args.poll.name}-${this.args.post.id}`;\n    }\n    get post() {\n      return this.args.post;\n    }\n    get groupableUserFields() {\n      return this.siteSettings.poll_groupable_user_fields.split(\"|\").filter(Boolean);\n    }\n    get isStaff() {\n      return this.currentUser?.staff;\n    }\n    get titleHTML() {\n      return (0, _template.trustHTML)(this.args.titleHTML);\n    }\n    get topicArchived() {\n      return this.post.get(\"topic.archived\");\n    }\n    get isRankedChoice() {\n      return this.poll.type === RANKED_CHOICE;\n    }\n    get staffOnly() {\n      return this.poll.results === STAFF_ONLY;\n    }\n    get isMultiple() {\n      return this.poll.type === MULTIPLE;\n    }\n    get isNumber() {\n      return this.poll.type === NUMBER;\n    }\n    get isMe() {\n      return this.currentUser && this.post.user_id === this.currentUser.id;\n    }\n    get status() {\n      return this.poll.status;\n    }\n    async castVotes(option) {\n      if (!this.canCastVotes) {\n        return;\n      }\n      if (!this.currentUser) {\n        return;\n      }\n      try {\n        const {\n          poll\n        } = await (0, _ajax.ajax)(\"/polls/vote\", {\n          type: \"PUT\",\n          data: {\n            post_id: this.post.id,\n            poll_name: this.poll.name,\n            options: this.vote\n          }\n        });\n        this.hasSavedVote = true;\n        if (!this.args.post.polls_votes) {\n          this.args.post.polls_votes = new _trackedBuiltIns.TrackedObject();\n        }\n        this.args.post.polls_votes[this.poll.name] = this.vote;\n        Object.assign(this.poll, poll);\n        this.appEvents.trigger(\"poll:voted\", poll, this.post, this.vote);\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 (error) {\n        if (error) {\n          if (!this.isMultiple && !this.isRankedChoice) {\n            this._toggleOption(option);\n          }\n          (0, _ajaxError.popupAjaxError)(error);\n        } else {\n          this.dialog.alert((0, _discourseI18n.i18n)(\"poll.error_while_casting_votes\"));\n        }\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"castVotes\", [_object.action]);\n    }\n    get options() {\n      let enrichedOptions = this.poll.options;\n      if (this.isRankedChoice) {\n        enrichedOptions.forEach(candidate => {\n          const chosenIdx = this.vote.findIndex(object => object.digest === candidate.id);\n          if (chosenIdx === -1) {\n            candidate.rank = 0;\n          } else {\n            candidate.rank = this.vote[chosenIdx].rank;\n          }\n        });\n      }\n      return enrichedOptions;\n    }\n    get voters() {\n      return this.poll.voters;\n    }\n    get rankedChoiceOutcome() {\n      return this.poll.ranked_choice_outcome || null;\n    }\n    get min() {\n      let min = parseInt(this.poll.min, 10);\n      if (isNaN(min) || min < 0) {\n        min = 1;\n      }\n      return min;\n    }\n    get max() {\n      let max = parseInt(this.poll.max, 10);\n      const numOptions = this.poll.options.length;\n      if (isNaN(max) || max > numOptions) {\n        max = numOptions;\n      }\n      return max;\n    }\n    get closed() {\n      return this.status === CLOSED_STATUS || this.isAutomaticallyClosed;\n    }\n    get isAutomaticallyClosed() {\n      return (this.poll.close ?? false) && moment.utc(this.poll.close, \"YYYY-MM-DD HH:mm:ss Z\") <= moment();\n    }\n    get hasVoted() {\n      return this.vote?.length > 0;\n    }\n    get hideResultsDisabled() {\n      return !this.staffOnly && (this.closed || this.topicArchived);\n    }\n    toggleOption(option, rank = 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] === option.id) {\n        return this.removeVote();\n      }\n      if (!this.isMultiple && !this.isRankedChoice) {\n        this.vote.length = 0;\n      }\n      this._toggleOption(option, rank);\n      if (!this.isMultiple && !this.isRankedChoice) {\n        this.castVotes(option);\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleOption\", [_object.action]);\n    }\n    toggleResults() {\n      this.showResults = !this.showResults;\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleResults\", [_object.action]);\n    }\n    get canCastVotes() {\n      if (this.closed || !this.currentUser) {\n        return false;\n      }\n      const selectedOptionCount = this.vote?.length || 0;\n      if (this.isMultiple) {\n        return selectedOptionCount >= this.min && selectedOptionCount <= this.max;\n      }\n      if (this.isRankedChoice) {\n        return this.options.length === this.vote?.length && this.areRanksValid(this.vote);\n      }\n      return selectedOptionCount > 0;\n    }\n    get notInVotingGroup() {\n      return !this.checkUserGroups(this.currentUser, this.poll);\n    }\n    get pollGroups() {\n      return (0, _discourseI18n.i18n)(\"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      return this.isMultiple;\n    }\n    get resultsWidgetTypeClass() {\n      const type = this.poll.type;\n      return this.isNumber || this.poll.chart_type !== _pollUiBuilder.PIE_CHART_TYPE ? `discourse-poll-${type}-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 totalScore = this.options.reduce((total, o) => {\n        return total + parseInt(o.html, 10) * parseInt(o.votes, 10);\n      }, 0);\n      const average = this.voters === 0 ? 0 : (0, _round.default)(totalScore / this.voters, -2);\n      return (0, _template.trustHTML)((0, _discourseI18n.i18n)(\"poll.average_rating\", {\n        average\n      }));\n    }\n    get availableDisplayMode() {\n      if (!this.showResults || this.poll.chart_type === _pollUiBuilder.PIE_CHART_TYPE || ![_pollUiBuilder.REGULAR_POLL_TYPE, _pollUiBuilder.MULTIPLE_POLL_TYPE].includes(this.poll.type)) {\n        return null;\n      }\n      return this.showTally ? \"showPercentage\" : \"showTally\";\n    }\n    updatedVoters() {\n      if (!this.voterListExpanded) {\n        this.preloadedVoters = this.defaultPreloadedVoters();\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"updatedVoters\", [_object.action]);\n    }\n    fetchVoters(optionId) {\n      let voters;\n      let preloadedVoters = this.preloadedVoters;\n      if (optionId) {\n        preloadedVoters[optionId].loading = true;\n        voters = preloadedVoters[optionId]?.voters;\n      } else {\n        voters = preloadedVoters;\n      }\n      this.preloadedVoters = {\n        ...preloadedVoters\n      };\n      const votersCount = voters?.length;\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: optionId,\n          page: Math.floor(votersCount / FETCH_VOTERS_COUNT) + 1,\n          limit: FETCH_VOTERS_COUNT\n        }\n      }).then(result => {\n        this.voterListExpanded = true;\n        const newVoters = optionId ? result.voters[optionId] : result.voters;\n        let votersSet = new Set([]);\n        if (this.isRankedChoice) {\n          votersSet = new Set(voters.map(voter => voter.user.username));\n          newVoters.forEach(voter => {\n            if (!votersSet.has(voter.user.username)) {\n              votersSet.add(voter.user.username);\n              voters.push(voter);\n            }\n          });\n        } else {\n          votersSet = new Set(voters.map(voter => voter.username));\n          newVoters.forEach(voter => {\n            if (!votersSet.has(voter.username)) {\n              votersSet.add(voter.username);\n              voters.push(voter);\n            }\n          });\n          // remove users who changed their vote\n          if (this.poll.type === REGULAR) {\n            Object.keys(preloadedVoters).forEach(otherOptionId => {\n              if (optionId !== otherOptionId) {\n                preloadedVoters[otherOptionId].voters = preloadedVoters[otherOptionId].voters.filter(voter => !votersSet.has(voter.username));\n              }\n            });\n          }\n        }\n      }).catch(error => {\n        if (error) {\n          (0, _ajaxError.popupAjaxError)(error);\n        } else {\n          this.dialog.alert((0, _discourseI18n.i18n)(\"poll.error_while_fetching_voters\"));\n        }\n      }).finally(() => {\n        if (optionId) {\n          preloadedVoters[optionId].loading = false;\n        }\n        this.preloadedVoters = {\n          ...preloadedVoters\n        };\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"fetchVoters\", [_object.action]);\n    }\n    dropDownClick(dropDownAction) {\n      this[dropDownAction]();\n    }\n    static {\n      dt7948.n(this.prototype, \"dropDownClick\", [_object.action]);\n    }\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(({\n        poll\n      }) => {\n        if (this.poll.type === RANKED_CHOICE) {\n          poll.options.forEach(option => {\n            option.rank = 0;\n          });\n        }\n        this.vote = Object.assign([]);\n        this.hasSavedVote = false;\n        if (this.args.post.polls_votes) {\n          delete this.args.post.polls_votes[this.poll.name];\n        }\n        this.appEvents.trigger(\"poll:voted\", poll, this.post, this.vote);\n        this.showResults = false;\n      }).catch(error => (0, _ajaxError.popupAjaxError)(error));\n    }\n    static {\n      dt7948.n(this.prototype, \"removeVote\", [_object.action]);\n    }\n    toggleStatus() {\n      if (this.isAutomaticallyClosed) {\n        return;\n      }\n      this.dialog.yesNoConfirm({\n        message: (0, _discourseI18n.i18n)(this.closed ? \"poll.open.confirm\" : \"poll.close.confirm\"),\n        didConfirm: () => {\n          const status = this.closed ? OPEN_STATUS : CLOSED_STATUS;\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\n            }\n          }).then(() => {\n            this.poll.status = status;\n            if (this.poll.results === ON_CLOSE || this.poll.results === \"always\") {\n              this.showResults = this.status === CLOSED_STATUS;\n            }\n            // Votes are only included in serialized results for results=ON_CLOSE when\n            // the poll is closed, so we must refresh the page to pick these up.\n            if (this.poll.results === ON_CLOSE && this.status === CLOSED_STATUS) {\n              this.router.refresh();\n            }\n          }).catch(error => {\n            if (error) {\n              (0, _ajaxError.popupAjaxError)(error);\n            } else {\n              this.dialog.alert((0, _discourseI18n.i18n)(\"poll.error_while_toggling_status\"));\n            }\n          });\n        }\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleStatus\", [_object.action]);\n    }\n    showBreakdown() {\n      this.modal.show(_pollBreakdown.default, {\n        model: {\n          poll: this.poll,\n          post: this.post\n        }\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"showBreakdown\", [_object.action]);\n    }\n    exportResults() {\n      const queryID = 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/discourse-data-explorer/queries/${queryID}/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(csvContent => {\n        const downloadLink = document.createElement(\"a\");\n        const blob = new Blob([csvContent], {\n          type: \"text/csv;charset=utf-8;\"\n        });\n        downloadLink.href = URL.createObjectURL(blob);\n        downloadLink.setAttribute(\"download\", `poll-export-${this.poll.name}-${this.post.id}.csv`);\n        downloadLink.click();\n        downloadLink.remove();\n      }).catch(error => {\n        if (error) {\n          (0, _ajaxError.popupAjaxError)(error);\n        } else {\n          this.dialog.alert((0, _discourseI18n.i18n)(\"poll.error_while_exporting_results\"));\n        }\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"exportResults\", [_object.action]);\n    }\n    toggleDisplayMode() {\n      this.showTally = !this.showTally;\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleDisplayMode\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div class=\"poll\">\n        <div\n          {{didUpdate this.updatedVoters this.poll.preloaded_voters}}\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                    @showTally={{this.showTally}}\n                  />\n                {{/if}}\n              {{/if}}\n            </div>\n          {{else}}\n            <PollOptions\n              @isCheckbox={{this.isCheckbox}}\n              @isRankedChoice={{this.isRankedChoice}}\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          @isDynamic={{if @isDynamic true this.poll.dynamic}}\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={{i18n \"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={{i18n \"poll.hide-results.title\"}}\n              {{on \"click\" this.toggleResults}}\n            >\n              {{icon \"chevron-left\"}}\n              <span class=\"d-button-label\">{{i18n\n                  \"poll.hide-results.label\"\n                }}</span>\n            </button>\n          {{/if}}\n      \n          {{#if this.showShowResultsButton}}\n            <button\n              class=\"btn btn-default toggle-results\"\n              title={{i18n \"poll.show-results.title\"}}\n              {{on \"click\" this.toggleResults}}\n            >\n              {{icon \"chart-bar\"}}\n              <span class=\"d-button-label\">{{i18n\n                  \"poll.show-results.label\"\n                }}</span>\n            </button>\n          {{/if}}\n      \n          {{#if this.showRemoveVoteButton}}\n            <button\n              class=\"btn btn-default remove-vote\"\n              title={{i18n \"poll.remove-vote.title\"}}\n              {{on \"click\" this.removeVote}}\n            >\n              {{icon \"arrow-rotate-left\"}}\n              <span class=\"d-button-label\">{{i18n\n                  \"poll.remove-vote.label\"\n                }}</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            @availableDisplayMode={{this.availableDisplayMode}}\n          />\n        </div>\n      </div>\n      */\n      {\n        \"id\": \"ejUPG0qb\",\n        \"block\": \"[[[10,0],[14,0,\\\"poll\\\"],[12],[1,\\\"\\\\n  \\\"],[11,0],[24,0,\\\"poll-container\\\"],[4,[32,0],[[30,0,[\\\"updatedVoters\\\"]],[30,0,[\\\"poll\\\",\\\"preloaded_voters\\\"]]],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\\\",\\\"@showTally\\\"],[[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\\\"]],[30,0,[\\\"showTally\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]]]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"      \\\"],[8,[32,3],null,[[\\\"@isCheckbox\\\",\\\"@isRankedChoice\\\",\\\"@options\\\",\\\"@votes\\\",\\\"@sendOptionSelect\\\"],[[30,0,[\\\"isCheckbox\\\"]],[30,0,[\\\"isRankedChoice\\\"]],[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\\\",\\\"@isDynamic\\\",\\\"@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\\\"]],[52,[30,1],true,[30,0,[\\\"poll\\\",\\\"dynamic\\\"]]],[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\\\"]]],[16,\\\"title\\\",[28,[32,5],[\\\"poll.cast-votes.title\\\"],null]],[16,\\\"disabled\\\",[30,0,[\\\"castVotesDisabled\\\"]]],[4,[32,6],[\\\"click\\\",[30,0,[\\\"castVotes\\\"]]],null],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,7],[[30,0,[\\\"castVotesButtonIcon\\\"]]],null]],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,5],[\\\"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\\\"],[16,\\\"title\\\",[28,[32,5],[\\\"poll.hide-results.title\\\"],null]],[4,[32,6],[\\\"click\\\",[30,0,[\\\"toggleResults\\\"]]],null],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,7],[\\\"chevron-left\\\"],null]],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,5],[\\\"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\\\"],[16,\\\"title\\\",[28,[32,5],[\\\"poll.show-results.title\\\"],null]],[4,[32,6],[\\\"click\\\",[30,0,[\\\"toggleResults\\\"]]],null],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,7],[\\\"chart-bar\\\"],null]],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,5],[\\\"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\\\"],[16,\\\"title\\\",[28,[32,5],[\\\"poll.remove-vote.title\\\"],null]],[4,[32,6],[\\\"click\\\",[30,0,[\\\"removeVote\\\"]]],null],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,7],[\\\"arrow-rotate-left\\\"],null]],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"d-button-label\\\"],[12],[1,[28,[32,5],[\\\"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\\\",\\\"@availableDisplayMode\\\"],[[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\\\"]],[30,0,[\\\"availableDisplayMode\\\"]]]],null],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"],[13]],[\\\"@isDynamic\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/components/poll.js\",\n        \"scope\": () => [_didUpdate.default, _pollResultsPie.default, _pollResultsTabs.default, _pollOptions.default, _pollInfo.default, _discourseI18n.i18n, _modifier.on, _dIcon.default, _pollButtonsDropdown.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = PollComponent;\n});","define(\"discourse/plugins/poll/discourse/initializers/add-poll-ui-builder\", [\"exports\", \"discourse/lib/plugin-api\", \"discourse/plugins/poll/lib/rich-editor-extension\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\"], function (_exports, _pluginApi, _richEditorExtension, _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    api.registerRichEditorExtension(_richEditorExtension.default);\n  }\n  var _default = _exports.default = {\n    name: \"add-poll-ui-builder\",\n    initialize() {\n      (0, _pluginApi.withPluginApi)(initializePollUIBuilder);\n    }\n  };\n});","define(\"discourse/plugins/poll/discourse/initializers/extend-for-poll\", [\"exports\", \"@glimmer/tracking\", \"@ember/object\", \"@ember-compat/tracked-built-ins\", \"discourse/lib/decorators\", \"discourse/lib/plugin-api\", \"discourse/plugins/poll/discourse/components/modal/poll-ui-builder\", \"discourse/plugins/poll/discourse/components/poll\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _tracking, _object, _trackedBuiltIns, _decorators, _pluginApi, _pollUiBuilder, _poll, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\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    const polls = post.pollsObject;\n    pollNodes.forEach(pollNode => {\n      const pollName = pollNode.dataset.pollName;\n      let poll = polls[pollName];\n      let pollPost = post;\n      const quotedId = pollNode.closest(\".expanded-quote\")?.dataset.postId;\n      if (quotedId && post.quoted[quotedId]) {\n        pollPost = _object.default.create(post.quoted[quotedId]);\n        poll = new _trackedBuiltIns.TrackedObject(pollPost.polls.find(p => p.name === pollName));\n      }\n      if (poll) {\n        const titleHTML = pollNode.querySelector(\".poll-title\")?.outerHTML;\n        const isDynamic = pollNode.dataset.pollDynamic === \"true\";\n        const newPollNode = document.createElement(\"div\");\n        Object.assign(newPollNode.dataset, {\n          pollName: poll.name,\n          pollType: poll.type\n        });\n        newPollNode.classList.add(\"poll-outer\");\n        if (poll.chart_type === _pollUiBuilder.PIE_CHART_TYPE) {\n          newPollNode.classList.add(\"pie\");\n        }\n        pollNode.replaceWith(newPollNode);\n        helper.renderGlimmer(newPollNode, (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n        /*\n          <Poll\n          @poll={{poll}}\n          @post={{post}}\n          @titleHTML={{titleHTML}}\n          @isDynamic={{if isDynamic true poll.dynamic}}\n        />\n        */\n        {\n          \"id\": \"KZrO9x9w\",\n          \"block\": \"[[[8,[32,0],null,[[\\\"@poll\\\",\\\"@post\\\",\\\"@titleHTML\\\",\\\"@isDynamic\\\"],[[32,1],[32,2],[32,3],[52,[32,4],true,[32,1,[\\\"dynamic\\\"]]]]],null]],[],[\\\"if\\\"]]\",\n          \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/poll/discourse/initializers/extend-for-poll.js\",\n          \"scope\": () => [_poll.default, poll, post, titleHTML, isDynamic],\n          \"isStrictMode\": true\n        }), (0, _templateOnly.default)(undefined, undefined)));\n      }\n    });\n  }\n  function initializePolls(api) {\n    api.modifyClass(\"controller:topic\", Superclass => class extends Superclass {\n      subscribe() {\n        super.subscribe(...arguments);\n        this.messageBus.subscribe(`/polls/${this.model.id}`, this._onPollMessage);\n      }\n      unsubscribe() {\n        this.messageBus.unsubscribe(\"/polls/*\", this._onPollMessage);\n        super.unsubscribe(...arguments);\n      }\n      _onPollMessage(msg) {\n        const post = this.get(\"model.postStream\").findLoadedPost(msg.post_id);\n        if (post) {\n          post.polls = msg.polls;\n        }\n      }\n      static {\n        dt7948.n(this.prototype, \"_onPollMessage\", [_decorators.bind]);\n      }\n    });\n    api.modifyClass(\"model:post\", Superclass => class extends Superclass {\n      static {\n        dt7948.g(this.prototype, \"polls_votes\", [_tracking.tracked], function () {\n          return new _trackedBuiltIns.TrackedObject();\n        });\n      }\n      #polls_votes = (dt7948.i(this, \"polls_votes\"), void 0);\n      static {\n        dt7948.g(this.prototype, \"pollsObject\", [_tracking.tracked], function () {\n          return new _trackedBuiltIns.TrackedObject();\n        });\n      }\n      #pollsObject = (dt7948.i(this, \"pollsObject\"), void 0);\n      static {\n        dt7948.g(this.prototype, \"_polls\", [_tracking.tracked]);\n      }\n      #_polls = (dt7948.i(this, \"_polls\"), void 0);\n      get polls() {\n        return this._polls;\n      }\n      set polls(value) {\n        this._polls = value;\n        this._refreshPollsObject();\n      }\n      _refreshPollsObject() {\n        for (const rawPoll of this.polls) {\n          const name = rawPoll.name;\n          this.pollsObject[name] ||= new _trackedBuiltIns.TrackedObject();\n          Object.assign(this.pollsObject[name], rawPoll);\n        }\n      }\n    });\n    api.decorateCookedElement(attachPolls, {\n      onlyStream: true\n    });\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)(initializePolls);\n    }\n  };\n});","define(\"discourse/plugins/poll/discourse/initializers/poll-admin-plugin-configuration-nav\", [\"exports\", \"discourse/lib/plugin-api\"], function (_exports, _pluginApi) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PLUGIN_ID = \"poll\";\n  var _default = _exports.default = {\n    name: \"poll-admin-plugin-configuration-nav\",\n    initialize(container) {\n      const currentUser = container.lookup(\"service:current-user\");\n      if (!currentUser?.admin) {\n        return;\n      }\n      (0, _pluginApi.withPluginApi)(api => {\n        api.setAdminPluginIcon(PLUGIN_ID, \"chart-bar\");\n      });\n    }\n  };\n});","define(\"discourse/plugins/poll/discourse/modifiers/decorate-cooked-content\", [\"exports\", \"ember-modifier\", \"discourse/components/decorated-html\"], function (_exports, _emberModifier, _decoratedHtml) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /** Modifier that applies cooked content decorators to an element's existing content. */\n  var _default = _exports.default = (0, _emberModifier.modifier)(element => {\n    const cleanups = (0, _decoratedHtml.applyHtmlDecorators)(element, _decoratedHtml.NULL_HELPER, _decoratedHtml.NON_STREAM_HTML_DECORATOR);\n    return () => cleanups.forEach(fn => fn());\n  });\n});","define(\"discourse/plugins/poll/discourse/modifiers/decorate-poll-option\", [\"exports\", \"ember-modifier\", \"discourse/components/decorated-html\"], function (_exports, _emberModifier, _decoratedHtml) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /** Modifier that sets element innerHTML and applies cooked content decorators. */\n  var _default = _exports.default = (0, _emberModifier.modifier)((element, [html]) => {\n    if (!html) {\n      return;\n    }\n    element.innerHTML = html;\n    const cleanups = (0, _decoratedHtml.applyHtmlDecorators)(element, _decoratedHtml.NULL_HELPER, _decoratedHtml.NON_STREAM_HTML_DECORATOR);\n    return () => cleanups.forEach(fn => fn());\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 getCSSColor(varName) {\n    const value = getComputedStyle(document.documentElement).getPropertyValue(varName).trim();\n    return value || null;\n  }\n  function generateGradientColors(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  function getColors(count, palette) {\n    const cssColors = [];\n    for (let i = 1; i <= count; i++) {\n      const color = getCSSColor(`--poll-pie-color-${i}`);\n      if (color) {\n        cssColors.push(color);\n      }\n    }\n    if (cssColors.length >= count) {\n      return cssColors.slice(0, count);\n    }\n    const remainingCount = count - cssColors.length;\n    const gradientColors = generateGradientColors(remainingCount, palette);\n    return [...cssColors, ...gradientColors];\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\", \"dynamic\"];\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 = (0, _discourseI18n.i18n)(\"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, {\n      attrs\n    }) {\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});","define(\"discourse/plugins/poll/lib/rich-editor-extension\", [\"exports\", \"discourse/lib/text\"], function (_exports, _text) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /** @type {RichEditorExtension} */\n  const extension = {\n    nodeSpec: {\n      poll: {\n        attrs: {\n          type: {\n            default: null\n          },\n          results: {\n            default: null\n          },\n          public: {\n            default: null\n          },\n          name: {\n            default: null\n          },\n          chartType: {\n            default: null\n          },\n          close: {\n            default: null\n          },\n          groups: {\n            default: null\n          },\n          max: {\n            default: null\n          },\n          min: {\n            default: null\n          },\n          dynamic: {\n            default: null\n          }\n        },\n        content: \"heading? bullet_list poll_info?\",\n        group: \"block\",\n        selectable: true,\n        isolating: true,\n        defining: true,\n        parseDOM: [{\n          tag: \"div.poll\",\n          getAttrs: dom => ({\n            type: dom.getAttribute(\"data-poll-type\"),\n            results: dom.getAttribute(\"data-poll-results\"),\n            public: dom.getAttribute(\"data-poll-public\"),\n            name: dom.getAttribute(\"data-poll-name\"),\n            chartType: dom.getAttribute(\"data-poll-chart-type\"),\n            close: dom.getAttribute(\"data-poll-close\"),\n            groups: dom.getAttribute(\"data-poll-groups\"),\n            dynamic: dom.getAttribute(\"data-poll-dynamic\"),\n            max: dom.getAttribute(\"data-poll-max\"),\n            min: dom.getAttribute(\"data-poll-min\")\n          })\n        }],\n        toDOM: node => [\"div\", {\n          class: \"poll\",\n          \"data-poll-type\": node.attrs.type,\n          \"data-poll-results\": node.attrs.results,\n          \"data-poll-public\": node.attrs.public,\n          \"data-poll-name\": node.attrs.name,\n          \"data-poll-chart-type\": node.attrs.chartType,\n          \"data-poll-close\": node.attrs.close,\n          \"data-poll-groups\": node.attrs.groups,\n          \"data-poll-dynamic\": node.attrs.dynamic,\n          \"data-poll-max\": node.attrs.max,\n          \"data-poll-min\": node.attrs.min\n        }, 0]\n      },\n      poll_info: {\n        content: \"inline*\",\n        selectable: false,\n        isolating: true,\n        parseDOM: [{\n          tag: \"div.poll-info\"\n        }],\n        toDOM: () => [\"div\", {\n          class: \"poll-info\",\n          contentEditable: false\n        }, 0]\n      }\n    },\n    parse: {\n      poll: {\n        block: \"poll\",\n        getAttrs: token => ({\n          ...token.poll_attrs,\n          name: token.poll_attrs.name === \"poll\" ? null : token.poll_attrs.name\n        })\n      },\n      poll_container: {\n        ignore: true\n      },\n      poll_title: {\n        block: \"heading\"\n      },\n      poll_info: {\n        block: \"poll_info\"\n      },\n      poll_info_counts: {\n        ignore: true\n      },\n      poll_info_counts_count: {\n        ignore: true\n      },\n      poll_info_number: {\n        ignore: true\n      },\n      poll_info_label_open(state) {\n        state.addText(\" \");\n      },\n      poll_info_label_close() {}\n    },\n    serializeNode: {\n      poll(state, node) {\n        const attrs = (0, _text.buildBBCodeAttrs)(node.attrs);\n        state.write(`[poll${attrs ? ` ${attrs}` : \"\"}]\\n`);\n        state.renderContent(node);\n        state.write(\"[/poll]\\n\\n\");\n      },\n      poll_info() {}\n    }\n  };\n  var _default = _exports.default = extension;\n});"],"mappings":"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","ignoreList":[]}