@micheeeeel/yinyangapp 2.0.5 → 2.1.0

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.
@@ -0,0 +1,12 @@
1
+ import type { Composante } from "../data/yasuni_cause";
2
+ import type { Cause } from "../interfaces/ICauseModel";
3
+ /**
4
+ * Adapte le catalogue Composante[] (format yasuni_cause.ts) vers le format
5
+ * Cause attendu par validateCauseGraph et mapCauseToInternalModel.
6
+ * Les scores initiaux sont neutres (0.5 = 50 % de tension), les poids valent 1
7
+ * par satellite tant qu'aucune valeur n'est renseignée dans les données.
8
+ */
9
+ export declare function composantesToCause(composantes: Composante[], id?: string, name?: string): Cause;
10
+ /** La `Cause` du Yasuní, fraîchement construite à chaque appel (l'hôte peut
11
+ * la muter sans effet de bord). `id` par défaut : "yasuni". */
12
+ export declare function getYasuniCause(id?: string): Cause;
@@ -0,0 +1,32 @@
1
+ import type { Cause } from "./interfaces/ICauseModel";
2
+ /** Intervalle inclusif [min, max]. */
3
+ export type RandomRange = [min: number, max: number];
4
+ export interface RandomCauseOptions {
5
+ /** Identifiant de la Cause produite (ex. id de la mission). Défaut : dérivé
6
+ * de la graine, sinon "random-<n>". */
7
+ id?: string;
8
+ name?: string;
9
+ /** Graine : même graine ⇒ même Cause. Sans graine, tirage Math.random. */
10
+ seed?: string | number;
11
+ /** Nombre de composantes (arcs de facette). Défaut : [2, 7]. */
12
+ components?: RandomRange;
13
+ /** ODD par composante, tirés sans remise parmi les 17 (jamais deux fois le
14
+ * même ODD dans une Cause, donc jamais deux fois la même couleur).
15
+ * Défaut : [1, 3] — plafonné par les ODD restants. */
16
+ oddsPerComponent?: RandomRange;
17
+ /** Facettes (satellites) par ODD. Défaut : [1, 4]. */
18
+ cuttingsPerOdd?: RandomRange;
19
+ /** Score de chaque facette. Défaut : [0.15, 0.85]. */
20
+ score?: RandomRange;
21
+ /** Poids entier de chaque facette. Défaut : [1, 3]. */
22
+ weight?: RandomRange;
23
+ }
24
+ /**
25
+ * Construit une `Cause` aléatoire : 2 à 7 composantes (orientations yin/yang
26
+ * alternées), chacune avec des ODD distincts tirés parmi les 17 — la couleur
27
+ * de chaque arc est donc celle de l'ODD officiel — et un nombre aléatoire de
28
+ * facettes par ODD (scores et poids aléatoires).
29
+ *
30
+ * À passer telle quelle à `createYinYangFilmSvg`, `mountYinYang`, etc.
31
+ */
32
+ export declare function createRandomCause(options?: RandomCauseOptions): Cause;
@@ -0,0 +1 @@
1
+ export {};
@@ -46,3 +46,6 @@ export declare function createYinYangSvg(config: YinYangSvgConfig): SVGSVGElemen
46
46
  export declare function createYinYangSvgs(configs: YinYangSvgConfig[]): (SVGSVGElement | null)[];
47
47
  export { createYinYangFilmSvg, createYinYangFilmSvgAsync } from "./api-film";
48
48
  export type { YinYangFilmConfig, YinYangFilmAsyncOptions } from "./api-film";
49
+ export { createRandomCause } from "./api-random";
50
+ export type { RandomCauseOptions, RandomRange } from "./api-random";
51
+ export { getYasuniCause } from "./adapters/yasuniCauseAdapter";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micheeeeel/yinyangapp",
3
- "version": "2.0.5",
3
+ "version": "2.1.0",
4
4
  "description": "A program to visualize human activity balance to reach Sustainable Development Objectives",
5
5
  "main": "dist/bundle.js",
6
6
  "types": "dist/types/main.d.ts",