@micheeeeel/yinyangapp 3.0.1 → 3.1.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.css +1 -0
- package/dist/bundle.js +1 -2
- package/dist/types/adapters/yasuniCauseAdapter.d.ts +13 -2
- package/dist/types/adapters/yinYangAdapter.d.ts +7 -0
- package/dist/types/animations/AnimationsMngr.d.ts +69 -15
- package/dist/types/animations/FrameScheduler.d.ts +99 -0
- package/dist/types/animations/rotationMotion.d.ts +43 -0
- package/dist/types/api.d.ts +31 -3
- package/dist/types/benchmark/runner.d.ts +20 -0
- package/dist/types/benchmark/scenarios.d.ts +55 -6
- package/dist/types/components/controller/YinYangController.d.ts +109 -14
- package/dist/types/components/controller/action-stack/ActionStackController.d.ts +16 -1
- package/dist/types/components/controller/action-stack/ActionStackDragHandler.d.ts +4 -0
- package/dist/types/components/controller/action-stack/ActionStackManager.d.ts +13 -2
- package/dist/types/components/controller/action-stack/ActionStackState.d.ts +8 -5
- package/dist/types/components/controller/action-stack/StackFocusController.d.ts +8 -7
- package/dist/types/components/controller/action-stack/stackChromePalette.d.ts +20 -0
- package/dist/types/components/controller/actions/ActionProjectionService.d.ts +12 -1
- package/dist/types/components/controller/actions/ChildActionMenuController.d.ts +74 -32
- package/dist/types/components/controller/actions/KeyEventController.d.ts +78 -70
- package/dist/types/components/controller/actions/{CoreEventMenuController.d.ts → KeyEventMenuController.d.ts} +28 -33
- package/dist/types/components/controller/actions/radialItemMenu.d.ts +43 -5
- package/dist/types/components/controller/children/ChildInteractionController.d.ts +4 -0
- package/dist/types/components/controller/children/ChildrenBuilder.d.ts +19 -22
- package/dist/types/components/controller/children/ComponentSwitchCoordinator.d.ts +3 -1
- package/dist/types/components/controller/children/IdleFacettesController.d.ts +205 -0
- package/dist/types/components/controller/children/facetModulation.d.ts +49 -0
- package/dist/types/components/controller/children/idleTabLayout.d.ts +95 -0
- package/dist/types/components/controller/children/idleTabMorph.d.ts +45 -0
- package/dist/types/components/controller/children/signatureLook.d.ts +10 -0
- package/dist/types/components/controller/force-field/EventFieldLifecycleController.d.ts +14 -0
- package/dist/types/components/controller/force-field/EventFieldRenderer.d.ts +3 -3
- package/dist/types/components/controller/force-field/ForceFieldCanvasPainter.d.ts +99 -0
- package/dist/types/components/controller/force-field/ForceFieldComputationService.d.ts +9 -0
- package/dist/types/components/controller/force-field/ForceFieldDetailsPanel.d.ts +28 -57
- package/dist/types/components/controller/force-field/ForceFieldDetailsPresenter.d.ts +4 -1
- package/dist/types/components/controller/force-field/ForceFieldLifecycleController.d.ts +16 -1
- package/dist/types/components/controller/force-field/ForceFieldRenderer.d.ts +10 -18
- package/dist/types/components/controller/force-field/IncomingForceFieldService.d.ts +2 -2
- package/dist/types/components/controller/force-field/PropagationAnimator.d.ts +2 -0
- package/dist/types/components/controller/force-field/keyEventPresentation.d.ts +47 -0
- package/dist/types/components/controller/force-field/propagation-viz/PropagationCometPlayer.d.ts +4 -0
- package/dist/types/components/controller/force-field/propagation-viz/propagationVizLists.d.ts +4 -2
- package/dist/types/components/controller/force-field/propagation-viz/propagationVizModel.d.ts +1 -0
- package/dist/types/components/controller/force-field/shieldViewModel.d.ts +6 -2
- package/dist/types/components/controller/force-field/types.d.ts +2 -1
- package/dist/types/components/controller/labels/ChildScoresDeltaRenderer.d.ts +7 -0
- package/dist/types/components/controller/labels/ComponentTitlePresenter.d.ts +13 -0
- package/dist/types/components/controller/labels/ContextLabelsRenderer.d.ts +16 -0
- package/dist/types/components/controller/labels/WeightPreviewRingRenderer.d.ts +33 -0
- package/dist/types/components/controller/odd/ChildrenOrbitManager.d.ts +76 -25
- package/dist/types/components/controller/odd/OddHighlightEffects.d.ts +2 -0
- package/dist/types/components/controller/odd/OddViewManager.d.ts +7 -3
- package/dist/types/components/controller/odd/childHighlightStyles.d.ts +45 -3
- package/dist/types/components/controller/search/SearchPanelSynchronizer.d.ts +8 -5
- package/dist/types/components/controller/settings/ControllerSettingsApplier.d.ts +4 -4
- package/dist/types/components/controller/state/ControllerSession.d.ts +3 -3
- package/dist/types/components/controller/state/ControllerUiCallbacks.d.ts +10 -0
- package/dist/types/components/controller/state/YinYangControllerState.d.ts +20 -9
- package/dist/types/components/controller/types.d.ts +9 -2
- package/dist/types/components/controller/utils/actionCatalog.d.ts +1 -1
- package/dist/types/components/controller/utils/eventFieldTargets.d.ts +19 -13
- package/dist/types/components/controller/utils/keyEventPropagationContext.d.ts +4 -0
- package/dist/types/components/controller/utils/keyEventTargetBreakdowns.d.ts +4 -0
- package/dist/types/components/controller/utils/svgTransform.d.ts +16 -0
- package/dist/types/components/controls/ObstacleDemoControl.d.ts +3 -0
- package/dist/types/components/controls/VizControlsPanel.d.ts +3 -1
- package/dist/types/components/panel/PanelManager.d.ts +92 -22
- package/dist/types/components/search/GlobalSearchController.d.ts +13 -6
- package/dist/types/components/view/BorderDrawer.d.ts +40 -14
- package/dist/types/components/view/IdleTabGridDrawer.d.ts +15 -0
- package/dist/types/components/view/SpikeDrawer.d.ts +18 -0
- package/dist/types/components/view/ViewInitializer.d.ts +45 -7
- package/dist/types/components/view/YinYangDrawer.d.ts +132 -30
- package/dist/types/components/view/borderColorCycle.d.ts +76 -0
- package/dist/types/components/workspace/facetWeightRuleSetting.d.ts +10 -0
- package/dist/types/components/workspace/workspaceTemplate.d.ts +1 -1
- package/dist/types/config/animationConfig.d.ts +10 -1
- package/dist/types/data/activeDiagram.d.ts +6 -2
- package/dist/types/data/adverse-action-planner.d.ts +3 -3
- package/dist/types/data/amplifier-engine.d.ts +6 -6
- package/dist/types/data/contacts/demoObstacle.d.ts +3 -0
- package/dist/types/data/contacts/index.d.ts +3 -0
- package/dist/types/data/contacts/obstacleSignature.d.ts +56 -0
- package/dist/types/data/key-event-effects.d.ts +30 -0
- package/dist/types/data/key-event-eligibility.d.ts +24 -0
- package/dist/types/data/key-event-propagation.d.ts +13 -0
- package/dist/types/data/key-event-types.d.ts +48 -0
- package/dist/types/data/key-event-validation.d.ts +11 -0
- package/dist/types/data/stability-shield.d.ts +14 -0
- package/dist/types/data/yasuni_adverse_key_events.d.ts +1 -1
- package/dist/types/data/yasuni_cause.d.ts +7 -0
- package/dist/types/data/yasuni_key_events.d.ts +4 -60
- package/dist/types/interfaces/ICauseModel.d.ts +16 -1
- package/dist/types/interfaces/IGraphicsStrategy.d.ts +9 -2
- package/dist/types/interfaces/IPropagationGraph.d.ts +14 -0
- package/dist/types/interfaces/IViewData.d.ts +19 -3
- package/dist/types/interfaces/IYinYangController.d.ts +35 -7
- package/dist/types/interfaces/IYinYangInternalModel.d.ts +7 -0
- package/dist/types/main.d.ts +1 -1
- package/dist/types/utils/actionIconFit.d.ts +23 -0
- package/dist/types/utils/actionPropagation.d.ts +6 -4
- package/dist/types/utils/causeMetrics.d.ts +29 -11
- package/dist/types/utils/chainCardHeight.d.ts +87 -4
- package/dist/types/utils/collapseAnimation.d.ts +39 -0
- package/dist/types/utils/d3/D3GraphicsStrategy.d.ts +28 -5
- package/dist/types/utils/deltaChips.d.ts +0 -4
- package/dist/types/utils/exportControls.d.ts +8 -0
- package/dist/types/utils/facetWeightLabel.d.ts +6 -4
- package/dist/types/utils/facetteImages.d.ts +6 -0
- package/dist/types/utils/glowHalo.d.ts +74 -0
- package/dist/types/utils/hierBadge.d.ts +1 -1
- package/dist/types/utils/keyEventImages.d.ts +1 -1
- package/dist/types/utils/menuIconSize.d.ts +17 -0
- package/dist/types/utils/spreadAngles.d.ts +17 -0
- package/package.json +4 -1
- package/dist/bundle.js.LICENSE.txt +0 -1
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import { ViewInitializer } from "./ViewInitializer";
|
|
2
2
|
import { IYinOrYangPattern } from "../../interfaces/IYinOrYangPattern";
|
|
3
|
+
/**
|
|
4
|
+
* Exécute `draw` en différant l'ajustement des pastilles de poids
|
|
5
|
+
* (fitWeightPill) qu'il demande : toutes les mesures d'abord, toutes les
|
|
6
|
+
* écritures ensuite. Créer les satellites un à un alternait sinon écriture
|
|
7
|
+
* du DOM et getBBox, soit une mise en page complète par satellite.
|
|
8
|
+
*/
|
|
9
|
+
export declare function batchWeightPillFits(draw: () => void): void;
|
|
10
|
+
/** Libellé qui reste droit pendant la rotation Yin/Yang (voir
|
|
11
|
+
* YinYangDrawer.getCounterRotatedLabels). */
|
|
12
|
+
export interface CounterRotatedLabel {
|
|
13
|
+
node: Element;
|
|
14
|
+
lobe: "yin" | "yang";
|
|
15
|
+
/** Pivot de la contre-rotation ; nul = origine locale du nœud. */
|
|
16
|
+
pivot: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
} | null;
|
|
20
|
+
}
|
|
3
21
|
export declare class YinYangDrawer {
|
|
4
22
|
private ViewInitializer;
|
|
5
23
|
private yinYangGroup;
|
|
@@ -23,6 +41,9 @@ export declare class YinYangDrawer {
|
|
|
23
41
|
* ViewInitializer.ghostDeltaBadgeSizeBoost pour l'agrandissement, réglable
|
|
24
42
|
* en direct, appliqué au-delà de cette base. */
|
|
25
43
|
private readonly GHOST_DELTA_BADGE_NUCLEUS_FILL;
|
|
44
|
+
/** Arcs d'onde des ODD et leur générateur, gardés d'une frame à l'autre
|
|
45
|
+
* tant que les entrées, le calque et la géométrie ne changent pas. */
|
|
46
|
+
private categoryArcGhostWaveCache;
|
|
26
47
|
private categoryArcGhostEntries;
|
|
27
48
|
private categoryArcGhostFrameId;
|
|
28
49
|
private readonly CHILD_SCORE_BAND_FRACTION;
|
|
@@ -37,17 +58,24 @@ export declare class YinYangDrawer {
|
|
|
37
58
|
private outerSparkStartTimeMs;
|
|
38
59
|
private outerSparkPhaseMs;
|
|
39
60
|
private outerSparkRotationDurationMs;
|
|
40
|
-
|
|
61
|
+
/** Groupe tourné de l'étincelle et centre de sa rotation — lus par le
|
|
62
|
+
* timer, qui survit aux appels suivants de startOuterSparkAnimation. */
|
|
63
|
+
private outerSparkRotor;
|
|
64
|
+
private outerSparkCenter;
|
|
41
65
|
private outerSparkLastAngleRad;
|
|
42
66
|
private balanceSparkOnComplete;
|
|
43
67
|
private readonly balanceSparkInstances;
|
|
44
68
|
private balanceSparkTadpoleIdSeq;
|
|
45
69
|
private readonly balanceSparkTadpoles;
|
|
46
70
|
private balanceSparkTadpoleTimer;
|
|
71
|
+
/** Cible partagée des têtards (bas du conteneur), mesurée au plus toutes
|
|
72
|
+
* les 500 ms — voir tickBalanceSparkTadpoles. */
|
|
73
|
+
private balanceSparkTadpoleTarget;
|
|
47
74
|
/** Cruising speed (px/ms) and cutoff (as a multiple of the main circle's
|
|
48
75
|
* radius) for the lone-survivor drift — see the fragment block in
|
|
49
76
|
* startBalanceSparkAnimation's timer. */
|
|
50
77
|
private readonly BALANCE_SPARK_DRIFT_SPEED_PX_PER_MS;
|
|
78
|
+
private readonly BALANCE_SPARK_TADPOLE_MAX_AGE_MS;
|
|
51
79
|
private readonly BALANCE_SPARK_DRIFT_INITIAL_SPEED_PX_PER_MS;
|
|
52
80
|
private readonly BALANCE_SPARK_DRIFT_SPEED_EASE_MS;
|
|
53
81
|
private readonly BALANCE_SPARK_DRIFT_TURN_RATE_RAD_PER_MS;
|
|
@@ -67,6 +95,14 @@ export declare class YinYangDrawer {
|
|
|
67
95
|
private readonly BALANCE_SPARK_EMBER_PHASE_OFFSETS;
|
|
68
96
|
private activeOddId;
|
|
69
97
|
private hoverOddId;
|
|
98
|
+
private lobeNodes;
|
|
99
|
+
/** Vrai pendant updateSwitchFrame : les rendus partagés avec le rendu
|
|
100
|
+
* complet (libellés) n'y réordonnent pas leurs calques. */
|
|
101
|
+
private inSwitchFrame;
|
|
102
|
+
/** Suffixe des dégradés de fond des libellés ODD : unique par libellé, un
|
|
103
|
+
* libellé entrant ne doit pas reprendre l'id d'un autre encore en fondu
|
|
104
|
+
* de sortie (url(#id) désigne le premier du document). */
|
|
105
|
+
private oddLabelGradientSeq;
|
|
70
106
|
/** Callback déclenché quand la souris entre/sort d'un arc ODD (lien inverse
|
|
71
107
|
* vers les chips de la légende ODD du panneau de détail). */
|
|
72
108
|
private _onOddArcHoverCb;
|
|
@@ -95,13 +131,14 @@ export declare class YinYangDrawer {
|
|
|
95
131
|
*/
|
|
96
132
|
drawMainCircle(): void;
|
|
97
133
|
/**
|
|
98
|
-
* Draws and animates a short
|
|
134
|
+
* Draws and animates the perimeter spark: a short arc (the spark itself)
|
|
135
|
+
* with its glow pre-rendered as wider translucent copies of the same arc
|
|
136
|
+
* (see glowHalo), all inside a "rotor" group turned by a single transform
|
|
137
|
+
* per frame.
|
|
99
138
|
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* - changing stroke-dashoffset each frame shifts this dash around the perimeter,
|
|
104
|
-
* creating a rotating spark without moving the circle itself.
|
|
139
|
+
* It used to be a full circle with a dash shifted by stroke-dashoffset
|
|
140
|
+
* under a double feGaussianBlur filter: every frame re-blurred a filter
|
|
141
|
+
* region five times the size of the whole circle.
|
|
105
142
|
*/
|
|
106
143
|
private startOuterSparkAnimation;
|
|
107
144
|
private clearOuterSpark;
|
|
@@ -209,10 +246,10 @@ export declare class YinYangDrawer {
|
|
|
209
246
|
/** Ticks every still-drifting tadpole from every past shed batch — see
|
|
210
247
|
* balanceSparkTadpoles' own doc comment — independently of whichever
|
|
211
248
|
* spark instance(s) happen to be running right now, including none at
|
|
212
|
-
* all.
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
249
|
+
* all. Un têtard nage vers la cible partagée (bas du conteneur) et est
|
|
250
|
+
* retiré dès qu'il l'atteint : sans cela, il tournait indéfiniment autour
|
|
251
|
+
* d'elle, et le timer — avec une mesure du conteneur à chaque frame —
|
|
252
|
+
* ne s'arrêtait jamais après le premier lot lâché. */
|
|
216
253
|
private tickBalanceSparkTadpoles;
|
|
217
254
|
/**
|
|
218
255
|
* Draws a semi-circle (black half) within the main Yin Yang circle.
|
|
@@ -222,6 +259,32 @@ export declare class YinYangDrawer {
|
|
|
222
259
|
* Loops through both Yin and Yang groups and draws the respective symbols (small circles).
|
|
223
260
|
*/
|
|
224
261
|
drawYinYangSymbols(): void;
|
|
262
|
+
/**
|
|
263
|
+
* Frame d'une transition de facette ou d'ODD
|
|
264
|
+
* (ViewInitializer.startComponentAnimationLoop) : réécrit EN PLACE les
|
|
265
|
+
* attributs interpolés des nœuds posés par le dernier rendu complet —
|
|
266
|
+
* rayon et centre des lobes, masques et dégradés des arcs, zones de clic,
|
|
267
|
+
* noyau, position des libellés ODD et score de la facette. Rien n'est
|
|
268
|
+
* ajouté ni retiré, le <defs> n'est pas purgé, et les libellés ne sont
|
|
269
|
+
* remesurés (getBBox) que si leur texte change.
|
|
270
|
+
*
|
|
271
|
+
* Ce qui ne dépend pas de l'interpolation (illustration idle, poids de la
|
|
272
|
+
* facette sur l'arc de bordure, bordures) reste au rendu complet, rejoué à
|
|
273
|
+
* la dernière frame.
|
|
274
|
+
*
|
|
275
|
+
* Renvoie false si les nœuds ne correspondent plus à la géométrie (autres
|
|
276
|
+
* catégories, nœuds détachés par un rendu complet extérieur, défs
|
|
277
|
+
* disparues…) ; l'appelant refait alors un rendu complet, qui repose tout.
|
|
278
|
+
*/
|
|
279
|
+
updateSwitchFrame(): boolean;
|
|
280
|
+
private updateLobeAttributes;
|
|
281
|
+
/**
|
|
282
|
+
* Fond l'opacité d'un libellé vers `target`, sans relancer la transition
|
|
283
|
+
* si elle y va déjà. Relancée à chaque frame (transition de facette), une
|
|
284
|
+
* transition d'opacité ne progresse jamais : le libellé restait invisible
|
|
285
|
+
* tout le long de la bascule.
|
|
286
|
+
*/
|
|
287
|
+
private fadeLabelTo;
|
|
225
288
|
/**
|
|
226
289
|
* Mode idle (racine, aucune facette sélectionnée) : le cercle principal
|
|
227
290
|
* n'a aucune donnée pertinente à montrer (le yin/yang de base reste sur
|
|
@@ -331,6 +394,14 @@ export declare class YinYangDrawer {
|
|
|
331
394
|
private clearGhostVisuals;
|
|
332
395
|
private getOrCreateGhostMainCircle;
|
|
333
396
|
private getAdaptiveWaveCount;
|
|
397
|
+
/**
|
|
398
|
+
* Cercles d'ondes d'un groupe ghost, avec les constantes qu'on leur a déjà
|
|
399
|
+
* écrites. Par frame, seuls `cy`, `r` et `stroke-opacity` varient : le reste
|
|
400
|
+
* (cx, fill, stroke, stroke-width) n'est réécrit que s'il change. Les nœuds
|
|
401
|
+
* sont gardés d'une frame à l'autre, et reconstruits depuis le DOM dès que
|
|
402
|
+
* l'un d'eux en est détaché (redessin complet du groupe).
|
|
403
|
+
*/
|
|
404
|
+
private ghostWaveCache;
|
|
334
405
|
private reconcileGhostWaves;
|
|
335
406
|
private updateBasePulseAnimations;
|
|
336
407
|
private updateBasePulseAnimationForType;
|
|
@@ -360,6 +431,9 @@ export declare class YinYangDrawer {
|
|
|
360
431
|
* n'existait nulle part ailleurs et dont le signe était perdu.
|
|
361
432
|
*/
|
|
362
433
|
private updateGhostDeltaBadge;
|
|
434
|
+
/** Enveloppe (repère local) des lignes du badge, avec la signature du
|
|
435
|
+
* contenu qu'elle mesure. Liée au nœud : elle disparaît avec lui. */
|
|
436
|
+
private ghostDeltaBadgeBoxes;
|
|
363
437
|
private ghostDeltaBadgeSelector;
|
|
364
438
|
/** Retire le badge d'un lobe. Nécessaire explicitement depuis que le badge
|
|
365
439
|
* ne vit plus dans le groupe du ghost : il ne disparaît plus avec lui. */
|
|
@@ -369,6 +443,22 @@ export declare class YinYangDrawer {
|
|
|
369
443
|
private getCircleNumericAttribute;
|
|
370
444
|
private lerp;
|
|
371
445
|
private shouldRenderGhost;
|
|
446
|
+
/** Ids des masques et dégradés posés dans le <defs> partagé par les arcs de
|
|
447
|
+
* catégorie de ce dessinateur. Déterministes (catégorie, lobe, calque), donc
|
|
448
|
+
* bornés ; sert à les retirer quand le satellite est détruit. */
|
|
449
|
+
private readonly ownedDefIds;
|
|
450
|
+
/** Retire du <defs> partagé ce que ce dessinateur y a posé. À appeler quand
|
|
451
|
+
* le satellite est détruit (clearChildren) : sans cela, chaque visite d'une
|
|
452
|
+
* facette laissait ses masques et dégradés dans le <defs>, qui ne
|
|
453
|
+
* redescendait jamais. */
|
|
454
|
+
releaseDefs(): void;
|
|
455
|
+
/**
|
|
456
|
+
* Fin de vie : arrête toutes les boucles du dessinateur (vagues et
|
|
457
|
+
* pulsation du ghost, étincelle du pourtour, étincelles d'équilibre et
|
|
458
|
+
* leurs têtards) et libère ses defs. N'écrit pas dans le DOM du diagramme :
|
|
459
|
+
* son conteneur est vidé par l'appelant.
|
|
460
|
+
*/
|
|
461
|
+
destroy(): void;
|
|
372
462
|
/**
|
|
373
463
|
* Draws category-specific arcs with gradient fills and masks to represent different ODDs (Sustainable Development Goals).
|
|
374
464
|
*
|
|
@@ -422,27 +512,36 @@ export declare class YinYangDrawer {
|
|
|
422
512
|
*/
|
|
423
513
|
private shouldShowFacetteLabels;
|
|
424
514
|
refreshOddArcLabelsVisibility(): void;
|
|
425
|
-
|
|
515
|
+
/**
|
|
516
|
+
* Écrit la contre-rotation des labels des deux lobes en attribut, pour une
|
|
517
|
+
* orientation donnée de chaque lobe (en degrés) — à l'arrêt, la position
|
|
518
|
+
* de base. Pendant la rotation, ce sont des animations du navigateur
|
|
519
|
+
* (AnimationsMngr) qui contre-tournent les labels, par-dessus l'attribut.
|
|
520
|
+
*/
|
|
521
|
+
refreshOddArcLabelsOrientation(lobeAngles: {
|
|
522
|
+
yin: number;
|
|
523
|
+
yang: number;
|
|
524
|
+
}): void;
|
|
525
|
+
private getLobeNode;
|
|
426
526
|
private isArcVisibleForLabel;
|
|
427
527
|
private renderOddArcLabels;
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
*
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
435
|
-
*
|
|
436
|
-
*
|
|
437
|
-
*
|
|
438
|
-
*
|
|
439
|
-
*
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
private
|
|
445
|
-
private getRotationAngleFromTransform;
|
|
528
|
+
/** Ce qui fixe le contenu et la taille d'un libellé d'arc ODD. */
|
|
529
|
+
private oddArcLabelKey;
|
|
530
|
+
/**
|
|
531
|
+
* Libellés qui restent droits pendant la rotation Yin/Yang, avec le pivot
|
|
532
|
+
* de leur contre-rotation. Les libellés d'arc ODD tournent autour de leur
|
|
533
|
+
* origine locale (`pivot` nul : leur groupe parent les place). Le score et
|
|
534
|
+
* le poids affichés en permanence dans le noyau du lobe dominant — sur le
|
|
535
|
+
* cercle central (renderFacetteStateLabel) comme sur un satellite
|
|
536
|
+
* (renderChildStateLabel/renderChildWeightLabel) — sont placés par des
|
|
537
|
+
* attributs x/y directs : une rotation autour de ce même point annule
|
|
538
|
+
* l'orientation héritée du spin du lobe sans déplacer le montant. Le poids
|
|
539
|
+
* de la facette n'est plus dans le lobe (voir renderFacetteWeightLabel) :
|
|
540
|
+
* il ne tourne pas, rien à compenser. AnimationsMngr anime chacun en sens
|
|
541
|
+
* inverse de son lobe ; chaque satellite a son propre YinYangDrawer.
|
|
542
|
+
*/
|
|
543
|
+
getCounterRotatedLabels(): CounterRotatedLabel[];
|
|
544
|
+
private readLabelPivot;
|
|
446
545
|
private getDisplayedArcAngles;
|
|
447
546
|
/**
|
|
448
547
|
* Ajuste la plaque sombre posée derrière un libellé d'arc à la taille
|
|
@@ -490,6 +589,9 @@ export declare class YinYangDrawer {
|
|
|
490
589
|
private wrapTextByLines;
|
|
491
590
|
private getOrCreateInteractiveArcLayer;
|
|
492
591
|
private drawInteractiveArcZone;
|
|
592
|
+
/** Tracés d'une zone de clic d'arc ODD et de son liseré « actif » —
|
|
593
|
+
* partagés par le rendu complet et la frame de transition. */
|
|
594
|
+
private computeInteractiveArcPaths;
|
|
493
595
|
/** Callback appelé quand la souris entre/sort d'un arc ODD du diagramme —
|
|
494
596
|
* permet de surligner en retour le chip correspondant dans la légende ODD. */
|
|
495
597
|
setOnOddArcHover(cb: (oddId: string | null) => void): void;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/** Instant clé du cycle (0..1) et couleurs des deux arrêts animés à cet instant. */
|
|
2
|
+
export type ColorCycleStep = {
|
|
3
|
+
at: number;
|
|
4
|
+
first: string;
|
|
5
|
+
last: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Valeurs parcourues par le premier et le dernier arrêt sur un cycle,
|
|
9
|
+
* à intervalles réguliers — les mêmes que l'ancienne animation SMIL : le
|
|
10
|
+
* premier arrêt parcourt les couleurs puis revient à la première ; le dernier
|
|
11
|
+
* suit la même boucle décalée d'un cran (il tient la première couleur sur le
|
|
12
|
+
* premier intervalle).
|
|
13
|
+
*/
|
|
14
|
+
export declare function borderColorCycleValues(colors: readonly string[]): {
|
|
15
|
+
first: string[];
|
|
16
|
+
last: string[];
|
|
17
|
+
};
|
|
18
|
+
/** Couleur à l'instant `at` (0..1) d'une suite de valeurs équiréparties,
|
|
19
|
+
* interpolée en sRGB comme le faisait SMIL. */
|
|
20
|
+
export declare function sampleAt(values: readonly string[], at: number): string;
|
|
21
|
+
/**
|
|
22
|
+
* Instants clés du cycle (réunion de ceux des deux arrêts, 0 et 1 compris)
|
|
23
|
+
* et couleurs des deux arrêts à chacun. Le dernier pas (1) a les couleurs du
|
|
24
|
+
* premier (0) : la boucle se referme sans saut.
|
|
25
|
+
*/
|
|
26
|
+
export declare function borderColorCycleSteps(colors: readonly string[]): ColorCycleStep[];
|
|
27
|
+
/**
|
|
28
|
+
* Opacités de la copie `k` (k ≥ 1) sur un cycle : invisible avant son fondu,
|
|
29
|
+
* de 0 à 1 entre les instants k − 1 et k, opaque tant qu'elle est le fond du
|
|
30
|
+
* fondu suivant, puis retirée quand la copie k + 1, opaque, la recouvre.
|
|
31
|
+
*/
|
|
32
|
+
export declare function colorCycleLayerKeyframes(times: readonly number[], k: number): Keyframe[];
|
|
33
|
+
/**
|
|
34
|
+
* Cycle de couleurs d'un segment actif. Au repos : copies en fondu posées
|
|
35
|
+
* juste sous le segment dans son groupe (le segment garde contour, clics et
|
|
36
|
+
* survol, son propre remplissage est rendu transparent) ; les halos du
|
|
37
|
+
* segment restent dessous, voir `data-fill-under` dans glowHalo.syncShapeGlow.
|
|
38
|
+
* Diagramme actif (FrameScheduler.isActive) : copies retirées, arrêts du
|
|
39
|
+
* dégradé d'origine écrits à chaque image bridée.
|
|
40
|
+
*/
|
|
41
|
+
export declare class BorderColorCycle {
|
|
42
|
+
private readonly segment;
|
|
43
|
+
private readonly durationMs;
|
|
44
|
+
readonly key: string;
|
|
45
|
+
private readonly group;
|
|
46
|
+
private readonly paths;
|
|
47
|
+
private animations;
|
|
48
|
+
private readonly times;
|
|
49
|
+
private readonly values;
|
|
50
|
+
private readonly firstStop;
|
|
51
|
+
private readonly lastStop;
|
|
52
|
+
/** Couleurs posées sur les deux arrêts du dégradé d'origine, rendues à la fin. */
|
|
53
|
+
private readonly restingColors;
|
|
54
|
+
private readonly startedAt;
|
|
55
|
+
private mainThreadFrameId;
|
|
56
|
+
private readonly unsubscribe;
|
|
57
|
+
static keyOf(colors: readonly string[], durationMs: number): string;
|
|
58
|
+
constructor(segment: SVGPathElement, gradient: SVGGradientElement, colors: readonly string[], durationMs: number);
|
|
59
|
+
/** Le segment est toujours dans le document (les copies, elles, en sont
|
|
60
|
+
* retirées quand le diagramme est actif). */
|
|
61
|
+
get isConnected(): boolean;
|
|
62
|
+
/** Recopie la forme du segment et réapplique le remplissage du mode courant
|
|
63
|
+
* (à rappeler quand l'appelant a restylé le segment). */
|
|
64
|
+
refresh(): void;
|
|
65
|
+
/** Suit le segment pendant qu'il change de largeur. */
|
|
66
|
+
setPath(d: string): void;
|
|
67
|
+
destroy(): void;
|
|
68
|
+
private syncGeometry;
|
|
69
|
+
/** Phase courante du cycle, en ms depuis son départ. */
|
|
70
|
+
private phaseMs;
|
|
71
|
+
private applyMode;
|
|
72
|
+
private startComposited;
|
|
73
|
+
private stopComposited;
|
|
74
|
+
private startMainThread;
|
|
75
|
+
private stopMainThread;
|
|
76
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type FacetWeightRule } from "../../utils/causeMetrics";
|
|
2
|
+
/** Règle des poids de facette choisie dans le debug de la page standalone
|
|
3
|
+
* (voir `FacetWeightRule`) : mémorisée dans le navigateur, appliquée au
|
|
4
|
+
* démarrage — la lib npm, elle, reste en `mean`. */
|
|
5
|
+
export declare const FACET_WEIGHT_RULE_STORAGE_KEY = "spheres.facetWeightRule";
|
|
6
|
+
/** Lit la règle mémorisée (`mean` à défaut, ou si le stockage est
|
|
7
|
+
* inaccessible), l'applique et la renvoie. */
|
|
8
|
+
export declare function loadFacetWeightRule(): FacetWeightRule;
|
|
9
|
+
/** Mémorise la règle ; renvoie `false` si le stockage est inaccessible. */
|
|
10
|
+
export declare function saveFacetWeightRule(rule: FacetWeightRule): boolean;
|