Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/vote/component/vote/dist/ |
Upload File : |
{"version":3,"file":"vote.bundle.js","sources":["../src/classes/message-menu/message-menu.js","../src/components/helpers/helpers.js","../src/components/vote-question/vote-question.js","../src/components/button-area/button-area.js","../src/components/popup/popup.js","../src/vote.js"],"sourcesContent":["import { EventEmitter } from 'main.core.events';\nimport { Loc } from 'main.core';\nimport { type MenuItem, MessageMenu } from 'im.v2.lib.menu';\n\nimport { VoteApplication } from 'vote.application';\nimport { VoteAnalytics } from 'vote.analytics';\nimport type { VoteElementState, QuestionElementState } from 'vote.store.vote';\n\nexport class VoteMessageMenu extends MessageMenu\n{\n\t#app: VoteApplication;\n\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.#app = VoteApplication.getInstance();\n\t}\n\n\tgetMenuItems(): MenuItem[]\n\t{\n\t\treturn [\n\t\t\tthis.getReplyItem(),\n\t\t\tthis.getShowResultsItem(),\n\t\t\tthis.getRevokeItem(),\n\t\t\tthis.getCopyLinkItem(),\n\t\t\tthis.getPinItem(),\n\t\t\tthis.getFavoriteItem(),\n\t\t\tthis.getCompleteItem(),\n\t\t\tthis.getDeleteItem(),\n\t\t];\n\t}\n\n\tgetCopyLinkItem(): MenuItem\n\t{\n\t\tconst copyLinkItem = super.getCopyLinkItem();\n\t\tconst { onclick } = copyLinkItem;\n\t\tcopyLinkItem.onclick = () => {\n\t\t\tonclick();\n\t\t\tVoteAnalytics.copyLink(this.context.dialogId, this.context.id, 'message_link');\n\t\t};\n\n\t\treturn copyLinkItem;\n\t}\n\n\tgetRevokeItem(): ?MenuItem\n\t{\n\t\tif (!this.#canRevokeVote())\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\ttext: Loc.getMessage('VOTE_REVOKE'),\n\t\t\tonclick: () => {\n\t\t\t\tEventEmitter.emit('vote:message-menu:revoke-vote', { entityId: this.context.id });\n\t\t\t\tthis.close();\n\t\t\t},\n\t\t};\n\t}\n\n\tgetCompleteItem(): ?MenuItem\n\t{\n\t\tif (!this.#canCompleteVote())\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\ttext: Loc.getMessage('VOTE_POPUP_BTN_COMPLETE'),\n\t\t\tonclick: () => {\n\t\t\t\tEventEmitter.emit('vote:message-menu:complete-vote', { entityId: this.context.id });\n\t\t\t\tthis.close();\n\t\t\t},\n\t\t};\n\t}\n\n\tgetShowResultsItem(): ?MenuItem\n\t{\n\t\tif (!this.#canShowResults())\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\ttext: Loc.getMessage('VOTE_SHOW_RESULTS'),\n\t\t\tonclick: () => {\n\t\t\t\tEventEmitter.emit('vote:message-menu:results-vote', { entityId: this.context.id });\n\t\t\t\tthis.close();\n\t\t\t},\n\t\t};\n\t}\n\n\t#getCurrentVote(): VoteElementState\n\t{\n\t\tconst voteCollection = this.#app.getStore().getters['vote/getVoteCollection'];\n\n\t\treturn voteCollection[this.context.componentParams.id];\n\t}\n\n\t#canCompleteVote(): boolean\n\t{\n\t\tconst vote = this.#getCurrentVote();\n\t\tif (!vote)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !vote.isCompleted && vote.canEdit;\n\t}\n\n\t#canShowResults(): boolean\n\t{\n\t\tconst vote = this.#getCurrentVote();\n\t\tconst question = this.#getCurrentQuestion();\n\n\t\tif (!vote || !question)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn vote.canEdit\n\t\t\t&& this.#getCurrentQuestion().totalCounter > 0\n\t\t;\n\t}\n\n\t#canRevokeVote(): boolean\n\t{\n\t\tconst vote = this.#getCurrentVote();\n\t\tif (!vote)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !vote.isCompleted && vote.canRevoke && vote.isVoted;\n\t}\n\n\t#getCurrentQuestion(): QuestionElementState | null\n\t{\n\t\tconst questions = this.context.componentParams.data?.questions;\n\t\tif (!questions)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tconst [firstQuestionId] = Object.keys(questions);\n\t\tconst questionCollection = this.#app.getStore().getters['vote/getQuestionCollection'];\n\n\t\treturn questionCollection[firstQuestionId] ?? null;\n\t}\n}\n","import { Loc } from 'main.core';\n\nexport const getMessage = (phraseCode: string): string => {\n\treturn Loc.getMessage(phraseCode);\n};\n\nexport const getMessageWithCount = (phraseCode: string, counter: number): string => {\n\treturn Loc.getMessagePlural(phraseCode, counter, {\n\t\t'#COUNT#': counter,\n\t});\n};\n","import { hint, type HintParams } from 'ui.vue3.directives.hint';\n\nimport { VoteApplication } from 'vote.application';\nimport { getMessageWithCount } from '../helpers/helpers';\n\nimport type { JsonObject } from 'main.core';\nimport type { AnswerCollectionType } from 'vote.store.vote';\nimport type { AnswersSelectedEvent, FormattedAnswersType } from '../../type';\n\nimport './style.css';\n\n// @vue/component\nexport const VoteQuestion = {\n\tname: 'VoteQuestion',\n\tdirectives: { hint },\n\tprops: {\n\t\tcontextId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tisLoading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** @type {FormattedQuestionType} */\n\t\tquestion: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\t/** @type {FormattedAnswersType} */\n\t\tanswers: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tisUserVoted: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisCompleted: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: ['answersSelected'],\n\tdata(): JsonObject\n\t{\n\t\treturn {\n\t\t\tselectedRadioBtn: null,\n\t\t\tselectedCheckboxes: [],\n\t\t};\n\t},\n\tcomputed: {\n\t\tanswersCollection(): AnswerCollectionType\n\t\t{\n\t\t\treturn this.app.getStore().getters['vote/getAnswerCollection'];\n\t\t},\n\t\tformattedAnswers(): FormattedAnswersType\n\t\t{\n\t\t\tconst formattedAnswers = {};\n\n\t\t\tObject.keys(this.answers).forEach((key, index) => {\n\t\t\t\tconst answer = this.answers[key];\n\t\t\t\tconst storeAnswer = this.answersCollection[answer.id] || {};\n\n\t\t\t\tformattedAnswers[key] = {\n\t\t\t\t\t...answer,\n\t\t\t\t\tcounter: storeAnswer.counter || 0,\n\t\t\t\t\tpercent: this.question.isMultiple ? Math.round(storeAnswer.percent) : this.roundPercentages[index],\n\t\t\t\t};\n\t\t\t});\n\n\t\t\treturn formattedAnswers;\n\t\t},\n\t\tgetCurrentUserVotes(): number[]\n\t\t{\n\t\t\treturn this.app.getStore().getters['vote/getCurrentUserVotes'][this.question.id] || [];\n\t\t},\n\t\tcanShowResults(): boolean\n\t\t{\n\t\t\treturn this.isUserVoted || this.isCompleted;\n\t\t},\n\t\tanswerVotes(): number[]\n\t\t{\n\t\t\treturn Object.values(this.answers).map((answer) => {\n\t\t\t\tconst counter = this.answersCollection[answer.id]?.counter;\n\n\t\t\t\treturn counter || 0;\n\t\t\t});\n\t\t},\n\t\troundPercentages(): number[]\n\t\t{\n\t\t\tconst totalVotes = this.answerVotes.reduce((sum, count) => sum + count, 0);\n\t\t\tif (totalVotes === 0)\n\t\t\t{\n\t\t\t\treturn this.answerVotes.map(() => 0);\n\t\t\t}\n\n\t\t\tconst calculatedPercents = this.answerVotes.map((vote) => (vote / totalVotes) * 100);\n\t\t\tconst roundedPercents = calculatedPercents.map((percent) => Math.floor(percent));\n\t\t\tconst remainder = 100 - roundedPercents.reduce((sum, p) => sum + p, 0);\n\n\t\t\tconst fractionalParts = calculatedPercents\n\t\t\t\t.map((percent, index) => ({ index, fraction: percent % 1 }))\n\t\t\t\t.sort((a, b) => b.fraction - a.fraction);\n\n\t\t\tfor (let i = 0; i < remainder; i++)\n\t\t\t{\n\t\t\t\troundedPercents[fractionalParts[i].index] += 1;\n\t\t\t}\n\n\t\t\treturn roundedPercents;\n\t\t},\n\t},\n\twatch: {\n\t\tisLoading(newValue): void\n\t\t{\n\t\t\tif (newValue)\n\t\t\t{\n\t\t\t\tthis.selectedCheckboxes = this.getCurrentUserVotes || [];\n\t\t\t\tthis.selectedRadioBtn = this.getCurrentUserVotes[0];\n\t\t\t}\n\t\t},\n\t\tisUserVoted(voted: boolean): void\n\t\t{\n\t\t\tif (voted)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.selectedCheckboxes = [];\n\t\t\tthis.selectedRadioBtn = null;\n\t\t},\n\t},\n\tcreated()\n\t{\n\t\tthis.app = VoteApplication.init();\n\t},\n\tmethods:\n\t{\n\t\tradioChanged(): void\n\t\t{\n\t\t\tthis.emitAnswersSelectedWithValue([this.selectedRadioBtn]);\n\t\t},\n\t\tcheckboxChanged(): void\n\t\t{\n\t\t\tthis.emitAnswersSelectedWithValue(this.selectedCheckboxes);\n\t\t},\n\t\temitAnswersSelectedWithValue(answerIds: number[]): void\n\t\t{\n\t\t\tconst eventData: AnswersSelectedEvent = {\n\t\t\t\tquestionId: this.question.id,\n\t\t\t\tanswerIds,\n\t\t\t};\n\t\t\tthis.$emit('answersSelected', eventData);\n\t\t},\n\t\thasCurrentUserVote(answerId: number): boolean\n\t\t{\n\t\t\tif (this.canShowResults)\n\t\t\t{\n\t\t\t\treturn this.app.getStore().getters['vote/hasCurrentUserVote'](this.question.id, answerId);\n\t\t\t}\n\n\t\t\treturn this.selectedCheckboxes.includes(answerId);\n\t\t},\n\t\tgetUniqueAnswerId(answerId: number): string\n\t\t{\n\t\t\treturn `vote-answer-${answerId}-${this.contextId}`;\n\t\t},\n\t\tshowHintCounter(counter: number): Partial<HintParams> | null\n\t\t{\n\t\t\treturn {\n\t\t\t\ttext: this.countText(counter),\n\t\t\t\tpopupOptions: {\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\ttargetContainer: document.body,\n\t\t\t\t\toffsetLeft: 25,\n\t\t\t\t\toffsetTop: 5,\n\t\t\t\t\tautoHide: false,\n\t\t\t\t\tangle: {\n\t\t\t\t\t\tposition: 'top',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\tcountText(counter: number): string\n\t\t{\n\t\t\treturn getMessageWithCount('VOTE_RESULT_COUNT', counter);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"vote__question\">\n\t\t\t<div class=\"vote__question-text\">{{ question.question }}</div>\n\t\t</div>\n\t\t<div :class=\"['vote__answers', { '--voted': canShowResults }]\">\n\t\t\t<div v-for=\"(answer, answerKey) in formattedAnswers\" \n\t\t\t\t :key=\"answerKey\"\n\t\t\t\t :class=\"['vote__answer', { '--selected': hasCurrentUserVote(answer.id) }]\"\n\t\t\t>\n\t\t\t\t<input\n\t\t\t\t\tclass=\"vote__answer-select\"\n\t\t\t\t\tv-if=\"!isLoading && !question.isMultiple\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tv-model=\"selectedRadioBtn\"\n\t\t\t\t\t:value=\"answer.id\"\n\t\t\t\t\t:id=\"getUniqueAnswerId(answer.id)\"\n\t\t\t\t\t@change=\"radioChanged\"\n\t\t\t\t/>\n\t\t\t\t<input\n\t\t\t\t\tclass=\"vote__answer-select --checkbox\"\n\t\t\t\t\tv-if=\"!isLoading && question.isMultiple\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tv-model=\"selectedCheckboxes\"\n\t\t\t\t\t:value=\"answer.id\"\n\t\t\t\t\t:id=\"getUniqueAnswerId(answer.id)\"\n\t\t\t\t\t:key=\"answer.id\"\n\t\t\t\t\t@change=\"checkboxChanged\"\n\t\t\t\t/>\n\t\t\t\t<div class=\"vote__progress-bar\">\n\t\t\t\t\t<label class='vote__answer-text' :for=\"getUniqueAnswerId(answer.id)\">{{ answer.message }}</label>\n\t\t\t\t\t<transition name=\"vote__answer-percent-show\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"canShowResults\"\n\t\t\t\t\t\t\tv-hint=\"answer.counter > 0 ? (() => showHintCounter(answer.counter)) : null\"\n\t\t\t\t\t\t\tclass=\"vote__answer-percent\"\n\t\t\t\t\t\t\t:key=\"'percent-' + answerKey + '-' + answer.counter\">\n\t\t\t\t\t\t\t<span>{{ answer.percent }}</span>\n\t\t\t\t\t\t\t%\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<transition name=\"vote__progress-bar-filled\">\n\t\t\t\t\t\t<div v-if=\"canShowResults\" class=\"vote__progress-bar-fill\"\n\t\t\t\t\t\t\t :key=\"'fill-' + answerKey\"\n\t\t\t\t\t\t\t :style=\"{ '--target-width': answer.percent + '%' }\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import { VoteApplication } from 'vote.application';\nimport { getMessage, getMessageWithCount } from '../helpers/helpers';\n\nimport { VoteQuestion } from '../vote-question/vote-question';\n\nimport './style.css';\n\nconst ButtonType = Object.freeze({\n\tvote: 'vote',\n\tdisable: 'disable',\n\tshowResults: 'show',\n});\n\n// @vue/component\nexport const ButtonArea = {\n\tname: 'ButtonArea',\n\tcomponents: { VoteQuestion },\n\tprops: {\n\t\t/** @type {FormattedQuestionType} */\n\t\tquestion: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tisLoading: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisUserVoted: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisCompleted: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisBtnActive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: ['onClickVoteButton', 'showResults'],\n\tcomputed:\n\t{\n\t\tisMultipleQuestion(): boolean\n\t\t{\n\t\t\tif (this.isLoading)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.app.getStore().getters['vote/getQuestionCollection'][this.question.id].isMultiple;\n\t\t},\n\t\tbuttonType(): string\n\t\t{\n\t\t\tif ((this.isUserVoted || this.isCompleted) && this.question.totalCounter > 0)\n\t\t\t{\n\t\t\t\treturn ButtonType.showResults;\n\t\t\t}\n\n\t\t\tif (this.isMultipleQuestion && !this.isCompleted)\n\t\t\t{\n\t\t\t\treturn ButtonType.vote;\n\t\t\t}\n\n\t\t\treturn ButtonType.disable;\n\t\t},\n\t\tisBtnAvailableToVote(): boolean\n\t\t{\n\t\t\treturn this.isBtnActive && this.buttonType === ButtonType.vote;\n\t\t},\n\t\tbuttonClass(): string\n\t\t{\n\t\t\treturn `--${this.buttonType}`;\n\t\t},\n\t\tsummaryText(): string\n\t\t{\n\t\t\tif (this.question.totalCounter > 0)\n\t\t\t{\n\t\t\t\treturn getMessageWithCount('VOTE_RESULT_COUNT', this.question.totalCounter);\n\t\t\t}\n\n\t\t\treturn getMessage('VOTE_SUMMARY_COUNT_NO_VOTES');\n\t\t},\n\t\tbuttonText(): string\n\t\t{\n\t\t\tif (this.isUserVoted || !this.isMultipleQuestion || this.isCompleted)\n\t\t\t{\n\t\t\t\treturn this.summaryText;\n\t\t\t}\n\n\t\t\treturn getMessage('VOTE_BUTTON');\n\t\t},\n\t},\n\tcreated(): void\n\t{\n\t\tthis.app = VoteApplication.init();\n\t},\n\tmethods: {\n\t\thandleButtonClick(): void\n\t\t{\n\t\t\tif (this.buttonType === ButtonType.vote)\n\t\t\t{\n\t\t\t\tthis.$emit('onClickVoteButton');\n\t\t\t}\n\t\t\telse if (this.buttonType === ButtonType.showResults)\n\t\t\t{\n\t\t\t\tthis.$emit('showResults');\n\t\t\t}\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"vote-display-btn-wrapper\">\n\t\t\t<button class=\"vote-display-btn\"\n\t\t\t\t\t@click=\"handleButtonClick\"\n\t\t\t\t\t:class=\"[buttonClass, { '--active': isBtnAvailableToVote }]\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t{{ buttonText }}\n\t\t\t</button>\n\t\t</div>\n\t`,\n};\n","import { PopupOptions } from 'main.popup';\n\nimport { Popup } from 'ui.vue3.components.popup';\nimport { getMessage } from '../helpers/helpers';\n\nimport './style.css';\n\n// @vue/component\nexport const VotePopup = {\n\tname: 'VotePopup',\n\tcomponents: { Popup },\n\temits: ['confirm', 'cancel'],\n\tcomputed:\n\t{\n\t\tgetMessage: () => getMessage,\n\t\tpopupOptions(): PopupOptions\n\t\t{\n\t\t\treturn {\n\t\t\t\twidth: 374,\n\t\t\t\tclassName: 'vote-display__popup',\n\t\t\t};\n\t\t},\n\t},\n\ttemplate: `\n\t\t<Popup\n\t\t\t:options=\"popupOptions\" @close=\"$emit('cancel')\"\n\t\t\tid=\"vote-display-popup\"\n\t\t>\n\t\t\t<div class=\"vote-display__popup-content\">\n\t\t\t\t<div class=\"vote-display__popup-title\">\n\t\t\t\t\t{{ getMessage('VOTE_POPUP_TITLE') }}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"vote-display__popup-text\">\n\t\t\t\t\t{{ getMessage('VOTE_POPUP_TEXT') }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"vote-display__popup-footer\">\n\t\t\t\t<button class=\"vote-display__popup-btn --complete\" @click=\"$emit('confirm')\">\n\t\t\t\t\t{{ getMessage('VOTE_POPUP_BTN_COMPLETE') }}\n\t\t\t\t</button>\n\t\t\t\t<button class=\"vote-display__popup-btn --cancel\" @click=\"$emit('cancel')\">\n\t\t\t\t\t{{ getMessage('VOTE_POPUP_BTN_CANCEL') }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</Popup>\n\t`,\n};\n","import { Type, type JsonObject } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { MessageMenuManager } from 'im.v2.lib.menu';\nimport { MessageComponent } from 'im.v2.const';\nimport type { BaseEvent } from 'main.core.events';\n\nimport { VoteApplication } from 'vote.application';\nimport { ImVoteService } from 'vote.provider.service';\nimport { Loader } from 'vote.component.loader';\nimport { VoteMessageMenu } from './classes/message-menu/message-menu';\nimport type { QuestionCollectionType, VoteCollectionType, VoteElementState } from 'vote.store.vote';\n\nimport { ButtonArea } from './components/button-area/button-area';\nimport { VotePopup } from './components/popup/popup';\nimport { getMessage } from './components/helpers/helpers';\nimport { VoteQuestion } from './components/vote-question/vote-question';\n\nimport './vote.css';\n\nimport type { VoteInitQuestion, FormattedQuestionType, AnswersSelectedEvent } from './type';\n\nconst ANONYMOUS_VOTE = 2;\nconst ALLOW_REVOKING = 1;\n\n// @vue/component\nexport const VoteDisplay = {\n\tname: 'VoteDisplay',\n\tcomponents:\n\t{\n\t\tVoteQuestion,\n\t\tButtonArea,\n\t\tLoader,\n\t\tVotePopup,\n\t},\n\tprops:\n\t{\n\t\tvoteItem: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tentityId: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tentityType: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tcontextId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: ['vote', 'revokeVote', 'copyLink', 'completeVote'],\n\tdata(): JsonObject\n\t{\n\t\treturn {\n\t\t\tisShowPopup: false,\n\t\t\tquestionAnswers: {},\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tgetMessage: () => getMessage,\n\t\tfirstQuestion(): Record<string, VoteInitQuestion>\n\t\t{\n\t\t\tconst firstKey = Object.keys(this.voteItem.data?.questions)[0];\n\n\t\t\treturn this.voteItem.data?.questions[firstKey];\n\t\t},\n\t\tquestionCollection(): QuestionCollectionType\n\t\t{\n\t\t\treturn this.app.getStore().getters['vote/getQuestionCollection'];\n\t\t},\n\t\tvoteCollection(): VoteCollectionType\n\t\t{\n\t\t\treturn this.app.getStore().getters['vote/getVoteCollection'];\n\t\t},\n\t\tcurrentVote(): VoteElementState\n\t\t{\n\t\t\treturn this.voteCollection[this.voteItem.id];\n\t\t},\n\t\tformattedQuestion(): FormattedQuestionType\n\t\t{\n\t\t\tconst storeQuestion = this.questionCollection[this.firstQuestion.id] || {};\n\n\t\t\treturn {\n\t\t\t\t...this.firstQuestion,\n\t\t\t\ttotalCounter: storeQuestion.totalCounter,\n\t\t\t\tisMultiple: storeQuestion.isMultiple,\n\t\t\t};\n\t\t},\n\t\tisUserVoted(): boolean\n\t\t{\n\t\t\tif (this.isLoading)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.currentVote.isVoted;\n\t\t},\n\t\tcanEdit(): boolean\n\t\t{\n\t\t\tif (this.isLoading)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.currentVote.canEdit;\n\t\t},\n\t\tisAnonymous(): boolean\n\t\t{\n\t\t\treturn this.voteItem.data?.anonymity === ANONYMOUS_VOTE;\n\t\t},\n\t\tisCompleted(): boolean\n\t\t{\n\t\t\tif (this.isLoading)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.currentVote.isCompleted;\n\t\t},\n\t\thasSelectedAnswers(): boolean\n\t\t{\n\t\t\treturn Type.isArrayFilled(this.questionAnswers[this.firstQuestion.id]);\n\t\t},\n\t\tvoteTypeText(): string\n\t\t{\n\t\t\treturn this.isAnonymous ? getMessage('VOTE_ANONYMOUS') : getMessage('VOTE_PUBLIC');\n\t\t},\n\t\tisLoading(): boolean\n\t\t{\n\t\t\treturn this.currentVote?.isLoading ?? true;\n\t\t},\n\t\tshowRevokeNotice(): boolean\n\t\t{\n\t\t\tif (!this.isLoading && this.currentVote.isCompleted)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.voteItem.data?.options !== ALLOW_REVOKING;\n\t\t},\n\t},\n\tcreated(): void\n\t{\n\t\tthis.app = VoteApplication.init();\n\t\tthis.voteService = ImVoteService.init();\n\n\t\tMessageMenuManager.getInstance().registerMenuByMessageType(MessageComponent.voteMessage, VoteMessageMenu);\n\t\tthis.subscribeOnEvents();\n\t},\n\tmounted(): void\n\t{\n\t\tif (!this.currentVote || this.currentVote?.isLoading !== false)\n\t\t{\n\t\t\tEventEmitter.emit('vote-message-batch', { messageId: this.entityId });\n\t\t}\n\t},\n\tbeforeUnmount(): void\n\t{\n\t\tthis.unsubscribeFromEvents();\n\t},\n\tmethods:\n\t{\n\t\tsubscribeOnEvents(): void\n\t\t{\n\t\t\tEventEmitter.subscribe('vote:message-menu:complete-vote', this.isShowCompletePopup);\n\t\t\tEventEmitter.subscribe('vote:message-menu:revoke-vote', this.recallVote);\n\t\t\tEventEmitter.subscribe('vote:message-menu:results-vote', this.showResults);\n\t\t},\n\t\tunsubscribeFromEvents(): void\n\t\t{\n\t\t\tEventEmitter.unsubscribe('vote:message-menu:complete-vote', this.isShowCompletePopup);\n\t\t\tEventEmitter.unsubscribe('vote:message-menu:revoke-vote', this.recallVote);\n\t\t\tEventEmitter.unsubscribe('vote:message-menu:results-vote', this.showResults);\n\t\t},\n\t\tasync answersSelected(event: AnswersSelectedEvent): void\n\t\t{\n\t\t\tthis.questionAnswers[event.questionId] = event.answerIds;\n\t\t\tconst currentQuestion = this.questionCollection[event.questionId];\n\t\t\tif (currentQuestion.isMultiple || this.isUserVoted)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvoid this.submitVote();\n\t\t},\n\t\tasync submitVote(): Promise<void>\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.app.getStore().dispatch('vote/setUserVoted', {\n\t\t\t\t\tvoteId: this.currentVote.id,\n\t\t\t\t});\n\t\t\t\tawait this.voteService.sendVote(this.questionAnswers, this.voteItem.id, this.entityId);\n\t\t\t\tthis.$emit('vote');\n\t\t\t\tthis.questionAnswers = {};\n\t\t\t}\n\t\t\tcatch (e)\n\t\t\t{\n\t\t\t\tconsole.error('Vote: submit vote error', e);\n\t\t\t\tthis.app.getStore().dispatch('vote/resetUserVoted', {\n\t\t\t\t\tvoteId: this.currentVote.id,\n\t\t\t\t});\n\t\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\t\tcontent: getMessage('VOTE_NOTICE_ERROR_MESSAGE_SUBMIT'),\n\t\t\t\t\tautoHideDelay: 4000,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tonClickVoteButton(): void\n\t\t{\n\t\t\tif (Type.isArrayFilled(this.questionAnswers[this.formattedQuestion.id]))\n\t\t\t{\n\t\t\t\tthis.submitVote();\n\t\t\t}\n\t\t},\n\t\tasync showResults(event: BaseEvent): void\n\t\t{\n\t\t\tif (event && event.data?.entityId !== this.entityId)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tBX.SidePanel.Instance.open(this.currentVote.resultUrl, {\n\t\t\t\tcacheable: false,\n\t\t\t\twidth: 480,\n\t\t\t\tcopyLinkLabel: true,\n\t\t\t\tevents: {\n\t\t\t\t\tonOpen: ({ slider }: BX.SidePanel.Event) => {\n\t\t\t\t\t\tconst copyLink = slider.getCopyLinkLabel();\n\t\t\t\t\t\tcopyLink.setOnclick(() => {\n\t\t\t\t\t\t\tthis.$emit('copyLink');\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tasync completeVote(): void\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.app.getStore().dispatch('vote/setVoteCompleted', {\n\t\t\t\t\tvoteId: this.currentVote.id,\n\t\t\t\t});\n\t\t\t\tawait this.voteService.completeVote(this.entityId);\n\t\t\t\tthis.$emit('completeVote');\n\t\t\t}\n\t\t\tcatch (e)\n\t\t\t{\n\t\t\t\tconsole.error('Vote: complete vote error', e);\n\n\t\t\t\tthis.app.getStore().dispatch('vote/resetVoteCompleted', {\n\t\t\t\t\tvoteId: this.currentVote.id,\n\t\t\t\t});\n\n\t\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\t\tcontent: getMessage('VOTE_NOTICE_ERROR_MESSAGE_COMPLETE'),\n\t\t\t\t\tautoHideDelay: 4000,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tisShowCompletePopup(event: BaseEvent): void\n\t\t{\n\t\t\tif (event.data?.entityId !== this.entityId)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.isShowPopup = true;\n\t\t},\n\t\tonCompletePopupConfirm(): void\n\t\t{\n\t\t\tthis.isShowPopup = false;\n\t\t\tthis.completeVote();\n\t\t},\n\t\tonCompletePopupCancel(): void\n\t\t{\n\t\t\tthis.isShowPopup = false;\n\t\t},\n\t\tasync recallVote(event: BaseEvent): Promise<void>\n\t\t{\n\t\t\tif (event.data?.entityId !== this.entityId)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst previousSelectedAnswers = this.app.getStore().getters['vote/getCurrentUserVotes'][this.firstQuestion.id];\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.app.getStore().dispatch('vote/clearVotes', {\n\t\t\t\t\tquestionId: this.firstQuestion.id,\n\t\t\t\t\tvoteId: this.currentVote.id,\n\t\t\t\t});\n\t\t\t\tthis.app.getStore().dispatch('vote/resetUserVoted', {\n\t\t\t\t\tvoteId: this.currentVote.id,\n\t\t\t\t});\n\t\t\t\tawait this.voteService.revokeVote(this.entityId, this.currentVote.id);\n\t\t\t\tthis.$emit('revokeVote');\n\t\t\t}\n\t\t\tcatch (e)\n\t\t\t{\n\t\t\t\tconsole.error('Vote: recall vote error', e);\n\t\t\t\tthis.app.getStore().dispatch('vote/updateCurrentUserVotes', {\n\t\t\t\t\tquestionId: this.firstQuestion.id,\n\t\t\t\t\tanswerIds: previousSelectedAnswers,\n\t\t\t\t});\n\t\t\t\tthis.app.getStore().dispatch('vote/setUserVoted', {\n\t\t\t\t\tvoteId: this.currentVote.id,\n\t\t\t\t});\n\t\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\t\tcontent: getMessage('VOTE_NOTICE_ERROR_MESSAGE_REVOKE'),\n\t\t\t\t\tautoHideDelay: 4000,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t},\n\ttemplate: `\n\t\t<form class=\"vote-display\">\n\t\t\t<div class=\"vote-display-inner\">\n\t\t\t\t<VoteQuestion\n\t\t\t\t\t:key=\"formattedQuestion.id\"\n\t\t\t\t\t:contextId=\"contextId\"\n\t\t\t\t\t:isLoading=\"isLoading\"\n\t\t\t\t\t:question=\"formattedQuestion\"\n\t\t\t\t\t:isUserVoted=\"isUserVoted\"\n\t\t\t\t\t:isCompleted=\"isCompleted\"\n\t\t\t\t\t:answers=\"formattedQuestion.answers\"\n\t\t\t\t\t@answersSelected=\"answersSelected\"\n\t\t\t\t/>\n\t\t\t\t<div class=\"vote-display-bottom-container\">\n\t\t\t\t\t<div v-if=\"isLoading\" class=\"vote-display__loader\">\n\t\t\t\t\t\t<Loader />\n\t\t\t\t\t</div>\n\t\t\t\t\t<ButtonArea v-else\n\t\t\t\t\t\t:question=\"formattedQuestion\"\n\t\t\t\t\t\t:isLoading=\"isLoading\"\n\t\t\t\t\t\t:isUserVoted=\"isUserVoted\"\n\t\t\t\t\t\t:isCompleted=\"isCompleted\"\n\t\t\t\t\t\t:isBtnActive=\"hasSelectedAnswers\"\n\t\t\t\t\t\t@onClickVoteButton=\"onClickVoteButton\"\n\t\t\t\t\t\t@showResults=\"showResults\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"vote__notice\">\n\t\t\t\t\t\t<span class=\"vote__notice-text\">{{ voteTypeText }}</span>\n\t\t\t\t\t\t<span v-if=\"showRevokeNotice\" class=\"vote__notice-text\">{{ getMessage('VOTE_NOTICE_REVOKE_IS_NOT_AVAILABLE') }}</span>\n\t\t\t\t\t\t<span v-if=\"isCompleted\" class=\"vote__notice-text\">{{ getMessage('VOTE_NOTICE_COMPLETED') }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</form>\n\t\t<VotePopup\n\t\t\tv-if=\"isShowPopup\"\n\t\t\t@confirm=\"onCompletePopupConfirm\"\n\t\t\t@cancel=\"onCompletePopupCancel\"\n\t\t/>\n\t`,\n};\n"],"names":["VoteMessageMenu","MessageMenu","constructor","VoteApplication","getInstance","getMenuItems","getReplyItem","getShowResultsItem","getRevokeItem","getCopyLinkItem","getPinItem","getFavoriteItem","getCompleteItem","getDeleteItem","copyLinkItem","onclick","VoteAnalytics","copyLink","context","dialogId","id","text","Loc","getMessage","EventEmitter","emit","entityId","close","voteCollection","getStore","getters","componentParams","vote","isCompleted","canEdit","question","totalCounter","canRevoke","isVoted","questions","data","firstQuestionId","Object","keys","questionCollection","phraseCode","getMessageWithCount","counter","getMessagePlural","VoteQuestion","name","directives","hint","props","contextId","type","String","required","isLoading","Boolean","default","answers","isUserVoted","emits","selectedRadioBtn","selectedCheckboxes","computed","answersCollection","app","formattedAnswers","forEach","key","index","answer","storeAnswer","percent","isMultiple","Math","round","roundPercentages","getCurrentUserVotes","canShowResults","answerVotes","values","map","totalVotes","reduce","sum","count","calculatedPercents","roundedPercents","floor","remainder","p","fractionalParts","fraction","sort","a","b","i","watch","newValue","voted","created","init","methods","radioChanged","emitAnswersSelectedWithValue","checkboxChanged","answerIds","eventData","questionId","$emit","hasCurrentUserVote","answerId","includes","getUniqueAnswerId","showHintCounter","countText","popupOptions","position","targetContainer","document","body","offsetLeft","offsetTop","autoHide","angle","template","ButtonType","freeze","disable","showResults","ButtonArea","components","isBtnActive","isMultipleQuestion","buttonType","isBtnAvailableToVote","buttonClass","summaryText","buttonText","handleButtonClick","VotePopup","Popup","width","className","ANONYMOUS_VOTE","ALLOW_REVOKING","VoteDisplay","Loader","voteItem","Number","entityType","isShowPopup","questionAnswers","firstQuestion","firstKey","currentVote","formattedQuestion","storeQuestion","isAnonymous","anonymity","hasSelectedAnswers","Type","isArrayFilled","voteTypeText","showRevokeNotice","options","voteService","ImVoteService","MessageMenuManager","registerMenuByMessageType","MessageComponent","voteMessage","subscribeOnEvents","mounted","messageId","beforeUnmount","unsubscribeFromEvents","subscribe","isShowCompletePopup","recallVote","unsubscribe","answersSelected","event","currentQuestion","submitVote","dispatch","voteId","sendVote","e","console","error","BX","UI","Notification","Center","notify","content","autoHideDelay","onClickVoteButton","SidePanel","Instance","open","resultUrl","cacheable","copyLinkLabel","events","onOpen","slider","getCopyLinkLabel","setOnclick","completeVote","onCompletePopupConfirm","onCompletePopupCancel","previousSelectedAnswers","revokeVote"],"mappings":"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"}