@sentropic/design-system-svelte 0.34.0 → 0.34.21

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.
Files changed (112) hide show
  1. package/dist/AppChrome.svelte +660 -0
  2. package/dist/AppChrome.svelte.d.ts +74 -0
  3. package/dist/AppChrome.svelte.d.ts.map +1 -0
  4. package/dist/AppChrome.test.d.ts +2 -0
  5. package/dist/AppChrome.test.d.ts.map +1 -0
  6. package/dist/AppChrome.test.js +122 -0
  7. package/dist/AppHeader.svelte +159 -1
  8. package/dist/AppHeader.svelte.d.ts +18 -1
  9. package/dist/AppHeader.svelte.d.ts.map +1 -1
  10. package/dist/ArcDiagramChart.svelte +380 -0
  11. package/dist/ArcDiagramChart.svelte.d.ts +43 -0
  12. package/dist/ArcDiagramChart.svelte.d.ts.map +1 -0
  13. package/dist/AreaRangeChart.svelte +487 -0
  14. package/dist/AreaRangeChart.svelte.d.ts +38 -0
  15. package/dist/AreaRangeChart.svelte.d.ts.map +1 -0
  16. package/dist/AreaSplineRangeChart.svelte +478 -0
  17. package/dist/AreaSplineRangeChart.svelte.d.ts +37 -0
  18. package/dist/AreaSplineRangeChart.svelte.d.ts.map +1 -0
  19. package/dist/BellCurveChart.svelte +487 -0
  20. package/dist/BellCurveChart.svelte.d.ts +40 -0
  21. package/dist/BellCurveChart.svelte.d.ts.map +1 -0
  22. package/dist/Calendar.svelte +11 -0
  23. package/dist/ChatThread.svelte +32 -1
  24. package/dist/ChatThread.svelte.d.ts +14 -0
  25. package/dist/ChatThread.svelte.d.ts.map +1 -1
  26. package/dist/ColumnPyramidChart.svelte +332 -0
  27. package/dist/ColumnPyramidChart.svelte.d.ts +35 -0
  28. package/dist/ColumnPyramidChart.svelte.d.ts.map +1 -0
  29. package/dist/ColumnRangeChart.svelte +432 -0
  30. package/dist/ColumnRangeChart.svelte.d.ts +42 -0
  31. package/dist/ColumnRangeChart.svelte.d.ts.map +1 -0
  32. package/dist/Combobox.svelte +3 -0
  33. package/dist/ConfigItemCard.svelte +303 -0
  34. package/dist/ConfigItemCard.svelte.d.ts +37 -0
  35. package/dist/ConfigItemCard.svelte.d.ts.map +1 -0
  36. package/dist/ContentSwitcher.svelte +1 -1
  37. package/dist/DatePicker.svelte +3 -0
  38. package/dist/DependencyWheelChart.svelte +413 -0
  39. package/dist/DependencyWheelChart.svelte.d.ts +42 -0
  40. package/dist/DependencyWheelChart.svelte.d.ts.map +1 -0
  41. package/dist/DumbbellChart.svelte +403 -0
  42. package/dist/DumbbellChart.svelte.d.ts +44 -0
  43. package/dist/DumbbellChart.svelte.d.ts.map +1 -0
  44. package/dist/ErrorBarChart.svelte +428 -0
  45. package/dist/ErrorBarChart.svelte.d.ts +40 -0
  46. package/dist/ErrorBarChart.svelte.d.ts.map +1 -0
  47. package/dist/FieldCard.svelte +220 -0
  48. package/dist/FieldCard.svelte.d.ts +28 -0
  49. package/dist/FieldCard.svelte.d.ts.map +1 -0
  50. package/dist/GanttChart.svelte +410 -0
  51. package/dist/GanttChart.svelte.d.ts +39 -0
  52. package/dist/GanttChart.svelte.d.ts.map +1 -0
  53. package/dist/HLCChart.svelte +330 -0
  54. package/dist/HLCChart.svelte.d.ts +32 -0
  55. package/dist/HLCChart.svelte.d.ts.map +1 -0
  56. package/dist/HeikinAshiChart.svelte +365 -0
  57. package/dist/HeikinAshiChart.svelte.d.ts +37 -0
  58. package/dist/HeikinAshiChart.svelte.d.ts.map +1 -0
  59. package/dist/HollowCandlestickChart.svelte +357 -0
  60. package/dist/HollowCandlestickChart.svelte.d.ts +34 -0
  61. package/dist/HollowCandlestickChart.svelte.d.ts.map +1 -0
  62. package/dist/Input.svelte +3 -0
  63. package/dist/ItemChart.svelte +389 -0
  64. package/dist/ItemChart.svelte.d.ts +67 -0
  65. package/dist/ItemChart.svelte.d.ts.map +1 -0
  66. package/dist/LollipopChart.svelte +1 -1
  67. package/dist/MultiSelect.svelte +3 -0
  68. package/dist/NumberInput.svelte +3 -0
  69. package/dist/OHLCChart.svelte +343 -0
  70. package/dist/OHLCChart.svelte.d.ts +33 -0
  71. package/dist/OHLCChart.svelte.d.ts.map +1 -0
  72. package/dist/OrganizationChart.svelte +284 -0
  73. package/dist/OrganizationChart.svelte.d.ts +19 -0
  74. package/dist/OrganizationChart.svelte.d.ts.map +1 -0
  75. package/dist/PasswordInput.svelte +3 -0
  76. package/dist/PolygonChart.svelte +189 -0
  77. package/dist/PolygonChart.svelte.d.ts +17 -0
  78. package/dist/PolygonChart.svelte.d.ts.map +1 -0
  79. package/dist/ScoreCard.svelte +172 -0
  80. package/dist/ScoreCard.svelte.d.ts +27 -0
  81. package/dist/ScoreCard.svelte.d.ts.map +1 -0
  82. package/dist/Search.svelte +7 -5
  83. package/dist/Select.svelte +3 -0
  84. package/dist/StreamgraphChart.svelte +283 -0
  85. package/dist/StreamgraphChart.svelte.d.ts +23 -0
  86. package/dist/StreamgraphChart.svelte.d.ts.map +1 -0
  87. package/dist/StreamingMessage.svelte +44 -2
  88. package/dist/StreamingMessage.svelte.d.ts +18 -1
  89. package/dist/StreamingMessage.svelte.d.ts.map +1 -1
  90. package/dist/TileMapChart.svelte +314 -0
  91. package/dist/TileMapChart.svelte.d.ts +45 -0
  92. package/dist/TileMapChart.svelte.d.ts.map +1 -0
  93. package/dist/TimePicker.svelte +3 -0
  94. package/dist/TimelineChart.svelte +362 -0
  95. package/dist/TimelineChart.svelte.d.ts +22 -0
  96. package/dist/TimelineChart.svelte.d.ts.map +1 -0
  97. package/dist/TreegraphChart.svelte +281 -0
  98. package/dist/TreegraphChart.svelte.d.ts +19 -0
  99. package/dist/TreegraphChart.svelte.d.ts.map +1 -0
  100. package/dist/VariablePieChart.svelte +313 -0
  101. package/dist/VariablePieChart.svelte.d.ts +52 -0
  102. package/dist/VariablePieChart.svelte.d.ts.map +1 -0
  103. package/dist/VennChart.svelte +348 -0
  104. package/dist/VennChart.svelte.d.ts +72 -0
  105. package/dist/VennChart.svelte.d.ts.map +1 -0
  106. package/dist/WordCloudChart.svelte +279 -0
  107. package/dist/WordCloudChart.svelte.d.ts +18 -0
  108. package/dist/WordCloudChart.svelte.d.ts.map +1 -0
  109. package/dist/index.d.ts +56 -0
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +28 -0
  112. package/package.json +5 -3
@@ -0,0 +1,365 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * HeikinAshiChart - chandeliers Heikin-Ashi (finance lissée).
4
+ * Mêmes données OHLC que CandlestickChart, mais valeurs RECALCULÉES en Heikin-Ashi :
5
+ * haClose = (open + high + low + close) / 4
6
+ * haOpen = 1re bougie : (open + close) / 2 ; sinon (haOpen_prev + haClose_prev) / 2
7
+ * haHigh = max(high, haOpen, haClose)
8
+ * haLow = min(low, haOpen, haClose)
9
+ * Couleur hausse (haClose ≥ haOpen) / baisse via les mêmes tokens que Candlestick.
10
+ * API canonique (référence Svelte, React/Vue doivent s'aligner)
11
+ *
12
+ * Props obligatoires :
13
+ * data HeikinAshiChartDatum[] - tableau {label, open, high, low, close}
14
+ * label string
15
+ *
16
+ * Props optionnelles :
17
+ * width number (défaut 480)
18
+ * height number (défaut 240)
19
+ * class string
20
+ */
21
+ export type HeikinAshiChartDatum = {
22
+ label: string;
23
+ open: number;
24
+ high: number;
25
+ low: number;
26
+ close: number;
27
+ };
28
+ </script>
29
+
30
+ <script lang="ts">
31
+ import ChartDataList from "./ChartDataList.svelte";
32
+
33
+ type HeikinAshiChartProps = {
34
+ data: HeikinAshiChartDatum[];
35
+ label: string;
36
+ width?: number;
37
+ height?: number;
38
+ class?: string;
39
+ };
40
+
41
+ let {
42
+ data = [],
43
+ label,
44
+ width = 480,
45
+ height = 240,
46
+ class: className
47
+ }: HeikinAshiChartProps = $props();
48
+
49
+ const MARGIN = { top: 12, right: 16, bottom: 32, left: 52 };
50
+
51
+ type HACandle = {
52
+ label: string;
53
+ haOpen: number;
54
+ haHigh: number;
55
+ haLow: number;
56
+ haClose: number;
57
+ };
58
+
59
+ function scaleLinear(v: number, d0: number, d1: number, r0: number, r1: number) {
60
+ if (d1 === d0) return r0;
61
+ return r0 + ((v - d0) * (r1 - r0)) / (d1 - d0);
62
+ }
63
+
64
+ function niceTicks(min: number, max: number, target = 5): number[] {
65
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min === max) {
66
+ const base = Number.isFinite(max) ? max : 0;
67
+ return [base];
68
+ }
69
+ const range = max - min;
70
+ const rough = range / Math.max(target - 1, 1);
71
+ const pow = Math.pow(10, Math.floor(Math.log10(rough)));
72
+ const norm = rough / pow;
73
+ let step: number;
74
+ if (norm < 1.5) step = 1 * pow;
75
+ else if (norm < 3) step = 2 * pow;
76
+ else if (norm < 7) step = 5 * pow;
77
+ else step = 10 * pow;
78
+ const start = Math.floor(min / step) * step;
79
+ const end = Math.ceil(max / step) * step;
80
+ const ticks: number[] = [];
81
+ for (let v = start; v <= end + step / 2; v += step) {
82
+ ticks.push(Number(v.toFixed(10)));
83
+ }
84
+ return ticks;
85
+ }
86
+
87
+ function formatTick(v: number): string {
88
+ if (Math.abs(v) >= 1000) return `${(v / 1000).toFixed(v % 1000 === 0 ? 0 : 1)}k`;
89
+ if (Number.isInteger(v)) return String(v);
90
+ return v.toFixed(1);
91
+ }
92
+
93
+ function fmt(v: number): string {
94
+ return Number.isInteger(v) ? String(v) : v.toFixed(2);
95
+ }
96
+
97
+ // Heikin-Ashi : récurrence sur haOpen
98
+ function computeHeikinAshi(rows: HeikinAshiChartDatum[]): HACandle[] {
99
+ const out: HACandle[] = [];
100
+ for (let i = 0; i < rows.length; i++) {
101
+ const d = rows[i];
102
+ const haClose = (d.open + d.high + d.low + d.close) / 4;
103
+ const haOpen =
104
+ i === 0
105
+ ? (d.open + d.close) / 2
106
+ : (out[i - 1].haOpen + out[i - 1].haClose) / 2;
107
+ const haHigh = Math.max(d.high, haOpen, haClose);
108
+ const haLow = Math.min(d.low, haOpen, haClose);
109
+ out.push({ label: d.label, haOpen, haHigh, haLow, haClose });
110
+ }
111
+ return out;
112
+ }
113
+
114
+ let hoveredIndex: number | null = $state(null);
115
+
116
+ const plotWidth = $derived(Math.max(width - MARGIN.left - MARGIN.right, 1));
117
+ const plotHeight = $derived(Math.max(height - MARGIN.top - MARGIN.bottom, 1));
118
+
119
+ // Filtrer les bougies invalides AVANT le calcul HA et le domaine
120
+ const validData = $derived(
121
+ data.filter((d) =>
122
+ Number.isFinite(d.open) &&
123
+ Number.isFinite(d.high) &&
124
+ Number.isFinite(d.low) &&
125
+ Number.isFinite(d.close)
126
+ )
127
+ );
128
+
129
+ const haData = $derived(computeHeikinAshi(validData));
130
+
131
+ const domainBounds = $derived.by(() => {
132
+ const allVals: number[] = [];
133
+ for (const d of haData) {
134
+ // Domaine sur les valeurs HA (haOpen/haHigh/haLow/haClose)
135
+ allVals.push(d.haOpen, d.haHigh, d.haLow, d.haClose);
136
+ }
137
+ if (allVals.length === 0) return { rawMin: 0, rawMax: 1 };
138
+ const rawMin = Math.min(...allVals);
139
+ const rawMax = Math.max(...allVals);
140
+ // Domaine plat → fallback range 1 pour éviter division par 0
141
+ return { rawMin, rawMax: rawMax === rawMin ? rawMin + 1 : rawMax };
142
+ });
143
+
144
+ const ticks = $derived(niceTicks(domainBounds.rawMin, domainBounds.rawMax, 5));
145
+ const domainMin = $derived(ticks[0]);
146
+ const domainMax = $derived(ticks[ticks.length - 1]);
147
+
148
+ const candles = $derived.by(() => {
149
+ if (haData.length === 0) return [];
150
+ const band = plotWidth / haData.length;
151
+ const bodyW = band * 0.55;
152
+
153
+ return haData.map((d, i) => {
154
+ const bullish = d.haClose >= d.haOpen;
155
+ const centerX = MARGIN.left + band * i + band / 2;
156
+
157
+ const bodyTop = MARGIN.top + scaleLinear(Math.max(d.haOpen, d.haClose), domainMin, domainMax, plotHeight, 0);
158
+ const bodyBot = MARGIN.top + scaleLinear(Math.min(d.haOpen, d.haClose), domainMin, domainMax, plotHeight, 0);
159
+ const highY = MARGIN.top + scaleLinear(d.haHigh, domainMin, domainMax, plotHeight, 0);
160
+ const lowY = MARGIN.top + scaleLinear(d.haLow, domainMin, domainMax, plotHeight, 0);
161
+
162
+ return {
163
+ datum: d,
164
+ index: i,
165
+ bullish,
166
+ centerX,
167
+ bodyX: centerX - bodyW / 2,
168
+ bodyY: bodyTop,
169
+ bodyW,
170
+ bodyH: Math.max(bodyBot - bodyTop, 0.5),
171
+ wickHighY: highY,
172
+ wickLowY: lowY,
173
+ tooltipY: bodyTop
174
+ };
175
+ });
176
+ });
177
+
178
+ const dataValueItems = $derived(
179
+ haData.map((d) => `${d.label}: O ${fmt(d.haOpen)} H ${fmt(d.haHigh)} L ${fmt(d.haLow)} C ${fmt(d.haClose)}`)
180
+ );
181
+
182
+ function handlePointerMove(event: PointerEvent) {
183
+ const target = event.target;
184
+ if (!(target instanceof Element)) { hoveredIndex = null; return; }
185
+ const idx = Number(target.getAttribute("data-chart-index"));
186
+ hoveredIndex = Number.isInteger(idx) ? idx : null;
187
+ }
188
+
189
+ const classes = () => ["st-heikinAshiChart", className].filter(Boolean).join(" ");
190
+ </script>
191
+
192
+ <div class={classes()}>
193
+ <div
194
+ class="st-heikinAshiChart__visual"
195
+ role="img"
196
+ aria-label={label}
197
+ onpointermove={handlePointerMove}
198
+ onpointerleave={() => (hoveredIndex = null)}
199
+ >
200
+ <svg
201
+ viewBox="0 0 {width} {height}"
202
+ preserveAspectRatio="xMidYMid meet"
203
+ width="100%"
204
+ height="100%"
205
+ focusable="false"
206
+ aria-hidden="true"
207
+ >
208
+ <!-- gridlines + tick labels -->
209
+ {#each ticks as tick (tick)}
210
+ {@const ty = MARGIN.top + scaleLinear(tick, domainMin, domainMax, plotHeight, 0)}
211
+ <line class="st-heikinAshiChart__grid" x1={MARGIN.left} x2={width - MARGIN.right} y1={ty} y2={ty} />
212
+ <text class="st-heikinAshiChart__tickLabel" x={MARGIN.left - 6} y={ty} text-anchor="end" dominant-baseline="middle">
213
+ {formatTick(tick)}
214
+ </text>
215
+ {/each}
216
+
217
+ <!-- axes -->
218
+ <line class="st-heikinAshiChart__axis" x1={MARGIN.left} x2={MARGIN.left} y1={MARGIN.top} y2={height - MARGIN.bottom} />
219
+ <line class="st-heikinAshiChart__axis" x1={MARGIN.left} x2={width - MARGIN.right} y1={height - MARGIN.bottom} y2={height - MARGIN.bottom} />
220
+
221
+ {#each candles as c, i (`${i}-${c.datum.label}`)}
222
+ <!-- wick -->
223
+ <line
224
+ class="st-heikinAshiChart__wick st-heikinAshiChart__wick--{c.bullish ? 'up' : 'down'}"
225
+ x1={c.centerX}
226
+ x2={c.centerX}
227
+ y1={c.wickHighY}
228
+ y2={c.wickLowY}
229
+ data-chart-index={i}
230
+ />
231
+ <!-- body -->
232
+ <rect
233
+ class="st-heikinAshiChart__body st-heikinAshiChart__body--{c.bullish ? 'up' : 'down'}"
234
+ class:st-heikinAshiChart__body--dim={hoveredIndex !== null && hoveredIndex !== i}
235
+ x={c.bodyX}
236
+ y={c.bodyY}
237
+ width={c.bodyW}
238
+ height={c.bodyH}
239
+ rx="1"
240
+ data-chart-index={i}
241
+ />
242
+ <!-- category label -->
243
+ <text
244
+ class="st-heikinAshiChart__categoryLabel"
245
+ x={c.centerX}
246
+ y={height - MARGIN.bottom + 16}
247
+ text-anchor="middle"
248
+ >
249
+ {c.datum.label}
250
+ </text>
251
+ {/each}
252
+ </svg>
253
+ </div>
254
+
255
+ <ChartDataList {label} items={dataValueItems} />
256
+
257
+ {#if hoveredIndex !== null && candles[hoveredIndex]}
258
+ {@const c = candles[hoveredIndex]}
259
+ <div
260
+ class="st-heikinAshiChart__tooltip"
261
+ role="presentation"
262
+ style="left: {(c.centerX / width) * 100}%; top: {(c.tooltipY / height) * 100}%"
263
+ >
264
+ <span class="st-heikinAshiChart__tooltipLabel">{c.datum.label}</span>
265
+ <span class="st-heikinAshiChart__tooltipValue">O {fmt(c.datum.haOpen)} H {fmt(c.datum.haHigh)} L {fmt(c.datum.haLow)} C {fmt(c.datum.haClose)}</span>
266
+ </div>
267
+ {/if}
268
+ </div>
269
+
270
+ <style>
271
+ .st-heikinAshiChart {
272
+ color: var(--st-semantic-text-secondary);
273
+ display: block;
274
+ font-family: inherit;
275
+ position: relative;
276
+ width: 100%;
277
+ }
278
+
279
+ .st-heikinAshiChart svg {
280
+ display: block;
281
+ overflow: visible;
282
+ }
283
+
284
+ .st-heikinAshiChart__visual {
285
+ display: block;
286
+ }
287
+
288
+ .st-heikinAshiChart__axis {
289
+ stroke: var(--st-semantic-border-subtle);
290
+ stroke-width: 1;
291
+ }
292
+
293
+ .st-heikinAshiChart__grid {
294
+ stroke: var(--st-semantic-border-subtle);
295
+ stroke-dasharray: 2 3;
296
+ stroke-width: 1;
297
+ opacity: 0.7;
298
+ }
299
+
300
+ .st-heikinAshiChart__wick {
301
+ stroke-width: 1.5;
302
+ }
303
+
304
+ .st-heikinAshiChart__wick--up {
305
+ stroke: var(--st-semantic-feedback-success);
306
+ }
307
+
308
+ .st-heikinAshiChart__wick--down {
309
+ stroke: var(--st-semantic-feedback-error);
310
+ }
311
+
312
+ .st-heikinAshiChart__body {
313
+ cursor: pointer;
314
+ transition: opacity 120ms ease;
315
+ }
316
+
317
+ .st-heikinAshiChart__body--dim {
318
+ opacity: 0.4;
319
+ }
320
+
321
+ .st-heikinAshiChart__body--up {
322
+ fill: var(--st-semantic-feedback-success);
323
+ }
324
+
325
+ .st-heikinAshiChart__body--down {
326
+ fill: var(--st-semantic-feedback-error);
327
+ }
328
+
329
+ @media (prefers-reduced-motion: reduce) {
330
+ .st-heikinAshiChart__body {
331
+ transition: none;
332
+ }
333
+ }
334
+
335
+ .st-heikinAshiChart__tickLabel,
336
+ .st-heikinAshiChart__categoryLabel {
337
+ fill: var(--st-semantic-text-secondary);
338
+ font-size: 0.6875rem;
339
+ }
340
+
341
+ .st-heikinAshiChart__tooltip {
342
+ background: var(--st-semantic-surface-inverse);
343
+ border-radius: var(--st-radius-sm, 0.25rem);
344
+ color: var(--st-semantic-text-inverse);
345
+ display: inline-flex;
346
+ flex-direction: column;
347
+ font-size: 0.75rem;
348
+ gap: 0.125rem;
349
+ line-height: 1.2;
350
+ padding: 0.375rem 0.5rem;
351
+ pointer-events: none;
352
+ position: absolute;
353
+ transform: translate(-50%, calc(-100% - 8px));
354
+ white-space: nowrap;
355
+ z-index: 1;
356
+ }
357
+
358
+ .st-heikinAshiChart__tooltipLabel {
359
+ font-weight: 600;
360
+ }
361
+
362
+ .st-heikinAshiChart__tooltipValue {
363
+ opacity: 0.85;
364
+ }
365
+ </style>
@@ -0,0 +1,37 @@
1
+ /**
2
+ * HeikinAshiChart - chandeliers Heikin-Ashi (finance lissée).
3
+ * Mêmes données OHLC que CandlestickChart, mais valeurs RECALCULÉES en Heikin-Ashi :
4
+ * haClose = (open + high + low + close) / 4
5
+ * haOpen = 1re bougie : (open + close) / 2 ; sinon (haOpen_prev + haClose_prev) / 2
6
+ * haHigh = max(high, haOpen, haClose)
7
+ * haLow = min(low, haOpen, haClose)
8
+ * Couleur hausse (haClose ≥ haOpen) / baisse via les mêmes tokens que Candlestick.
9
+ * API canonique (référence Svelte, React/Vue doivent s'aligner)
10
+ *
11
+ * Props obligatoires :
12
+ * data HeikinAshiChartDatum[] - tableau {label, open, high, low, close}
13
+ * label string
14
+ *
15
+ * Props optionnelles :
16
+ * width number (défaut 480)
17
+ * height number (défaut 240)
18
+ * class string
19
+ */
20
+ export type HeikinAshiChartDatum = {
21
+ label: string;
22
+ open: number;
23
+ high: number;
24
+ low: number;
25
+ close: number;
26
+ };
27
+ type HeikinAshiChartProps = {
28
+ data: HeikinAshiChartDatum[];
29
+ label: string;
30
+ width?: number;
31
+ height?: number;
32
+ class?: string;
33
+ };
34
+ declare const HeikinAshiChart: import("svelte").Component<HeikinAshiChartProps, {}, "">;
35
+ type HeikinAshiChart = ReturnType<typeof HeikinAshiChart>;
36
+ export default HeikinAshiChart;
37
+ //# sourceMappingURL=HeikinAshiChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeikinAshiChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/HeikinAshiChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA2MJ,QAAA,MAAM,eAAe,0DAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}