@sentropic/design-system-svelte 0.34.37 → 0.34.38

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,399 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * DecompositionTreeChart - arbre de décomposition hiérarchique (façon Power BI
4
+ * decomposition tree). Une mesure TOTALE se décompose en niveaux successifs
5
+ * selon des dimensions : chaque niveau = une COLONNE de nœuds (barres
6
+ * horizontales dont la largeur est ∝ `value` relative au niveau), reliés au
7
+ * parent du niveau précédent par des liens lissés.
8
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
9
+ *
10
+ * Modèle : une racine = la mesure totale (colonne 0), puis N niveaux de nœuds ;
11
+ * chaque nœud (sauf la racine) référence son `parent` par libellé. La couleur
12
+ * suit le NIVEAU (cycle sur category1..8). Survol d'un nœud → infobulle
13
+ * dimension/libellé + valeur. Statique (pas de drill) — montre tous les niveaux.
14
+ *
15
+ * Props obligatoires :
16
+ * data DecompositionTreeData - { measure, levels[] }
17
+ *
18
+ * Props optionnelles :
19
+ * label string
20
+ * width number (défaut 640)
21
+ * height number (défaut 320)
22
+ * size number (alias de width)
23
+ * class string
24
+ */
25
+ export type DecompositionTreeNode = {
26
+ label: string;
27
+ value: number;
28
+ parent?: string;
29
+ };
30
+
31
+ export type DecompositionTreeLevel = {
32
+ dimension: string;
33
+ nodes: DecompositionTreeNode[];
34
+ };
35
+
36
+ export type DecompositionTreeData = {
37
+ measure: string;
38
+ levels: DecompositionTreeLevel[];
39
+ };
40
+ </script>
41
+
42
+ <script lang="ts">
43
+ import ChartDataList from "./ChartDataList.svelte";
44
+
45
+ type DecompositionTreeChartProps = {
46
+ data: DecompositionTreeData;
47
+ label?: string;
48
+ width?: number;
49
+ height?: number;
50
+ size?: number;
51
+ class?: string;
52
+ };
53
+
54
+ let {
55
+ data,
56
+ label,
57
+ width,
58
+ height = 320,
59
+ size,
60
+ class: className
61
+ }: DecompositionTreeChartProps = $props();
62
+
63
+ const resolvedWidth = $derived(width ?? size ?? 640);
64
+
65
+ const MARGIN = { top: 16, right: 16, bottom: 16, left: 16 };
66
+ const BAR_H = 22;
67
+ const BAR_GAP = 10;
68
+ const COL_GAP = 36;
69
+ const BAR_W = 110;
70
+
71
+ let hoveredKey: string | null = $state(null);
72
+
73
+ // Couleur par niveau (colonne), 1..8 cyclé.
74
+ const toneForLevel = (level: number): string => `category${(level % 8) + 1}`;
75
+
76
+ // Tronque une étiquette à la largeur de la barre (approx. par char).
77
+ function ellipsize(text: string, maxChars: number): string {
78
+ if (text.length <= maxChars) return text;
79
+ if (maxChars <= 1) return "…";
80
+ return `${text.slice(0, maxChars - 1)}…`;
81
+ }
82
+
83
+ function formatValue(v: number): string {
84
+ if (Math.abs(v) >= 1000) return `${(v / 1000).toFixed(v % 1000 === 0 ? 0 : 1)}k`;
85
+ if (Number.isInteger(v)) return String(v);
86
+ return v.toFixed(1);
87
+ }
88
+
89
+ type Cell = {
90
+ key: string;
91
+ label: string;
92
+ dimension: string;
93
+ value: number;
94
+ level: number;
95
+ x: number;
96
+ y: number;
97
+ barWidth: number;
98
+ tone: string;
99
+ cx: number;
100
+ cy: number;
101
+ parentKey: string | null;
102
+ };
103
+
104
+ type Link = {
105
+ key: string;
106
+ from: Cell;
107
+ to: Cell;
108
+ };
109
+
110
+ // Normalise : une colonne par niveau, plus la racine (colonne 0 = mesure
111
+ // totale). La largeur d'une barre est ∝ value relative au max de SON niveau.
112
+ const layout = $derived.by(() => {
113
+ const cells: Cell[] = [];
114
+ const links: Link[] = [];
115
+ if (!data || typeof data.measure !== "string") return { cells, links };
116
+
117
+ const plotTop = MARGIN.top;
118
+ const colX = (level: number) => MARGIN.left + level * (BAR_W + COL_GAP);
119
+
120
+ // Colonne 0 : la racine (mesure totale). Sa valeur = somme du 1er niveau si
121
+ // disponible, sinon 1 (barre pleine).
122
+ const levels = (data.levels ?? []).filter(
123
+ (lvl) => lvl && typeof lvl.dimension === "string"
124
+ );
125
+ const firstLevelTotal = levels[0]
126
+ ? levels[0].nodes
127
+ .filter((n) => n && Number.isFinite(n.value))
128
+ .reduce((s, n) => s + Math.max(n.value, 0), 0)
129
+ : 0;
130
+ const rootValue = firstLevelTotal > 0 ? firstLevelTotal : 1;
131
+
132
+ const rootCell: Cell = {
133
+ key: "root",
134
+ label: data.measure,
135
+ dimension: data.measure,
136
+ value: rootValue,
137
+ level: 0,
138
+ x: colX(0),
139
+ y: plotTop,
140
+ barWidth: BAR_W,
141
+ tone: toneForLevel(0),
142
+ cx: colX(0) + BAR_W / 2,
143
+ cy: plotTop + BAR_H / 2,
144
+ parentKey: null
145
+ };
146
+ cells.push(rootCell);
147
+
148
+ // Niveaux 1..N : une colonne chacun.
149
+ let prevColumn: Cell[] = [rootCell];
150
+ levels.forEach((lvl, li) => {
151
+ const level = li + 1;
152
+ const nodes = (lvl.nodes ?? []).filter(
153
+ (n) => n && typeof n.label === "string" && Number.isFinite(n.value)
154
+ );
155
+ const levelMax = nodes.reduce((m, n) => Math.max(m, Math.max(n.value, 0)), 0) || 1;
156
+ const x = colX(level);
157
+ const column: Cell[] = [];
158
+ nodes.forEach((n, ni) => {
159
+ const y = plotTop + ni * (BAR_H + BAR_GAP);
160
+ const barWidth = Math.max((Math.max(n.value, 0) / levelMax) * BAR_W, 2);
161
+ const parentCell =
162
+ (n.parent !== undefined &&
163
+ prevColumn.find((p) => p.label === n.parent)) ||
164
+ prevColumn[0] ||
165
+ null;
166
+ const cell: Cell = {
167
+ key: `${level}-${ni}`,
168
+ label: n.label,
169
+ dimension: lvl.dimension,
170
+ value: n.value,
171
+ level,
172
+ x,
173
+ y,
174
+ barWidth,
175
+ tone: toneForLevel(level),
176
+ cx: x + barWidth / 2,
177
+ cy: y + BAR_H / 2,
178
+ parentKey: parentCell ? parentCell.key : null
179
+ };
180
+ cells.push(cell);
181
+ column.push(cell);
182
+ if (parentCell) {
183
+ links.push({ key: `${parentCell.key}>${cell.key}`, from: parentCell, to: cell });
184
+ }
185
+ });
186
+ if (column.length > 0) prevColumn = column;
187
+ });
188
+
189
+ return { cells, links };
190
+ });
191
+
192
+ const cells = $derived(layout.cells);
193
+ const links = $derived(layout.links);
194
+
195
+ const computedHeight = $derived.by(() => {
196
+ if (cells.length === 0) return height;
197
+ const maxBottom = cells.reduce((m, c) => Math.max(m, c.y + BAR_H), MARGIN.top);
198
+ return Math.max(height, maxBottom + MARGIN.bottom);
199
+ });
200
+
201
+ const computedWidth = $derived.by(() => {
202
+ if (cells.length === 0) return resolvedWidth;
203
+ const maxRight = cells.reduce((m, c) => Math.max(m, c.x + BAR_W), MARGIN.left);
204
+ return Math.max(resolvedWidth, maxRight + MARGIN.right);
205
+ });
206
+
207
+ // Nombre de caractères affichables avant ellipsis (approx. largeur de glyphe).
208
+ const charsFor = (w: number) => Math.max(0, Math.floor((w - 8) / 6.6));
209
+
210
+ // Lien lissé parent→enfant (courbe de Bézier horizontale).
211
+ function linkPath(link: Link): string {
212
+ const x1 = link.from.x + link.from.barWidth;
213
+ const y1 = link.from.cy;
214
+ const x2 = link.to.x;
215
+ const y2 = link.to.cy;
216
+ const mid = (x1 + x2) / 2;
217
+ return `M ${x1} ${y1} C ${mid} ${y1}, ${mid} ${y2}, ${x2} ${y2}`;
218
+ }
219
+
220
+ const dataValueItems = $derived(
221
+ cells.map((c) => `${"·".repeat(c.level)}${c.label}: ${c.value}`)
222
+ );
223
+
224
+ function handlePointerMove(event: PointerEvent) {
225
+ const target = event.target;
226
+ if (!(target instanceof Element)) {
227
+ hoveredKey = null;
228
+ return;
229
+ }
230
+ const key = target.getAttribute("data-chart-key");
231
+ hoveredKey = key ?? null;
232
+ }
233
+
234
+ const hoveredCell = $derived.by(() => {
235
+ if (hoveredKey === null) return null;
236
+ return cells.find((c) => c.key === hoveredKey) ?? null;
237
+ });
238
+
239
+ const classes = () => ["st-decompositionTreeChart", className].filter(Boolean).join(" ");
240
+ </script>
241
+
242
+ <div class={classes()}>
243
+ <div
244
+ class="st-decompositionTreeChart__visual"
245
+ role="img"
246
+ aria-label={label}
247
+ onpointermove={handlePointerMove}
248
+ onpointerleave={() => (hoveredKey = null)}
249
+ >
250
+ <svg
251
+ viewBox="0 0 {computedWidth} {computedHeight}"
252
+ preserveAspectRatio="xMidYMid meet"
253
+ width="100%"
254
+ height="100%"
255
+ focusable="false"
256
+ aria-hidden="true"
257
+ >
258
+ <!-- liens lissés parent→enfant -->
259
+ {#each links as link (link.key)}
260
+ <path
261
+ class="st-decompositionTreeChart__link"
262
+ class:st-decompositionTreeChart__link--dim={hoveredKey !== null &&
263
+ hoveredKey !== link.from.key &&
264
+ hoveredKey !== link.to.key}
265
+ d={linkPath(link)}
266
+ />
267
+ {/each}
268
+
269
+ <!-- une colonne par niveau : barre horizontale dont la largeur ∝ value -->
270
+ {#each cells as cell (cell.key)}
271
+ {@const chars = charsFor(cell.barWidth)}
272
+ <g class="st-decompositionTreeChart__node">
273
+ <rect
274
+ class="st-decompositionTreeChart__bar st-decompositionTreeChart__bar--{cell.tone}"
275
+ class:st-decompositionTreeChart__bar--dim={hoveredKey !== null && hoveredKey !== cell.key}
276
+ x={cell.x}
277
+ y={cell.y}
278
+ width={Math.max(cell.barWidth, 2)}
279
+ height={BAR_H}
280
+ rx="2"
281
+ data-chart-key={cell.key}
282
+ />
283
+ {#if chars >= 2}
284
+ <text
285
+ class="st-decompositionTreeChart__label"
286
+ x={cell.x + 4}
287
+ y={cell.y + BAR_H / 2}
288
+ dominant-baseline="central"
289
+ >
290
+ {ellipsize(cell.label, chars)}
291
+ </text>
292
+ {/if}
293
+ </g>
294
+ {/each}
295
+ </svg>
296
+ </div>
297
+
298
+ <ChartDataList label={label ?? "decomposition tree"} items={dataValueItems} />
299
+
300
+ {#if hoveredCell}
301
+ {@const cell = hoveredCell}
302
+ <div
303
+ class="st-decompositionTreeChart__tooltip"
304
+ role="presentation"
305
+ style="left: {(cell.cx / computedWidth) * 100}%; top: {(cell.cy / computedHeight) * 100}%"
306
+ >
307
+ <span class="st-decompositionTreeChart__tooltipLabel">{cell.dimension} · {cell.label}</span>
308
+ <span class="st-decompositionTreeChart__tooltipValue">{formatValue(cell.value)}</span>
309
+ </div>
310
+ {/if}
311
+ </div>
312
+
313
+ <style>
314
+ .st-decompositionTreeChart {
315
+ color: var(--st-semantic-text-secondary);
316
+ display: block;
317
+ font-family: inherit;
318
+ position: relative;
319
+ width: 100%;
320
+ }
321
+
322
+ .st-decompositionTreeChart svg {
323
+ display: block;
324
+ overflow: visible;
325
+ }
326
+
327
+ .st-decompositionTreeChart__visual {
328
+ display: block;
329
+ }
330
+
331
+ .st-decompositionTreeChart__link {
332
+ fill: none;
333
+ stroke: var(--st-semantic-border-subtle);
334
+ stroke-width: 1.5;
335
+ transition: opacity 120ms ease;
336
+ }
337
+
338
+ .st-decompositionTreeChart__link--dim {
339
+ opacity: 0.3;
340
+ }
341
+
342
+ .st-decompositionTreeChart__bar {
343
+ cursor: pointer;
344
+ stroke: var(--st-semantic-surface-default, Canvas);
345
+ stroke-width: 1;
346
+ transition: opacity 120ms ease;
347
+ }
348
+
349
+ .st-decompositionTreeChart__bar--dim {
350
+ opacity: 0.4;
351
+ }
352
+
353
+ .st-decompositionTreeChart__bar--category1 { fill: var(--st-semantic-data-category1); }
354
+ .st-decompositionTreeChart__bar--category2 { fill: var(--st-semantic-data-category2); }
355
+ .st-decompositionTreeChart__bar--category3 { fill: var(--st-semantic-data-category3); }
356
+ .st-decompositionTreeChart__bar--category4 { fill: var(--st-semantic-data-category4); }
357
+ .st-decompositionTreeChart__bar--category5 { fill: var(--st-semantic-data-category5); }
358
+ .st-decompositionTreeChart__bar--category6 { fill: var(--st-semantic-data-category6); }
359
+ .st-decompositionTreeChart__bar--category7 { fill: var(--st-semantic-data-category7); }
360
+ .st-decompositionTreeChart__bar--category8 { fill: var(--st-semantic-data-category8); }
361
+
362
+ .st-decompositionTreeChart__label {
363
+ fill: var(--st-semantic-text-inverse, #fff);
364
+ font-size: 0.6875rem;
365
+ pointer-events: none;
366
+ }
367
+
368
+ .st-decompositionTreeChart__tooltip {
369
+ background: var(--st-semantic-surface-inverse);
370
+ border-radius: var(--st-radius-sm, 0.25rem);
371
+ color: var(--st-semantic-text-inverse);
372
+ display: inline-flex;
373
+ flex-direction: column;
374
+ font-size: 0.75rem;
375
+ gap: 0.125rem;
376
+ line-height: 1.2;
377
+ padding: 0.375rem 0.5rem;
378
+ pointer-events: none;
379
+ position: absolute;
380
+ transform: translate(-50%, calc(-100% - 8px));
381
+ white-space: nowrap;
382
+ z-index: 1;
383
+ }
384
+
385
+ .st-decompositionTreeChart__tooltipLabel {
386
+ font-weight: 600;
387
+ }
388
+
389
+ .st-decompositionTreeChart__tooltipValue {
390
+ opacity: 0.85;
391
+ }
392
+
393
+ @media (prefers-reduced-motion: reduce) {
394
+ .st-decompositionTreeChart__bar,
395
+ .st-decompositionTreeChart__link {
396
+ transition: none;
397
+ }
398
+ }
399
+ </style>
@@ -0,0 +1,48 @@
1
+ /**
2
+ * DecompositionTreeChart - arbre de décomposition hiérarchique (façon Power BI
3
+ * decomposition tree). Une mesure TOTALE se décompose en niveaux successifs
4
+ * selon des dimensions : chaque niveau = une COLONNE de nœuds (barres
5
+ * horizontales dont la largeur est ∝ `value` relative au niveau), reliés au
6
+ * parent du niveau précédent par des liens lissés.
7
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
8
+ *
9
+ * Modèle : une racine = la mesure totale (colonne 0), puis N niveaux de nœuds ;
10
+ * chaque nœud (sauf la racine) référence son `parent` par libellé. La couleur
11
+ * suit le NIVEAU (cycle sur category1..8). Survol d'un nœud → infobulle
12
+ * dimension/libellé + valeur. Statique (pas de drill) — montre tous les niveaux.
13
+ *
14
+ * Props obligatoires :
15
+ * data DecompositionTreeData - { measure, levels[] }
16
+ *
17
+ * Props optionnelles :
18
+ * label string
19
+ * width number (défaut 640)
20
+ * height number (défaut 320)
21
+ * size number (alias de width)
22
+ * class string
23
+ */
24
+ export type DecompositionTreeNode = {
25
+ label: string;
26
+ value: number;
27
+ parent?: string;
28
+ };
29
+ export type DecompositionTreeLevel = {
30
+ dimension: string;
31
+ nodes: DecompositionTreeNode[];
32
+ };
33
+ export type DecompositionTreeData = {
34
+ measure: string;
35
+ levels: DecompositionTreeLevel[];
36
+ };
37
+ type DecompositionTreeChartProps = {
38
+ data: DecompositionTreeData;
39
+ label?: string;
40
+ width?: number;
41
+ height?: number;
42
+ size?: number;
43
+ class?: string;
44
+ };
45
+ declare const DecompositionTreeChart: import("svelte").Component<DecompositionTreeChartProps, {}, "">;
46
+ type DecompositionTreeChart = ReturnType<typeof DecompositionTreeChart>;
47
+ export default DecompositionTreeChart;
48
+ //# sourceMappingURL=DecompositionTreeChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecompositionTreeChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/DecompositionTreeChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC,CAAC;AAMF,KAAK,2BAA2B,GAAG;IACjC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6OJ,QAAA,MAAM,sBAAsB,iEAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,438 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Density2DChart - densité 2D NON-géographique sur axes numériques (heatmap
4
+ * binned, façon Tableau/Dataiku density). On agrège des points (x,y) en cellules
5
+ * d'une grille régulière `bins×bins` sur l'étendue [minX,maxX]×[minY,maxY] ; la
6
+ * couleur d'une cellule encode la DENSITÉ (somme des poids) normalisée sur
7
+ * l'échelle catégorielle continue category1..8 (reprise de HeatmapChart /
8
+ * AnomalySwimLane). Axes X/Y gradués (niceTicks) + légende rampe Low→High.
9
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
10
+ *
11
+ * Props obligatoires :
12
+ * data Density2DPoint[] - tableau { x, y, weight? }
13
+ *
14
+ * Props optionnelles :
15
+ * bins number (nb de bins par axe, défaut 12)
16
+ * label string
17
+ * width number (défaut 640)
18
+ * height number (défaut 320)
19
+ * size number (alias de width)
20
+ * class string
21
+ */
22
+ export type Density2DTone =
23
+ | "category1" | "category2" | "category3" | "category4"
24
+ | "category5" | "category6" | "category7" | "category8";
25
+
26
+ export type Density2DPoint = {
27
+ x: number;
28
+ y: number;
29
+ weight?: number;
30
+ };
31
+ </script>
32
+
33
+ <script lang="ts">
34
+ import ChartDataList from "./ChartDataList.svelte";
35
+
36
+ type Density2DChartProps = {
37
+ data: Density2DPoint[];
38
+ bins?: number;
39
+ label?: string;
40
+ width?: number;
41
+ height?: number;
42
+ size?: number;
43
+ class?: string;
44
+ };
45
+
46
+ let {
47
+ data = [],
48
+ bins = 12,
49
+ label,
50
+ width,
51
+ height = 320,
52
+ size,
53
+ class: className
54
+ }: Density2DChartProps = $props();
55
+
56
+ const resolvedWidth = $derived(width ?? size ?? 640);
57
+
58
+ const MARGIN = { top: 16, right: 18, bottom: 36, left: 48 };
59
+ const TONES = [
60
+ "category1","category2","category3","category4","category5","category6","category7","category8"
61
+ ] as const;
62
+
63
+ // Échelle continue : densité normalisée 0..max → category1..8 (reprise de
64
+ // HeatmapChart). max ≤ 0 ou densité non finie → category1 (intensité plancher).
65
+ function toneForDensity(density: number, densityMax: number): Density2DTone {
66
+ if (!Number.isFinite(density) || densityMax <= 0) return "category1";
67
+ const ratio = Math.max(0, Math.min(1, density / densityMax));
68
+ const index = Math.max(0, Math.min(TONES.length - 1, Math.floor(ratio * TONES.length)));
69
+ return TONES[index];
70
+ }
71
+
72
+ function niceTicks(min: number, max: number, target = 5): number[] {
73
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min === max) {
74
+ return [Number.isFinite(max) ? max : 0];
75
+ }
76
+ const range = max - min;
77
+ const rough = range / Math.max(target - 1, 1);
78
+ const pow = Math.pow(10, Math.floor(Math.log10(rough)));
79
+ const norm = rough / pow;
80
+ let step: number;
81
+ if (norm < 1.5) step = pow;
82
+ else if (norm < 3) step = 2 * pow;
83
+ else if (norm < 7) step = 5 * pow;
84
+ else step = 10 * pow;
85
+ const start = Math.floor(min / step) * step;
86
+ const end = Math.ceil(max / step) * step;
87
+ const ticks: number[] = [];
88
+ for (let v = start; v <= end + step / 2; v += step) ticks.push(Number(v.toFixed(10)));
89
+ return ticks;
90
+ }
91
+
92
+ function scaleLinear(v: number, d0: number, d1: number, r0: number, r1: number) {
93
+ if (d1 === d0) return r0;
94
+ return r0 + ((v - d0) * (r1 - r0)) / (d1 - d0);
95
+ }
96
+
97
+ function formatTick(v: number): string {
98
+ if (Math.abs(v) >= 1000) return `${(v / 1000).toFixed(v % 1000 === 0 ? 0 : 1)}k`;
99
+ return Number.isInteger(v) ? String(v) : v.toFixed(1);
100
+ }
101
+
102
+ let hoveredKey: string | null = $state(null);
103
+
104
+ const plotWidth = $derived(Math.max(resolvedWidth - MARGIN.left - MARGIN.right, 1));
105
+ const plotHeight = $derived(Math.max(height - MARGIN.top - MARGIN.bottom, 1));
106
+
107
+ // Nombre de bins effectif : entier ≥ 1, plafonné pour rester lisible.
108
+ const binCount = $derived(
109
+ Math.max(1, Math.min(40, Math.floor(Number.isFinite(bins) ? bins : 12)))
110
+ );
111
+
112
+ // Normalise : ne garde que les points aux coordonnées finies.
113
+ const validData = $derived(
114
+ data.filter((d) => d && Number.isFinite(d.x) && Number.isFinite(d.y))
115
+ );
116
+
117
+ // Étendue [minX,maxX]×[minY,maxY] + ticks « nice » pour les axes.
118
+ const scales = $derived.by(() => {
119
+ const xs = validData.map((d) => d.x);
120
+ const ys = validData.map((d) => d.y);
121
+ const xTicks = niceTicks(xs.length ? Math.min(...xs) : 0, xs.length ? Math.max(...xs) : 1);
122
+ const yTicks = niceTicks(ys.length ? Math.min(...ys) : 0, ys.length ? Math.max(...ys) : 1);
123
+ return {
124
+ xTicks,
125
+ yTicks,
126
+ xMin: xTicks[0],
127
+ xMax: xTicks[xTicks.length - 1],
128
+ yMin: yTicks[0],
129
+ yMax: yTicks[yTicks.length - 1]
130
+ };
131
+ });
132
+
133
+ type Bin = {
134
+ key: string;
135
+ ix: number;
136
+ iy: number;
137
+ density: number;
138
+ x: number;
139
+ y: number;
140
+ width: number;
141
+ height: number;
142
+ cx: number;
143
+ cy: number;
144
+ x0: number;
145
+ x1: number;
146
+ y0: number;
147
+ y1: number;
148
+ tone: Density2DTone;
149
+ };
150
+
151
+ // Binning régulier : grille binCount×binCount sur l'étendue ; chaque point
152
+ // tombe dans une cellule, sa densité = somme des poids (défaut 1).
153
+ const layout = $derived.by(() => {
154
+ const { xMin, xMax, yMin, yMax } = scales;
155
+ if (validData.length === 0 || xMax === xMin || yMax === yMin) {
156
+ return { bins: [] as Bin[], densityMax: 0 };
157
+ }
158
+ const counts = new Float64Array(binCount * binCount);
159
+ const idx = (ix: number, iy: number) => iy * binCount + ix;
160
+ for (const d of validData) {
161
+ const fx = (d.x - xMin) / (xMax - xMin);
162
+ const fy = (d.y - yMin) / (yMax - yMin);
163
+ const ix = Math.max(0, Math.min(binCount - 1, Math.floor(fx * binCount)));
164
+ const iy = Math.max(0, Math.min(binCount - 1, Math.floor(fy * binCount)));
165
+ const w = typeof d.weight === "number" && Number.isFinite(d.weight) ? d.weight : 1;
166
+ counts[idx(ix, iy)] += w;
167
+ }
168
+ let densityMax = 0;
169
+ for (let i = 0; i < counts.length; i++) densityMax = Math.max(densityMax, counts[i]);
170
+
171
+ const cellW = plotWidth / binCount;
172
+ const cellH = plotHeight / binCount;
173
+ const out: Bin[] = [];
174
+ for (let iy = 0; iy < binCount; iy++) {
175
+ for (let ix = 0; ix < binCount; ix++) {
176
+ const density = counts[idx(ix, iy)];
177
+ if (density <= 0) continue;
178
+ // iy=0 en bas (y croissant vers le haut) → inverse l'axe écran.
179
+ const x = MARGIN.left + ix * cellW;
180
+ const y = MARGIN.top + (binCount - 1 - iy) * cellH;
181
+ const x0 = xMin + (ix / binCount) * (xMax - xMin);
182
+ const x1 = xMin + ((ix + 1) / binCount) * (xMax - xMin);
183
+ const y0 = yMin + (iy / binCount) * (yMax - yMin);
184
+ const y1 = yMin + ((iy + 1) / binCount) * (yMax - yMin);
185
+ out.push({
186
+ key: `${ix}-${iy}`,
187
+ ix,
188
+ iy,
189
+ density,
190
+ x,
191
+ y,
192
+ width: Math.max(cellW - 1, 1),
193
+ height: Math.max(cellH - 1, 1),
194
+ cx: x + cellW / 2,
195
+ cy: y + cellH / 2,
196
+ x0,
197
+ x1,
198
+ y0,
199
+ y1,
200
+ tone: toneForDensity(density, densityMax)
201
+ });
202
+ }
203
+ }
204
+ return { bins: out, densityMax };
205
+ });
206
+
207
+ const binCells = $derived(layout.bins);
208
+
209
+ const xAxisTicks = $derived.by(() => {
210
+ const { xTicks, xMin, xMax } = scales;
211
+ return xTicks.map((t) => ({
212
+ value: t,
213
+ x: MARGIN.left + scaleLinear(t, xMin, xMax, 0, plotWidth)
214
+ }));
215
+ });
216
+
217
+ const yAxisTicks = $derived.by(() => {
218
+ const { yTicks, yMin, yMax } = scales;
219
+ return yTicks.map((t) => ({
220
+ value: t,
221
+ y: MARGIN.top + scaleLinear(t, yMin, yMax, plotHeight, 0)
222
+ }));
223
+ });
224
+
225
+ const dataValueItems = $derived(
226
+ binCells.map(
227
+ (b) => `[${formatTick(b.x0)}–${formatTick(b.x1)}] × [${formatTick(b.y0)}–${formatTick(b.y1)}]: ${b.density}`
228
+ )
229
+ );
230
+
231
+ const legendItems = $derived(TONES.map((tone) => ({ tone })));
232
+ const hasLegend = $derived(binCells.length > 0);
233
+
234
+ function handlePointerMove(event: PointerEvent) {
235
+ const target = event.target;
236
+ if (!(target instanceof Element)) {
237
+ hoveredKey = null;
238
+ return;
239
+ }
240
+ const key = target.getAttribute("data-chart-key");
241
+ hoveredKey = key ?? null;
242
+ }
243
+
244
+ const hoveredCell = $derived.by(() => {
245
+ if (hoveredKey === null) return null;
246
+ return binCells.find((b) => b.key === hoveredKey) ?? null;
247
+ });
248
+
249
+ const classes = () => ["st-density2DChart", className].filter(Boolean).join(" ");
250
+ </script>
251
+
252
+ <div class={classes()}>
253
+ <div
254
+ class="st-density2DChart__visual"
255
+ role="img"
256
+ aria-label={label}
257
+ onpointermove={handlePointerMove}
258
+ onpointerleave={() => (hoveredKey = null)}
259
+ >
260
+ <svg
261
+ viewBox="0 0 {resolvedWidth} {height}"
262
+ preserveAspectRatio="xMidYMid meet"
263
+ width="100%"
264
+ height="100%"
265
+ focusable="false"
266
+ aria-hidden="true"
267
+ >
268
+ <!-- tick labels (axe Y) -->
269
+ {#each yAxisTicks as tick (tick.value)}
270
+ <text class="st-density2DChart__tickLabel" x={MARGIN.left - 8} y={tick.y} text-anchor="end" dominant-baseline="middle">
271
+ {formatTick(tick.value)}
272
+ </text>
273
+ {/each}
274
+
275
+ <!-- tick labels (axe X) -->
276
+ {#each xAxisTicks as tick (tick.value)}
277
+ <text class="st-density2DChart__tickLabel" x={tick.x} y={height - MARGIN.bottom + 16} text-anchor="middle">
278
+ {formatTick(tick.value)}
279
+ </text>
280
+ {/each}
281
+
282
+ <!-- axes -->
283
+ <line class="st-density2DChart__axis" x1={MARGIN.left} x2={MARGIN.left} y1={MARGIN.top} y2={height - MARGIN.bottom} />
284
+ <line class="st-density2DChart__axis" x1={MARGIN.left} x2={resolvedWidth - MARGIN.right} y1={height - MARGIN.bottom} y2={height - MARGIN.bottom} />
285
+
286
+ <!-- cellules de densité (grille bins×bins, couleur ∝ densité) -->
287
+ {#each binCells as cell (cell.key)}
288
+ <rect
289
+ class="st-density2DChart__cell st-density2DChart__cell--{cell.tone}"
290
+ class:st-density2DChart__cell--dim={hoveredKey !== null && hoveredKey !== cell.key}
291
+ x={cell.x}
292
+ y={cell.y}
293
+ width={cell.width}
294
+ height={cell.height}
295
+ rx="1"
296
+ data-chart-key={cell.key}
297
+ />
298
+ {/each}
299
+ </svg>
300
+ </div>
301
+
302
+ {#if hasLegend}
303
+ <div class="st-density2DChart__legend" aria-hidden="true">
304
+ <span class="st-density2DChart__legendText">Low</span>
305
+ <span class="st-density2DChart__legendRamp">
306
+ {#each legendItems as item (item.tone)}
307
+ <span class="st-density2DChart__legendSwatch st-density2DChart__legendSwatch--{item.tone}"></span>
308
+ {/each}
309
+ </span>
310
+ <span class="st-density2DChart__legendText">High</span>
311
+ </div>
312
+ {/if}
313
+
314
+ <ChartDataList label={label ?? "density 2d"} items={dataValueItems} />
315
+
316
+ {#if hoveredCell}
317
+ {@const cell = hoveredCell}
318
+ <div
319
+ class="st-density2DChart__tooltip"
320
+ role="presentation"
321
+ style="left: {(cell.cx / resolvedWidth) * 100}%; top: {(cell.cy / height) * 100}%"
322
+ >
323
+ <span class="st-density2DChart__tooltipLabel">[{formatTick(cell.x0)}–{formatTick(cell.x1)}] × [{formatTick(cell.y0)}–{formatTick(cell.y1)}]</span>
324
+ <span class="st-density2DChart__tooltipValue">{cell.density}</span>
325
+ </div>
326
+ {/if}
327
+ </div>
328
+
329
+ <style>
330
+ .st-density2DChart {
331
+ color: var(--st-semantic-text-secondary);
332
+ display: block;
333
+ font-family: inherit;
334
+ position: relative;
335
+ width: 100%;
336
+ }
337
+
338
+ .st-density2DChart svg {
339
+ display: block;
340
+ overflow: visible;
341
+ }
342
+
343
+ .st-density2DChart__visual {
344
+ display: block;
345
+ }
346
+
347
+ .st-density2DChart__axis {
348
+ stroke: var(--st-semantic-border-subtle);
349
+ stroke-width: 1;
350
+ }
351
+
352
+ .st-density2DChart__tickLabel {
353
+ fill: var(--st-semantic-text-secondary);
354
+ font-size: 0.6875rem;
355
+ }
356
+
357
+ .st-density2DChart__cell {
358
+ cursor: pointer;
359
+ stroke: var(--st-semantic-surface-default, Canvas);
360
+ stroke-width: 0.5;
361
+ transition: opacity 120ms ease;
362
+ }
363
+
364
+ .st-density2DChart__cell--dim {
365
+ opacity: 0.4;
366
+ }
367
+
368
+ .st-density2DChart__cell--category1,
369
+ .st-density2DChart__legendSwatch--category1 { fill: var(--st-semantic-data-category1); background: var(--st-semantic-data-category1); }
370
+ .st-density2DChart__cell--category2,
371
+ .st-density2DChart__legendSwatch--category2 { fill: var(--st-semantic-data-category2); background: var(--st-semantic-data-category2); }
372
+ .st-density2DChart__cell--category3,
373
+ .st-density2DChart__legendSwatch--category3 { fill: var(--st-semantic-data-category3); background: var(--st-semantic-data-category3); }
374
+ .st-density2DChart__cell--category4,
375
+ .st-density2DChart__legendSwatch--category4 { fill: var(--st-semantic-data-category4); background: var(--st-semantic-data-category4); }
376
+ .st-density2DChart__cell--category5,
377
+ .st-density2DChart__legendSwatch--category5 { fill: var(--st-semantic-data-category5); background: var(--st-semantic-data-category5); }
378
+ .st-density2DChart__cell--category6,
379
+ .st-density2DChart__legendSwatch--category6 { fill: var(--st-semantic-data-category6); background: var(--st-semantic-data-category6); }
380
+ .st-density2DChart__cell--category7,
381
+ .st-density2DChart__legendSwatch--category7 { fill: var(--st-semantic-data-category7); background: var(--st-semantic-data-category7); }
382
+ .st-density2DChart__cell--category8,
383
+ .st-density2DChart__legendSwatch--category8 { fill: var(--st-semantic-data-category8); background: var(--st-semantic-data-category8); }
384
+
385
+ .st-density2DChart__legend {
386
+ align-items: center;
387
+ display: flex;
388
+ gap: var(--st-spacing-2, 0.5rem);
389
+ margin-top: var(--st-spacing-2, 0.5rem);
390
+ }
391
+
392
+ .st-density2DChart__legendRamp {
393
+ display: inline-grid;
394
+ grid-template-columns: repeat(8, minmax(0.75rem, 1fr));
395
+ min-width: 8rem;
396
+ }
397
+
398
+ .st-density2DChart__legendSwatch {
399
+ display: block;
400
+ height: 0.5rem;
401
+ }
402
+
403
+ .st-density2DChart__legendText {
404
+ color: var(--st-semantic-text-secondary);
405
+ font-size: 0.75rem;
406
+ }
407
+
408
+ .st-density2DChart__tooltip {
409
+ background: var(--st-semantic-surface-inverse);
410
+ border-radius: var(--st-radius-sm, 0.25rem);
411
+ color: var(--st-semantic-text-inverse);
412
+ display: inline-flex;
413
+ flex-direction: column;
414
+ font-size: 0.75rem;
415
+ gap: 0.125rem;
416
+ line-height: 1.2;
417
+ padding: 0.375rem 0.5rem;
418
+ pointer-events: none;
419
+ position: absolute;
420
+ transform: translate(-50%, calc(-100% - 8px));
421
+ white-space: nowrap;
422
+ z-index: 1;
423
+ }
424
+
425
+ .st-density2DChart__tooltipLabel {
426
+ font-weight: 600;
427
+ }
428
+
429
+ .st-density2DChart__tooltipValue {
430
+ opacity: 0.85;
431
+ }
432
+
433
+ @media (prefers-reduced-motion: reduce) {
434
+ .st-density2DChart__cell {
435
+ transition: none;
436
+ }
437
+ }
438
+ </style>
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Density2DChart - densité 2D NON-géographique sur axes numériques (heatmap
3
+ * binned, façon Tableau/Dataiku density). On agrège des points (x,y) en cellules
4
+ * d'une grille régulière `bins×bins` sur l'étendue [minX,maxX]×[minY,maxY] ; la
5
+ * couleur d'une cellule encode la DENSITÉ (somme des poids) normalisée sur
6
+ * l'échelle catégorielle continue category1..8 (reprise de HeatmapChart /
7
+ * AnomalySwimLane). Axes X/Y gradués (niceTicks) + légende rampe Low→High.
8
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
9
+ *
10
+ * Props obligatoires :
11
+ * data Density2DPoint[] - tableau { x, y, weight? }
12
+ *
13
+ * Props optionnelles :
14
+ * bins number (nb de bins par axe, défaut 12)
15
+ * label string
16
+ * width number (défaut 640)
17
+ * height number (défaut 320)
18
+ * size number (alias de width)
19
+ * class string
20
+ */
21
+ export type Density2DTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
22
+ export type Density2DPoint = {
23
+ x: number;
24
+ y: number;
25
+ weight?: number;
26
+ };
27
+ type Density2DChartProps = {
28
+ data: Density2DPoint[];
29
+ bins?: number;
30
+ label?: string;
31
+ width?: number;
32
+ height?: number;
33
+ size?: number;
34
+ class?: string;
35
+ };
36
+ declare const Density2DChart: import("svelte").Component<Density2DChartProps, {}, "">;
37
+ type Density2DChart = ReturnType<typeof Density2DChart>;
38
+ export default Density2DChart;
39
+ //# sourceMappingURL=Density2DChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Density2DChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/Density2DChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,aAAa,GACrB,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GACrD,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6QJ,QAAA,MAAM,cAAc,yDAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -104,6 +104,8 @@ export { default as RibbonChart } from "./RibbonChart.svelte";
104
104
  export { default as AnomalySwimLaneChart } from "./AnomalySwimLaneChart.svelte";
105
105
  export { default as FlamegraphChart } from "./FlamegraphChart.svelte";
106
106
  export { default as TraceWaterfallChart } from "./TraceWaterfallChart.svelte";
107
+ export { default as DecompositionTreeChart } from "./DecompositionTreeChart.svelte";
108
+ export { default as Density2DChart } from "./Density2DChart.svelte";
107
109
  export { default as GeoMap } from "./GeoMap.svelte";
108
110
  export { default as Header } from "./Header.svelte";
109
111
  export { default as HeatmapChart } from "./HeatmapChart.svelte";
@@ -234,6 +236,8 @@ export type { RibbonChartTone, RibbonChartDatum } from "./RibbonChart.svelte";
234
236
  export type { AnomalySwimLaneTone, AnomalySwimLaneBucket, AnomalySwimLaneSeries } from "./AnomalySwimLaneChart.svelte";
235
237
  export type { FlamegraphNode } from "./FlamegraphChart.svelte";
236
238
  export type { TraceSpan } from "./TraceWaterfallChart.svelte";
239
+ export type { DecompositionTreeNode, DecompositionTreeLevel, DecompositionTreeData } from "./DecompositionTreeChart.svelte";
240
+ export type { Density2DTone, Density2DPoint } from "./Density2DChart.svelte";
237
241
  export type { FunnelChartTone, FunnelChartDatum } from "./FunnelChart.svelte";
238
242
  export type { ViolinChartDatum, ViolinChartTone } from "./ViolinChart.svelte";
239
243
  export type { WaterfallType, WaterfallChartDatum } from "./WaterfallChart.svelte";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACxG,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvF,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzG,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACnG,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvF,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACnG,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACnG,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrH,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACjG,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,YAAY,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACpG,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC1H,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACtF,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChF,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5H,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtF,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpF,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -94,6 +94,8 @@ export { default as RibbonChart } from "./RibbonChart.svelte";
94
94
  export { default as AnomalySwimLaneChart } from "./AnomalySwimLaneChart.svelte";
95
95
  export { default as FlamegraphChart } from "./FlamegraphChart.svelte";
96
96
  export { default as TraceWaterfallChart } from "./TraceWaterfallChart.svelte";
97
+ export { default as DecompositionTreeChart } from "./DecompositionTreeChart.svelte";
98
+ export { default as Density2DChart } from "./Density2DChart.svelte";
97
99
  export { default as GeoMap } from "./GeoMap.svelte";
98
100
  export { default as Header } from "./Header.svelte";
99
101
  export { default as HeatmapChart } from "./HeatmapChart.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-svelte",
3
- "version": "0.34.37",
3
+ "version": "0.34.38",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"