// SPDX-FileCopyrightText: 2024 John Livingston // // SPDX-License-Identifier: AGPL-3.0-only // FIXME: @stylistic/indent is buggy with strings literrals. /* eslint-disable @stylistic/indent */ import { html } from 'lit' import { repeat } from 'lit/directives/repeat.js' import { __ } from 'i18n' function _tplPollInstructions (el, currentPoll, canVote) { if (currentPoll.over || !canVote) { return html`` } // eslint-disable-next-line no-undef const i18nPollInstructions = __(LOC_poll_vote_instructions) return html`

${i18nPollInstructions}

` } function _tplPollEnd (el, currentPoll) { if (!currentPoll.endDate) { return html`` } // eslint-disable-next-line no-undef const i18nPollEnd = __(LOC_poll_end) return html`

${i18nPollEnd} ${currentPoll.endDate.toLocaleString()}

` } function _tplChoice (el, currentPoll, choice, canVote) { // eslint-disable-next-line no-undef const i18nChoiceN = '' + choice.choice + ':' const votes = choice.votes const totalVotes = currentPoll.votes const percent = totalVotes ? (100 * votes / totalVotes).toFixed(2) : '0.00' return html` ${ currentPoll.over || !canVote ? html`${i18nChoiceN}` : html` ` } ${choice.label}

${votes}/${totalVotes} (${percent}%)

` } export function tplPoll (el, currentPoll, canVote) { if (!currentPoll) { return html`` } return html`

${currentPoll.over ? html`` : '' } ${el.collapsed ? html` ` : html` ` } ${currentPoll.question}

${ el.collapsed ? '' : html` ${repeat(currentPoll.choices ?? [], (c) => c.choice, (c) => _tplChoice(el, currentPoll, c, canVote))}
${_tplPollInstructions(el, currentPoll, canVote)} ${_tplPollEnd(el, currentPoll)} ` }
` }