Files
decision/web/src/lib/labels.ts
T
YvvandClaude Opus 5.5 db64405e1e v3 : inertie à cinq crans — interface (L10)
L'inertie se lit en crans, « 3 / 5 · moyenne » (très basse, basse,
moyenne, haute, très haute ; fr, en, es). Le sélecteur offre les cinq
crans, l'actuel marqué ; le changement se vote au cran de l'article.
L'article dit le passé de son inertie (vote ou réglage de départ).

« Réglages de la formule », en lecture seule, depuis l'en-tête du doc et
depuis le vote d'un article (onglet « Réglages » du panneau, dans
l'URL) : W et sa source, C, B, la participation habituelle (médiane ou
référence, sur combien de propositions, quand), et les cinq crans : M,
G, part exigée, voix pour exigées à la participation de la version
regardée (ou habituelle depuis l'en-tête).

Composants à part (InertiaPicker, FormulaSettings), branchés par
quelques lignes dans VoteView. La formule dépliée ne fait plus déborder
le panneau. e2e : C4 (cran de l'article dans la formule), C20 (réglages
et cinq crans), M1 (réglages lisibles sur mobile).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:42:11 +01:00

29 lines
1.0 KiB
TypeScript

import { t } from './i18n/index.svelte';
import type { Inertia, Proposal, Unit } from './types';
/** « 3 / 5 · moyenne ». */
export function inertiaLevel(k: Inertia): string {
return t('inertia.level', { k, name: t(`inertia.name.${k}`) });
}
/** « inertie 3 / 5 · moyenne ». */
export function inertiaBadge(k: Inertia): string {
return t('inertia.badge', { level: inertiaLevel(k) });
}
/** What a proposal is, in words, whatever its kind. */
export function titleOf(p: Proposal, unit: Unit | undefined): string {
if (p.kind === 'inertia' && p.inertiaTarget) {
return t('deep.inertia', { level: inertiaLevel(p.inertiaTarget) });
}
if (p.kind === 'remove') return t('deep.removal', { title: unit?.inForce?.title ?? p.title });
return p.title;
}
/** Its relation to the text in force. */
export function relationOf(p: Proposal, unit: Unit | undefined): string {
if (p.kind !== 'text') return '';
if (unit?.inForce && unit.inForce.id !== p.id) return t('deep.rival', { title: unit.inForce.title });
return '';
}