@micheeeeel/yinyangapp 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +1 -1
- package/dist/types/adapters/yasuniCauseAdapter.d.ts +3 -0
- package/dist/types/components/controller/actions/ActionProjectionService.d.ts +4 -0
- package/dist/types/components/view/ViewInitializer.d.ts +11 -9
- package/dist/types/components/view/YinYangDrawer.d.ts +7 -10
- package/dist/types/interfaces/ICauseModel.d.ts +3 -1
- package/dist/types/utils/causeMetrics.d.ts +32 -0
- package/dist/types/utils/facetWeightLabel.d.ts +11 -0
- package/package.json +1 -1
|
@@ -6,6 +6,9 @@ import { type ContactProfileData } from "../data/contacts";
|
|
|
6
6
|
* Cause attendu par mapCauseToInternalModel.
|
|
7
7
|
* Les scores initiaux sont neutres (0.5 = 50 % de tension), les poids valent 1
|
|
8
8
|
* par satellite tant qu'aucune valeur n'est renseignée dans les données.
|
|
9
|
+
* Poids d'une facette (taille de son arc) : C_f, moyenne des poids de TOUS
|
|
10
|
+
* ses satellites, catégories confondues, zéros inclus (`meanWeight`) — même
|
|
11
|
+
* règle pour une cause et pour un contact (POC-05A4).
|
|
9
12
|
*/
|
|
10
13
|
export declare function composantesToCause(composantes: Composante[], id?: string, name?: string): Cause;
|
|
11
14
|
/** La `Cause` du Yasuní, fraîchement construite à chaque appel (l'hôte peut
|
|
@@ -98,5 +98,9 @@ export declare function projectGhostStateForComponent(params: {
|
|
|
98
98
|
sourceCuttingIndex: number;
|
|
99
99
|
actionDelta: number;
|
|
100
100
|
}): GhostProjectionResult | null;
|
|
101
|
+
/** Tension projetée de la facette : même règle que sa tension courante
|
|
102
|
+
* (`facetTensionFromOdds`, moyenne pondérée sur tous ses satellites), sur
|
|
103
|
+
* les tensions projetées de chaque satellite. */
|
|
104
|
+
export declare function projectedComponentTension(component: YinYangInternalModel["components"][number], projectedCuttingStatesByOddId: ReadonlyMap<string, readonly ProjectedCuttingState[]>): number;
|
|
101
105
|
export declare function getOriginalComponentTension(component: YinYangInternalModel["components"][number] | undefined): number | null;
|
|
102
106
|
export declare function getOriginalOddTension(component: YinYangInternalModel["components"][number] | undefined, oddId: string): number | null;
|
|
@@ -305,20 +305,16 @@ export declare class ViewInitializer {
|
|
|
305
305
|
*/
|
|
306
306
|
getAverageTension(): number;
|
|
307
307
|
getAverageState(): number;
|
|
308
|
-
/** Poids
|
|
309
|
-
* (même
|
|
310
|
-
*
|
|
311
|
-
* des arcs qui l'entourent). */
|
|
308
|
+
/** Poids C_f de la facette courante : moyenne des poids de tous ses
|
|
309
|
+
* satellites (`meanWeight`, même règle que `perimeterWeight`, qui fixe la
|
|
310
|
+
* taille de son arc de bordure). */
|
|
312
311
|
getFacetteWeight(): number;
|
|
313
|
-
/** Plafond du poids
|
|
314
|
-
*
|
|
315
|
-
* buildOddArcLabelLines dans YinYangDrawer). */
|
|
312
|
+
/** Plafond du poids C_f : WEIGHT_MAX, quel que soit le nombre de
|
|
313
|
+
* satellites. */
|
|
316
314
|
getFacetteWeightMax(): number;
|
|
317
315
|
/** getFacetteWeight pour une facette quelconque (poids de chaque arc de
|
|
318
316
|
* bordure quand "Afficher libellés" est actif). */
|
|
319
317
|
getComponentWeight(component: YinYangComponentNode | null | undefined): number;
|
|
320
|
-
/** getFacetteWeightMax pour une facette quelconque. */
|
|
321
|
-
getComponentWeightMax(component: YinYangComponentNode | null | undefined): number;
|
|
322
318
|
getCurrentComponentIndex(): number;
|
|
323
319
|
getCurrentComponentName(): string;
|
|
324
320
|
getCurrentComponentOrientation(): "yin" | "yang";
|
|
@@ -414,6 +410,10 @@ export declare class ViewInitializer {
|
|
|
414
410
|
private getAnimationCurrentState;
|
|
415
411
|
private getComponentAnimationState;
|
|
416
412
|
private buildOddCategories;
|
|
413
|
+
/** Part d'une catégorie DANS sa facette (angle de son arc au cercle
|
|
414
|
+
* central) : somme des poids de ses satellites — chaque satellite compte
|
|
415
|
+
* une fois, comme dans Q_f. Sa pastille, elle, affiche la moyenne
|
|
416
|
+
* (`facetWeightLabel`). */
|
|
417
417
|
private getOddWeight;
|
|
418
418
|
private buildCategoriesFromComponent;
|
|
419
419
|
/**
|
|
@@ -483,6 +483,8 @@ export declare class ViewInitializer {
|
|
|
483
483
|
private buildOddSpikes;
|
|
484
484
|
private buildComponentSpikes;
|
|
485
485
|
private buildSpike;
|
|
486
|
+
/** Tension de la facette : moyenne pondérée sur tous ses satellites,
|
|
487
|
+
* repli sur leur moyenne simple (`facetTensionFromOdds`, POC-05A4). */
|
|
486
488
|
private calculateAverageTension;
|
|
487
489
|
private getCurrentComponent;
|
|
488
490
|
handleSparkAngleUpdate(currentAngle: number, previousAngle: number | null): void;
|
|
@@ -304,11 +304,11 @@ export declare class YinYangDrawer {
|
|
|
304
304
|
*/
|
|
305
305
|
private renderFacetteStateLabel;
|
|
306
306
|
/**
|
|
307
|
-
* Affiche le poids d'une facette (
|
|
307
|
+
* Affiche le poids d'une facette (« 6,8 ») DANS son arc de bordure
|
|
308
308
|
* (segment de BorderDrawer), et non dans un lobe : ce poids est celui qui
|
|
309
|
-
* dimensionne l'arc, il se lit donc sur lui.
|
|
310
|
-
*
|
|
311
|
-
*
|
|
309
|
+
* dimensionne l'arc, il se lit donc sur lui. C'est C_f, la moyenne des
|
|
310
|
+
* poids de tous ses satellites (`facetWeightLabel`), sur 10 avec le
|
|
311
|
+
* suffixe.
|
|
312
312
|
*
|
|
313
313
|
* Par défaut seule la facette active porte son poids (et seulement quand
|
|
314
314
|
* ses libellés sont visibles, voir shouldShowFacetteLabels) ; avec
|
|
@@ -475,12 +475,9 @@ export declare class YinYangDrawer {
|
|
|
475
475
|
* (renderChildStateLabel/renderChildWeightLabel), donc le cercle central
|
|
476
476
|
* et son cortège se lisent enfin de la même façon.
|
|
477
477
|
*
|
|
478
|
-
* Le
|
|
479
|
-
*
|
|
480
|
-
*
|
|
481
|
-
* taille de l'arc sous lui), et son plafond est WEIGHT_MAX × nombre de
|
|
482
|
-
* satellites. Il est affiché tel quel plutôt que ramené à une échelle /10
|
|
483
|
-
* qui n'existe qu'au niveau satellite.
|
|
478
|
+
* Le poids d'un ODD est la moyenne des poids de ses seuls satellites
|
|
479
|
+
* (`facetWeightLabel`, « 6,8 »), sur WEIGHT_MAX avec le suffixe — même
|
|
480
|
+
* lecture que la pastille de sa facette (POC-05A4).
|
|
484
481
|
*
|
|
485
482
|
* En mode non compact, le nom court de l'ODD reste affiché au-dessus des
|
|
486
483
|
* deux métriques : c'est une information que le numéro ne portait pas.
|
|
@@ -23,7 +23,9 @@ export interface CauseComponent {
|
|
|
23
23
|
description?: string;
|
|
24
24
|
orientation: YinYangOrientation;
|
|
25
25
|
odds: CauseOdd[];
|
|
26
|
-
/**
|
|
26
|
+
/** Poids de la facette (taille relative de son arc) : C_f, moyenne des
|
|
27
|
+
* poids de TOUS ses satellites, zéros inclus, de 0 à 10 — même règle pour
|
|
28
|
+
* une cause et pour un contact (`meanWeight`, POC-05A4). */
|
|
27
29
|
perimeterWeight: number;
|
|
28
30
|
}
|
|
29
31
|
export interface Cause {
|
|
@@ -5,9 +5,40 @@ export declare function clampScore(value: number): number;
|
|
|
5
5
|
* Canonical domain metric in [0, 1]. Weighted by each satellite's `weight`
|
|
6
6
|
* when provided, so a heavier satellite pulls the tension further toward
|
|
7
7
|
* its own score; falls back to a simple average otherwise.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ FACETTES D'UN CONTACT : cette règle est reproduite à l'identique par
|
|
10
|
+
* yvy-backend (`src/contacts/contact-facets.ts`), qui fait autorité pour le
|
|
11
|
+
* jeu. Deux implémentations à maintenir identiques : toute évolution met à
|
|
12
|
+
* jour les deux, ainsi que le fichier de cas commun
|
|
13
|
+
* `src/data/contacts/contact-facets.reference.json` (POC-05A2).
|
|
8
14
|
*/
|
|
9
15
|
export declare function tensionFromCuttings(cuttingScores: number[], cuttingWeights?: number[]): number;
|
|
10
16
|
export declare const oddTensionFromCuttings: typeof tensionFromCuttings;
|
|
17
|
+
/** Satellites d'une catégorie (ODD) d'une facette : tensions et poids. */
|
|
18
|
+
interface FacetOddCuttings {
|
|
19
|
+
cuttingScores: readonly number[];
|
|
20
|
+
cuttingWeights: readonly number[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Tension d'une FACETTE (cause ou contact, POC-05A4) : `tensionFromCuttings`
|
|
24
|
+
* sur TOUS ses satellites, catégories confondues — moyenne pondérée par les
|
|
25
|
+
* poids, ou moyenne simple de la facette si tous ses poids sont nuls (pas de
|
|
26
|
+
* repli par catégorie). Q_f = (1 − T) × 100. `cuttingTensions` remplace les
|
|
27
|
+
* tensions de la catégorie d'indice donné (projection d'une action) ; une catégorie dont
|
|
28
|
+
* les poids ne sont pas alignés sur les scores compte ses satellites à 1.
|
|
29
|
+
* Facette sans satellite : 0,5.
|
|
30
|
+
*/
|
|
31
|
+
export declare function facetTensionFromOdds(odds: readonly FacetOddCuttings[], cuttingTensions?: (oddIndex: number) => readonly number[] | undefined): number;
|
|
32
|
+
/**
|
|
33
|
+
* POIDS C_f d'une facette — ou d'une catégorie, pour sa pastille — (causes
|
|
34
|
+
* et contacts, POC-05A4) : moyenne arithmétique des poids (bornés à 0) de
|
|
35
|
+
* TOUS ses satellites, zéros inclus, de 0 à 10, indépendante de leur nombre.
|
|
36
|
+
* Fixe la taille des arcs de facette et la valeur des pastilles. Facettes
|
|
37
|
+
* d'un contact : reproduite à l'identique par yvy-backend
|
|
38
|
+
* (`contactFacetWeights`), cas communs dans
|
|
39
|
+
* `src/data/contacts/contact-facets.reference.json`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function meanWeight(weights: readonly number[]): number;
|
|
11
42
|
export declare function stateFromTension(tension: number): number;
|
|
12
43
|
/** Bornes du poids d'un satellite (importance dans sa facette). Un satellite
|
|
13
44
|
* vaut 1 par défaut ; les actions le font varier par pas entiers, mais ne
|
|
@@ -24,3 +55,4 @@ export declare function clampWeight(value: number): number;
|
|
|
24
55
|
* signe — ex: +1 sur un satellite déjà à WEIGHT_MAX ne change rien.
|
|
25
56
|
*/
|
|
26
57
|
export declare function effectiveWeightDelta(currentWeight: number, delta: number): number;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Libellé de la pastille de poids d'une facette ou d'une catégorie (ODD),
|
|
3
|
+
* pour une cause comme pour un contact (POC-05A4) : C_f, moyenne des poids
|
|
4
|
+
* de tous ses satellites (`meanWeight`), arrondie à un chiffre après la
|
|
5
|
+
* virgule, avec une virgule décimale — « 7,2 ». `max` (WEIGHT_MAX, 10) ne
|
|
6
|
+
* s'affiche qu'avec le suffixe (`facetteLabelSuffixVisible`).
|
|
7
|
+
*/
|
|
8
|
+
export declare function facetWeightLabel(weights: readonly number[]): {
|
|
9
|
+
value: string;
|
|
10
|
+
max: number;
|
|
11
|
+
};
|
package/package.json
CHANGED