@oanda/labs-crowd-view-widget 1.0.65 → 1.0.67
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/CHANGELOG.md +540 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +7 -4
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +2 -2
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +7 -4
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +2 -2
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.d.ts +2 -1
- package/package.json +3 -3
- package/src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts +16 -4
- package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts +2 -2
- package/src/CrowdViewWidget/components/Chart/getOption.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,546 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 1.0.67 (2026-01-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.248 (2026-01-09)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.247 (2026-01-08)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.246 (2026-01-08)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.245 (2026-01-07)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.244 (2026-01-02)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 1.0.243 (2025-12-30)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 1.0.242 (2025-12-16)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## 1.0.241 (2025-12-16)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## 1.0.240 (2025-12-15)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 1.0.239 (2025-12-12)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## 1.0.238 (2025-12-11)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 1.0.237 (2025-12-09)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 1.0.236 (2025-12-05)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## 1.0.235 (2025-12-04)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 1.0.234 (2025-11-27)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## 1.0.233 (2025-11-27)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## 1.0.232 (2025-11-27)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## 1.0.231 (2025-11-07)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## 1.0.230 (2025-11-05)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## 1.0.229 (2025-11-05)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## 1.0.228 (2025-11-05)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## 1.0.227 (2025-10-31)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
## 1.0.226 (2025-10-29)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## 1.0.225 (2025-10-09)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## 1.0.224 (2025-09-29)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## 1.0.223 (2025-09-29)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## 1.0.222 (2025-09-17)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
## 1.0.221 (2025-09-11)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
## 1.0.220 (2025-09-09)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
## 1.0.219 (2025-09-02)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## 1.0.218 (2025-09-01)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
## 1.0.217 (2025-08-25)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
## 1.0.216 (2025-08-18)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## 1.0.215 (2025-08-18)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
## 1.0.214 (2025-08-14)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## 1.0.213 (2025-08-12)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
## 1.0.212 (2025-08-05)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
## 1.0.211 (2025-08-05)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
## 1.0.210 (2025-07-31)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
## 1.0.209 (2025-07-31)
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
## 1.0.208 (2025-07-24)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
## 1.0.207 (2025-07-18)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
## 1.0.206 (2025-07-18)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
## 1.0.205 (2025-07-17)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
## 1.0.204 (2025-07-09)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
## 1.0.203 (2025-06-16)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
## 1.0.202 (2025-06-04)
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
## 1.0.201 (2025-06-02)
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
## 1.0.200 (2025-05-30)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
## 1.0.199 (2025-05-29)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
## 1.0.198 (2025-05-26)
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
## 1.0.197 (2025-05-23)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
## 1.0.196 (2025-05-22)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
## 1.0.195 (2025-05-21)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
## 1.0.194 (2025-05-21)
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
## 1.0.193 (2025-05-15)
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
## 1.0.192 (2025-05-14)
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
## 1.0.191 (2025-04-30)
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
## 1.0.190 (2025-04-28)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
## 1.0.189 (2025-04-23)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
## 1.0.188 (2025-04-22)
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
## 1.0.187 (2025-04-18)
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
## 1.0.186 (2025-04-10)
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
## 1.0.185 (2025-04-09)
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
## 1.0.184 (2025-04-08)
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
## 1.0.183 (2025-04-04)
|
|
271
|
+
|
|
272
|
+
**Note:** Version bump only for package @oanda/labs-crowd-view-widget
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
## 1.0.66 (2026-01-09)
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
## 1.0.247 (2026-01-08)
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
## 1.0.246 (2026-01-08)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
## 1.0.245 (2026-01-07)
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
## 1.0.244 (2026-01-02)
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
## 1.0.243 (2025-12-30)
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
## 1.0.242 (2025-12-16)
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
## 1.0.241 (2025-12-16)
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
## 1.0.240 (2025-12-15)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
## 1.0.239 (2025-12-12)
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
## 1.0.238 (2025-12-11)
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
## 1.0.237 (2025-12-09)
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
## 1.0.236 (2025-12-05)
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
## 1.0.235 (2025-12-04)
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
## 1.0.234 (2025-11-27)
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
## 1.0.233 (2025-11-27)
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
## 1.0.232 (2025-11-27)
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
## 1.0.231 (2025-11-07)
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
## 1.0.230 (2025-11-05)
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
## 1.0.229 (2025-11-05)
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
## 1.0.228 (2025-11-05)
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
## 1.0.227 (2025-10-31)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
## 1.0.226 (2025-10-29)
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
## 1.0.225 (2025-10-09)
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
## 1.0.224 (2025-09-29)
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
## 1.0.223 (2025-09-29)
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
## 1.0.222 (2025-09-17)
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
## 1.0.221 (2025-09-11)
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
## 1.0.220 (2025-09-09)
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
## 1.0.219 (2025-09-02)
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
## 1.0.218 (2025-09-01)
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
## 1.0.217 (2025-08-25)
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
## 1.0.216 (2025-08-18)
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
## 1.0.215 (2025-08-18)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
## 1.0.214 (2025-08-14)
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
## 1.0.213 (2025-08-12)
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
## 1.0.212 (2025-08-05)
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
## 1.0.211 (2025-08-05)
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
## 1.0.210 (2025-07-31)
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
## 1.0.209 (2025-07-31)
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
## 1.0.208 (2025-07-24)
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
## 1.0.207 (2025-07-18)
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
## 1.0.206 (2025-07-18)
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
## 1.0.205 (2025-07-17)
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
## 1.0.204 (2025-07-09)
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
## 1.0.203 (2025-06-16)
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
## 1.0.202 (2025-06-04)
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
## 1.0.201 (2025-06-02)
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
## 1.0.200 (2025-05-30)
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
## 1.0.199 (2025-05-29)
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
## 1.0.198 (2025-05-26)
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
## 1.0.197 (2025-05-23)
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
## 1.0.196 (2025-05-22)
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
## 1.0.195 (2025-05-21)
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
## 1.0.194 (2025-05-21)
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
## 1.0.193 (2025-05-15)
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
## 1.0.192 (2025-05-14)
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
## 1.0.191 (2025-04-30)
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
## 1.0.190 (2025-04-28)
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
## 1.0.189 (2025-04-23)
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
## 1.0.188 (2025-04-22)
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
## 1.0.187 (2025-04-18)
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
## 1.0.186 (2025-04-10)
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
## 1.0.185 (2025-04-09)
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
## 1.0.184 (2025-04-08)
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
## 1.0.183 (2025-04-04)
|
|
539
|
+
|
|
540
|
+
**Note:** Version bump only for package @oanda/labs-crowd-view-widget
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
|
|
6
546
|
## 1.0.65 (2026-01-08)
|
|
7
547
|
|
|
8
548
|
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getLabelsConfig = void 0;
|
|
7
7
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
8
|
+
var _monoI18n = require("@oanda/mono-i18n");
|
|
8
9
|
var _chromaJs = _interopRequireDefault(require("chroma-js"));
|
|
9
10
|
var _constants = require("../../../constants");
|
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -12,16 +13,18 @@ const getLabelsConfig = _ref => {
|
|
|
12
13
|
let {
|
|
13
14
|
isDark,
|
|
14
15
|
isDesktop,
|
|
16
|
+
locale,
|
|
15
17
|
labelCallback
|
|
16
18
|
} = _ref;
|
|
19
|
+
const isJapanese = locale === _monoI18n.Locale.ja;
|
|
17
20
|
const ySentimentLabelSize = isDesktop ? _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;
|
|
18
21
|
const yMainLabelSize = isDesktop ? _constants.CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : _constants.CHART_CONFIG.Y_LABEL_SIZE_MOBILE;
|
|
19
22
|
const textColor = isDark ? _labsWidgetCommon.colorPalette.white : _labsWidgetCommon.colorPalette.black;
|
|
20
23
|
const labelBackgroundColor = isDark ? _labsWidgetCommon.colorPalette.darkGray : _labsWidgetCommon.colorPalette.white;
|
|
21
24
|
const backgroundColor = isDark ? _labsWidgetCommon.colorPalette.black : _labsWidgetCommon.colorPalette.white;
|
|
22
25
|
const shadowColor = (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.black).alpha(0.1).hex();
|
|
23
|
-
const sentimentText = labelCallback('sentiment').toUpperCase();
|
|
24
|
-
const priceText = labelCallback('price').toUpperCase();
|
|
26
|
+
const sentimentText = isJapanese && isDesktop ? labelCallback('sentiment').split('').join('\n') : labelCallback('sentiment').toUpperCase();
|
|
27
|
+
const priceText = isJapanese && isDesktop ? labelCallback('price').split('').join('\n') : labelCallback('price').toUpperCase();
|
|
25
28
|
const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;
|
|
26
29
|
const priceEstimatedWidth = 10 * priceText.length * 0.65;
|
|
27
30
|
const sentimentVerticalOffset = sentimentEstimatedWidth / 2;
|
|
@@ -103,7 +106,7 @@ const getLabelsConfig = _ref => {
|
|
|
103
106
|
}, {
|
|
104
107
|
type: 'text',
|
|
105
108
|
z: 30,
|
|
106
|
-
rotation: isDesktop ? Math.PI / 2 : 0,
|
|
109
|
+
rotation: !isJapanese && isDesktop ? Math.PI / 2 : 0,
|
|
107
110
|
left: `5px`,
|
|
108
111
|
top: isDesktop ? `${topMargin + mainHeight / 2 - sentimentVerticalOffset}px` : `${topMargin - 16}px`,
|
|
109
112
|
silent: true,
|
|
@@ -117,7 +120,7 @@ const getLabelsConfig = _ref => {
|
|
|
117
120
|
}, {
|
|
118
121
|
type: 'text',
|
|
119
122
|
z: 30,
|
|
120
|
-
rotation: isDesktop ? -Math.PI / 2 : 0,
|
|
123
|
+
rotation: !isJapanese && isDesktop ? -Math.PI / 2 : 0,
|
|
121
124
|
right: `5px`,
|
|
122
125
|
top: isDesktop ? `${topMargin + mainHeight / 2 - priceVerticalOffset}px` : `${topMargin - 16}px`,
|
|
123
126
|
silent: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLabelsConfig.js","names":["_labsWidgetCommon","require","_chromaJs","_interopRequireDefault","_constants","e","__esModule","default","getLabelsConfig","_ref","isDark","isDesktop","labelCallback","ySentimentLabelSize","CHART_CONFIG","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","yMainLabelSize","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","textColor","colorPalette","white","black","labelBackgroundColor","darkGray","backgroundColor","shadowColor","chroma","alpha","hex","sentimentText","toUpperCase","priceText","sentimentEstimatedWidth","length","priceEstimatedWidth","sentimentVerticalOffset","priceVerticalOffset","topMargin","TOP_LABEL_SPACE_DESKTOP","TOOLTIP_HEIGHT_DESKTOP","TOP_LABEL_SPACE_MOBILE","TOOLTIP_HEIGHT_MOBILE","mainHeight","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","type","left","top","silent","children","z","right","shape","width","height","style","fill","shadowBlur","shadowOffsetX","shadowOffsetY","fontSize","fontFamily","fontWeight","text","rotation","Math","PI","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\nimport chroma from 'chroma-js';\nimport type { GraphicComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface getLabelsConfigParams {\n isDark: boolean;\n isDesktop: boolean;\n labelCallback: (key: string, params?: Record<string, unknown>) => string;\n}\n\nexport const getLabelsConfig = ({\n isDark,\n isDesktop,\n labelCallback,\n}: getLabelsConfigParams): GraphicComponentOption[] => {\n const ySentimentLabelSize = isDesktop\n ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE\n : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;\n\n const yMainLabelSize = isDesktop\n ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP\n : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;\n\n const textColor = isDark ? colorPalette.white : colorPalette.black;\n const labelBackgroundColor = isDark\n ? colorPalette.darkGray\n : colorPalette.white;\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const shadowColor = chroma(colorPalette.black).alpha(0.1).hex();\n\n // Estimate text width for centering rotated text\n // Approximate: fontSize * characterCount * 0.65 (typical character width ratio)\n const sentimentText = labelCallback('sentiment').toUpperCase();\n const priceText = labelCallback('price').toUpperCase();\n const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;\n const priceEstimatedWidth = 10 * priceText.length * 0.65;\n const sentimentVerticalOffset = sentimentEstimatedWidth / 2;\n const priceVerticalOffset = priceEstimatedWidth / 2;\n\n const topMargin = isDesktop\n ? CHART_CONFIG.TOP_LABEL_SPACE_DESKTOP + CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP\n : CHART_CONFIG.TOP_LABEL_SPACE_MOBILE + CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE;\n\n const mainHeight = isDesktop\n ? CHART_CONFIG.MAIN_HEIGHT_DESKTOP\n : CHART_CONFIG.MAIN_HEIGHT_MOBILE;\n\n return [\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('short'),\n },\n },\n ],\n },\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + mainHeight - 24 - 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('long'),\n },\n },\n ],\n },\n\n {\n type: 'text',\n z: 30,\n rotation: isDesktop ? Math.PI / 2 : 0,\n left: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - sentimentVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: sentimentText,\n },\n },\n {\n type: 'text',\n z: 30,\n rotation: isDesktop ? -Math.PI / 2 : 0,\n right: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - priceVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: priceText,\n },\n },\n {\n type: 'rect',\n z: 20,\n right: '0px',\n top: `${topMargin}px`,\n shape: {\n width: yMainLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'rect',\n z: 20,\n left: '0px',\n top: `${topMargin}px`,\n shape: {\n width: ySentimentLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'text',\n z: 20,\n left: 'center',\n top: isDesktop\n ? CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP / 2 - 5\n : CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE / 2 - 5,\n silent: true,\n style: {\n fontSize: isDesktop ? 12 : 11,\n fill: textColor,\n text: isDesktop\n ? labelCallback('hover_chart_to_see_more_details')\n : labelCallback('tap_chart_to_see_more_details'),\n },\n },\n ];\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getLabelsConfig.js","names":["_labsWidgetCommon","require","_monoI18n","_chromaJs","_interopRequireDefault","_constants","e","__esModule","default","getLabelsConfig","_ref","isDark","isDesktop","locale","labelCallback","isJapanese","Locale","ja","ySentimentLabelSize","CHART_CONFIG","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","yMainLabelSize","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","textColor","colorPalette","white","black","labelBackgroundColor","darkGray","backgroundColor","shadowColor","chroma","alpha","hex","sentimentText","split","join","toUpperCase","priceText","sentimentEstimatedWidth","length","priceEstimatedWidth","sentimentVerticalOffset","priceVerticalOffset","topMargin","TOP_LABEL_SPACE_DESKTOP","TOOLTIP_HEIGHT_DESKTOP","TOP_LABEL_SPACE_MOBILE","TOOLTIP_HEIGHT_MOBILE","mainHeight","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","type","left","top","silent","children","z","right","shape","width","height","style","fill","shadowBlur","shadowOffsetX","shadowOffsetY","fontSize","fontFamily","fontWeight","text","rotation","Math","PI","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\nimport { Locale } from '@oanda/mono-i18n';\nimport chroma from 'chroma-js';\nimport type { GraphicComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface getLabelsConfigParams {\n isDark: boolean;\n isDesktop: boolean;\n locale: string;\n labelCallback: (key: string, params?: Record<string, unknown>) => string;\n}\n\nexport const getLabelsConfig = ({\n isDark,\n isDesktop,\n locale,\n labelCallback,\n}: getLabelsConfigParams): GraphicComponentOption[] => {\n const isJapanese = locale === Locale.ja;\n\n const ySentimentLabelSize = isDesktop\n ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE\n : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;\n\n const yMainLabelSize = isDesktop\n ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP\n : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;\n\n const textColor = isDark ? colorPalette.white : colorPalette.black;\n const labelBackgroundColor = isDark\n ? colorPalette.darkGray\n : colorPalette.white;\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const shadowColor = chroma(colorPalette.black).alpha(0.1).hex();\n\n const sentimentText =\n isJapanese && isDesktop\n ? labelCallback('sentiment').split('').join('\\n')\n : labelCallback('sentiment').toUpperCase();\n const priceText =\n isJapanese && isDesktop\n ? labelCallback('price').split('').join('\\n')\n : labelCallback('price').toUpperCase();\n\n // Estimate text width for centering rotated text\n // Approximate: fontSize * characterCount * 0.65 (typical character width ratio)\n const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;\n const priceEstimatedWidth = 10 * priceText.length * 0.65;\n const sentimentVerticalOffset = sentimentEstimatedWidth / 2;\n const priceVerticalOffset = priceEstimatedWidth / 2;\n\n const topMargin = isDesktop\n ? CHART_CONFIG.TOP_LABEL_SPACE_DESKTOP + CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP\n : CHART_CONFIG.TOP_LABEL_SPACE_MOBILE + CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE;\n\n const mainHeight = isDesktop\n ? CHART_CONFIG.MAIN_HEIGHT_DESKTOP\n : CHART_CONFIG.MAIN_HEIGHT_MOBILE;\n\n return [\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('short'),\n },\n },\n ],\n },\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + mainHeight - 24 - 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('long'),\n },\n },\n ],\n },\n\n {\n type: 'text',\n z: 30,\n rotation: !isJapanese && isDesktop ? Math.PI / 2 : 0,\n left: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - sentimentVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: sentimentText,\n },\n },\n {\n type: 'text',\n z: 30,\n rotation: !isJapanese && isDesktop ? -Math.PI / 2 : 0,\n right: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - priceVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: priceText,\n },\n },\n {\n type: 'rect',\n z: 20,\n right: '0px',\n top: `${topMargin}px`,\n shape: {\n width: yMainLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'rect',\n z: 20,\n left: '0px',\n top: `${topMargin}px`,\n shape: {\n width: ySentimentLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'text',\n z: 20,\n left: 'center',\n top: isDesktop\n ? CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP / 2 - 5\n : CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE / 2 - 5,\n silent: true,\n style: {\n fontSize: isDesktop ? 12 : 11,\n fill: textColor,\n text: isDesktop\n ? labelCallback('hover_chart_to_see_more_details')\n : labelCallback('tap_chart_to_see_more_details'),\n },\n },\n ];\n};\n"],"mappings":"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","ignoreList":[]}
|
package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSeriesCandlestickConfig.js","names":["_monoI18n","require","_chromaJs","_interopRequireDefault","e","__esModule","default","getSeriesCandlestickConfig","_ref","styles","isLoading","locale","candleLongColor","candleShortColor","isJapanese","Locale","ja","itemStyle","color","chroma","desaturate","css","color0","borderColor","borderColor0","animation","type","id","xAxisIndex","yAxisIndex","silent","clip","large","encode","x","y","emphasis","z","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport chroma from 'chroma-js';\nimport type { CandlestickSeriesOption } from 'echarts';\n\nimport type { ChartStyles } from '../chartUtils/getChartStyles';\n\ninterface GetSeriesCandlestickConfigParams {\n styles: ChartStyles;\n isLoading: boolean;\n locale: string;\n}\n\nexport const getSeriesCandlestickConfig = ({\n styles,\n isLoading,\n locale,\n}: GetSeriesCandlestickConfigParams): CandlestickSeriesOption => {\n const { candleLongColor, candleShortColor } = styles;\n const isJapanese = locale === Locale.ja;\n\n const itemStyle = isJapanese\n ? {\n color: chroma(candleShortColor).desaturate().css(),\n color0: chroma(candleLongColor).desaturate().css(),\n borderColor: candleShortColor,\n borderColor0: candleLongColor,\n }\n : {\n color: chroma(candleLongColor).desaturate().css(),\n color0: chroma(candleShortColor).desaturate().css(),\n borderColor: candleLongColor,\n borderColor0: candleShortColor,\n };\n\n return {\n animation: isLoading,\n type: 'candlestick',\n id: 'candlestick',\n xAxisIndex: 0,\n yAxisIndex: 0,\n silent: true,\n clip: true,\n large: true,\n encode: {\n x: 'dates',\n y: ['open', 'close', 'low', 'high'],\n },\n itemStyle,\n emphasis: {\n itemStyle: {\n color:
|
|
1
|
+
{"version":3,"file":"getSeriesCandlestickConfig.js","names":["_monoI18n","require","_chromaJs","_interopRequireDefault","e","__esModule","default","getSeriesCandlestickConfig","_ref","styles","isLoading","locale","candleLongColor","candleShortColor","isJapanese","Locale","ja","itemStyle","color","chroma","desaturate","css","color0","borderColor","borderColor0","animation","type","id","xAxisIndex","yAxisIndex","silent","clip","large","encode","x","y","emphasis","z","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport chroma from 'chroma-js';\nimport type { CandlestickSeriesOption } from 'echarts';\n\nimport type { ChartStyles } from '../chartUtils/getChartStyles';\n\ninterface GetSeriesCandlestickConfigParams {\n styles: ChartStyles;\n isLoading: boolean;\n locale: string;\n}\n\nexport const getSeriesCandlestickConfig = ({\n styles,\n isLoading,\n locale,\n}: GetSeriesCandlestickConfigParams): CandlestickSeriesOption => {\n const { candleLongColor, candleShortColor } = styles;\n const isJapanese = locale === Locale.ja;\n\n const itemStyle = isJapanese\n ? {\n color: chroma(candleShortColor).desaturate().css(),\n color0: chroma(candleLongColor).desaturate().css(),\n borderColor: candleShortColor,\n borderColor0: candleLongColor,\n }\n : {\n color: chroma(candleLongColor).desaturate().css(),\n color0: chroma(candleShortColor).desaturate().css(),\n borderColor: candleLongColor,\n borderColor0: candleShortColor,\n };\n\n return {\n animation: isLoading,\n type: 'candlestick',\n id: 'candlestick',\n xAxisIndex: 0,\n yAxisIndex: 0,\n silent: true,\n clip: true,\n large: true,\n encode: {\n x: 'dates',\n y: ['open', 'close', 'low', 'high'],\n },\n itemStyle,\n emphasis: {\n itemStyle: {\n color: itemStyle.color,\n color0: itemStyle.color0,\n },\n },\n z: 3,\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA+B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAWxB,MAAMG,0BAA0B,GAAGC,IAAA,IAIuB;EAAA,IAJtB;IACzCC,MAAM;IACNC,SAAS;IACTC;EACgC,CAAC,GAAAH,IAAA;EACjC,MAAM;IAAEI,eAAe;IAAEC;EAAiB,CAAC,GAAGJ,MAAM;EACpD,MAAMK,UAAU,GAAGH,MAAM,KAAKI,gBAAM,CAACC,EAAE;EAEvC,MAAMC,SAAS,GAAGH,UAAU,GACxB;IACEI,KAAK,EAAE,IAAAC,iBAAM,EAACN,gBAAgB,CAAC,CAACO,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IAClDC,MAAM,EAAE,IAAAH,iBAAM,EAACP,eAAe,CAAC,CAACQ,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IAClDE,WAAW,EAAEV,gBAAgB;IAC7BW,YAAY,EAAEZ;EAChB,CAAC,GACD;IACEM,KAAK,EAAE,IAAAC,iBAAM,EAACP,eAAe,CAAC,CAACQ,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IACjDC,MAAM,EAAE,IAAAH,iBAAM,EAACN,gBAAgB,CAAC,CAACO,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IACnDE,WAAW,EAAEX,eAAe;IAC5BY,YAAY,EAAEX;EAChB,CAAC;EAEL,OAAO;IACLY,SAAS,EAAEf,SAAS;IACpBgB,IAAI,EAAE,aAAa;IACnBC,EAAE,EAAE,aAAa;IACjBC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE,CAAC;IACbC,MAAM,EAAE,IAAI;IACZC,IAAI,EAAE,IAAI;IACVC,KAAK,EAAE,IAAI;IACXC,MAAM,EAAE;MACNC,CAAC,EAAE,OAAO;MACVC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IACpC,CAAC;IACDlB,SAAS;IACTmB,QAAQ,EAAE;MACRnB,SAAS,EAAE;QACTC,KAAK,EAAED,SAAS,CAACC,KAAK;QACtBI,MAAM,EAAEL,SAAS,CAACK;MACpB;IACF,CAAC;IACDe,CAAC,EAAE;EACL,CAAC;AACH,CAAC;AAACC,OAAA,CAAA/B,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["_constants","require","_chartOptions","_chartUtils","_getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","getChartStyles","selectedPriceRef","current","initialStartZoom","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","heatmapChart","getSeriesHeatmapConfig","sentimentChart","getSeriesSentimentConfig","animation","tooltip","getTooltipConfig","tooltipLinesColor","grid","getGridConfig","xAxis","getXAxisConfig","yAxis","getYAxisConfig","dataZoom","getDataZoomConfig","visualMap","getVisualMapConfig","sentimentLongColor","sentimentShortColor","graphic","getGridLines","getLabelsConfig","dataset","source","series","getSeriesCandlestickConfig","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n isDesktop,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n selectedPriceRef,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n locale,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["_constants","require","_chartOptions","_chartUtils","_getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","getChartStyles","selectedPriceRef","current","initialStartZoom","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","heatmapChart","getSeriesHeatmapConfig","sentimentChart","getSeriesSentimentConfig","animation","tooltip","getTooltipConfig","tooltipLinesColor","grid","getGridConfig","xAxis","getXAxisConfig","yAxis","getYAxisConfig","dataZoom","getDataZoomConfig","visualMap","getVisualMapConfig","sentimentLongColor","sentimentShortColor","graphic","getGridLines","getLabelsConfig","dataset","source","series","getSeriesCandlestickConfig","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n isDesktop,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n selectedPriceRef,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, locale, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n locale,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { colorPalette } from '@oanda/labs-widget-common';
|
|
2
|
+
import { Locale } from '@oanda/mono-i18n';
|
|
2
3
|
import chroma from 'chroma-js';
|
|
3
4
|
import { CHART_CONFIG } from '../../../constants';
|
|
4
5
|
export const getLabelsConfig = _ref => {
|
|
5
6
|
let {
|
|
6
7
|
isDark,
|
|
7
8
|
isDesktop,
|
|
9
|
+
locale,
|
|
8
10
|
labelCallback
|
|
9
11
|
} = _ref;
|
|
12
|
+
const isJapanese = locale === Locale.ja;
|
|
10
13
|
const ySentimentLabelSize = isDesktop ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;
|
|
11
14
|
const yMainLabelSize = isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;
|
|
12
15
|
const textColor = isDark ? colorPalette.white : colorPalette.black;
|
|
13
16
|
const labelBackgroundColor = isDark ? colorPalette.darkGray : colorPalette.white;
|
|
14
17
|
const backgroundColor = isDark ? colorPalette.black : colorPalette.white;
|
|
15
18
|
const shadowColor = chroma(colorPalette.black).alpha(0.1).hex();
|
|
16
|
-
const sentimentText = labelCallback('sentiment').toUpperCase();
|
|
17
|
-
const priceText = labelCallback('price').toUpperCase();
|
|
19
|
+
const sentimentText = isJapanese && isDesktop ? labelCallback('sentiment').split('').join('\n') : labelCallback('sentiment').toUpperCase();
|
|
20
|
+
const priceText = isJapanese && isDesktop ? labelCallback('price').split('').join('\n') : labelCallback('price').toUpperCase();
|
|
18
21
|
const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;
|
|
19
22
|
const priceEstimatedWidth = 10 * priceText.length * 0.65;
|
|
20
23
|
const sentimentVerticalOffset = sentimentEstimatedWidth / 2;
|
|
@@ -96,7 +99,7 @@ export const getLabelsConfig = _ref => {
|
|
|
96
99
|
}, {
|
|
97
100
|
type: 'text',
|
|
98
101
|
z: 30,
|
|
99
|
-
rotation: isDesktop ? Math.PI / 2 : 0,
|
|
102
|
+
rotation: !isJapanese && isDesktop ? Math.PI / 2 : 0,
|
|
100
103
|
left: `5px`,
|
|
101
104
|
top: isDesktop ? `${topMargin + mainHeight / 2 - sentimentVerticalOffset}px` : `${topMargin - 16}px`,
|
|
102
105
|
silent: true,
|
|
@@ -110,7 +113,7 @@ export const getLabelsConfig = _ref => {
|
|
|
110
113
|
}, {
|
|
111
114
|
type: 'text',
|
|
112
115
|
z: 30,
|
|
113
|
-
rotation: isDesktop ? -Math.PI / 2 : 0,
|
|
116
|
+
rotation: !isJapanese && isDesktop ? -Math.PI / 2 : 0,
|
|
114
117
|
right: `5px`,
|
|
115
118
|
top: isDesktop ? `${topMargin + mainHeight / 2 - priceVerticalOffset}px` : `${topMargin - 16}px`,
|
|
116
119
|
silent: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLabelsConfig.js","names":["colorPalette","chroma","CHART_CONFIG","getLabelsConfig","_ref","isDark","isDesktop","labelCallback","ySentimentLabelSize","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","yMainLabelSize","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","textColor","white","black","labelBackgroundColor","darkGray","backgroundColor","shadowColor","alpha","hex","sentimentText","toUpperCase","priceText","sentimentEstimatedWidth","length","priceEstimatedWidth","sentimentVerticalOffset","priceVerticalOffset","topMargin","TOP_LABEL_SPACE_DESKTOP","TOOLTIP_HEIGHT_DESKTOP","TOP_LABEL_SPACE_MOBILE","TOOLTIP_HEIGHT_MOBILE","mainHeight","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","type","left","top","silent","children","z","right","shape","width","height","style","fill","shadowBlur","shadowOffsetX","shadowOffsetY","fontSize","fontFamily","fontWeight","text","rotation","Math","PI"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\nimport chroma from 'chroma-js';\nimport type { GraphicComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface getLabelsConfigParams {\n isDark: boolean;\n isDesktop: boolean;\n labelCallback: (key: string, params?: Record<string, unknown>) => string;\n}\n\nexport const getLabelsConfig = ({\n isDark,\n isDesktop,\n labelCallback,\n}: getLabelsConfigParams): GraphicComponentOption[] => {\n const ySentimentLabelSize = isDesktop\n ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE\n : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;\n\n const yMainLabelSize = isDesktop\n ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP\n : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;\n\n const textColor = isDark ? colorPalette.white : colorPalette.black;\n const labelBackgroundColor = isDark\n ? colorPalette.darkGray\n : colorPalette.white;\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const shadowColor = chroma(colorPalette.black).alpha(0.1).hex();\n\n // Estimate text width for centering rotated text\n // Approximate: fontSize * characterCount * 0.65 (typical character width ratio)\n const sentimentText = labelCallback('sentiment').toUpperCase();\n const priceText = labelCallback('price').toUpperCase();\n const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;\n const priceEstimatedWidth = 10 * priceText.length * 0.65;\n const sentimentVerticalOffset = sentimentEstimatedWidth / 2;\n const priceVerticalOffset = priceEstimatedWidth / 2;\n\n const topMargin = isDesktop\n ? CHART_CONFIG.TOP_LABEL_SPACE_DESKTOP + CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP\n : CHART_CONFIG.TOP_LABEL_SPACE_MOBILE + CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE;\n\n const mainHeight = isDesktop\n ? CHART_CONFIG.MAIN_HEIGHT_DESKTOP\n : CHART_CONFIG.MAIN_HEIGHT_MOBILE;\n\n return [\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('short'),\n },\n },\n ],\n },\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + mainHeight - 24 - 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('long'),\n },\n },\n ],\n },\n\n {\n type: 'text',\n z: 30,\n rotation: isDesktop ? Math.PI / 2 : 0,\n left: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - sentimentVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: sentimentText,\n },\n },\n {\n type: 'text',\n z: 30,\n rotation: isDesktop ? -Math.PI / 2 : 0,\n right: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - priceVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: priceText,\n },\n },\n {\n type: 'rect',\n z: 20,\n right: '0px',\n top: `${topMargin}px`,\n shape: {\n width: yMainLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'rect',\n z: 20,\n left: '0px',\n top: `${topMargin}px`,\n shape: {\n width: ySentimentLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'text',\n z: 20,\n left: 'center',\n top: isDesktop\n ? CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP / 2 - 5\n : CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE / 2 - 5,\n silent: true,\n style: {\n fontSize: isDesktop ? 12 : 11,\n fill: textColor,\n text: isDesktop\n ? labelCallback('hover_chart_to_see_more_details')\n : labelCallback('tap_chart_to_see_more_details'),\n },\n },\n ];\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getLabelsConfig.js","names":["colorPalette","Locale","chroma","CHART_CONFIG","getLabelsConfig","_ref","isDark","isDesktop","locale","labelCallback","isJapanese","ja","ySentimentLabelSize","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","yMainLabelSize","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","textColor","white","black","labelBackgroundColor","darkGray","backgroundColor","shadowColor","alpha","hex","sentimentText","split","join","toUpperCase","priceText","sentimentEstimatedWidth","length","priceEstimatedWidth","sentimentVerticalOffset","priceVerticalOffset","topMargin","TOP_LABEL_SPACE_DESKTOP","TOOLTIP_HEIGHT_DESKTOP","TOP_LABEL_SPACE_MOBILE","TOOLTIP_HEIGHT_MOBILE","mainHeight","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","type","left","top","silent","children","z","right","shape","width","height","style","fill","shadowBlur","shadowOffsetX","shadowOffsetY","fontSize","fontFamily","fontWeight","text","rotation","Math","PI"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\nimport { Locale } from '@oanda/mono-i18n';\nimport chroma from 'chroma-js';\nimport type { GraphicComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface getLabelsConfigParams {\n isDark: boolean;\n isDesktop: boolean;\n locale: string;\n labelCallback: (key: string, params?: Record<string, unknown>) => string;\n}\n\nexport const getLabelsConfig = ({\n isDark,\n isDesktop,\n locale,\n labelCallback,\n}: getLabelsConfigParams): GraphicComponentOption[] => {\n const isJapanese = locale === Locale.ja;\n\n const ySentimentLabelSize = isDesktop\n ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE\n : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;\n\n const yMainLabelSize = isDesktop\n ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP\n : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;\n\n const textColor = isDark ? colorPalette.white : colorPalette.black;\n const labelBackgroundColor = isDark\n ? colorPalette.darkGray\n : colorPalette.white;\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const shadowColor = chroma(colorPalette.black).alpha(0.1).hex();\n\n const sentimentText =\n isJapanese && isDesktop\n ? labelCallback('sentiment').split('').join('\\n')\n : labelCallback('sentiment').toUpperCase();\n const priceText =\n isJapanese && isDesktop\n ? labelCallback('price').split('').join('\\n')\n : labelCallback('price').toUpperCase();\n\n // Estimate text width for centering rotated text\n // Approximate: fontSize * characterCount * 0.65 (typical character width ratio)\n const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;\n const priceEstimatedWidth = 10 * priceText.length * 0.65;\n const sentimentVerticalOffset = sentimentEstimatedWidth / 2;\n const priceVerticalOffset = priceEstimatedWidth / 2;\n\n const topMargin = isDesktop\n ? CHART_CONFIG.TOP_LABEL_SPACE_DESKTOP + CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP\n : CHART_CONFIG.TOP_LABEL_SPACE_MOBILE + CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE;\n\n const mainHeight = isDesktop\n ? CHART_CONFIG.MAIN_HEIGHT_DESKTOP\n : CHART_CONFIG.MAIN_HEIGHT_MOBILE;\n\n return [\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('short'),\n },\n },\n ],\n },\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + mainHeight - 24 - 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('long'),\n },\n },\n ],\n },\n\n {\n type: 'text',\n z: 30,\n rotation: !isJapanese && isDesktop ? Math.PI / 2 : 0,\n left: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - sentimentVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: sentimentText,\n },\n },\n {\n type: 'text',\n z: 30,\n rotation: !isJapanese && isDesktop ? -Math.PI / 2 : 0,\n right: `5px`,\n top: isDesktop\n ? `${topMargin + mainHeight / 2 - priceVerticalOffset}px`\n : `${topMargin - 16}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: priceText,\n },\n },\n {\n type: 'rect',\n z: 20,\n right: '0px',\n top: `${topMargin}px`,\n shape: {\n width: yMainLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'rect',\n z: 20,\n left: '0px',\n top: `${topMargin}px`,\n shape: {\n width: ySentimentLabelSize,\n height: mainHeight,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'text',\n z: 20,\n left: 'center',\n top: isDesktop\n ? CHART_CONFIG.TOOLTIP_HEIGHT_DESKTOP / 2 - 5\n : CHART_CONFIG.TOOLTIP_HEIGHT_MOBILE / 2 - 5,\n silent: true,\n style: {\n fontSize: isDesktop ? 12 : 11,\n fill: textColor,\n text: isDesktop\n ? labelCallback('hover_chart_to_see_more_details')\n : labelCallback('tap_chart_to_see_more_details'),\n },\n },\n ];\n};\n"],"mappings":"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","ignoreList":[]}
|
package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSeriesCandlestickConfig.js","names":["Locale","chroma","getSeriesCandlestickConfig","_ref","styles","isLoading","locale","candleLongColor","candleShortColor","isJapanese","ja","itemStyle","color","desaturate","css","color0","borderColor","borderColor0","animation","type","id","xAxisIndex","yAxisIndex","silent","clip","large","encode","x","y","emphasis","z"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport chroma from 'chroma-js';\nimport type { CandlestickSeriesOption } from 'echarts';\n\nimport type { ChartStyles } from '../chartUtils/getChartStyles';\n\ninterface GetSeriesCandlestickConfigParams {\n styles: ChartStyles;\n isLoading: boolean;\n locale: string;\n}\n\nexport const getSeriesCandlestickConfig = ({\n styles,\n isLoading,\n locale,\n}: GetSeriesCandlestickConfigParams): CandlestickSeriesOption => {\n const { candleLongColor, candleShortColor } = styles;\n const isJapanese = locale === Locale.ja;\n\n const itemStyle = isJapanese\n ? {\n color: chroma(candleShortColor).desaturate().css(),\n color0: chroma(candleLongColor).desaturate().css(),\n borderColor: candleShortColor,\n borderColor0: candleLongColor,\n }\n : {\n color: chroma(candleLongColor).desaturate().css(),\n color0: chroma(candleShortColor).desaturate().css(),\n borderColor: candleLongColor,\n borderColor0: candleShortColor,\n };\n\n return {\n animation: isLoading,\n type: 'candlestick',\n id: 'candlestick',\n xAxisIndex: 0,\n yAxisIndex: 0,\n silent: true,\n clip: true,\n large: true,\n encode: {\n x: 'dates',\n y: ['open', 'close', 'low', 'high'],\n },\n itemStyle,\n emphasis: {\n itemStyle: {\n color:
|
|
1
|
+
{"version":3,"file":"getSeriesCandlestickConfig.js","names":["Locale","chroma","getSeriesCandlestickConfig","_ref","styles","isLoading","locale","candleLongColor","candleShortColor","isJapanese","ja","itemStyle","color","desaturate","css","color0","borderColor","borderColor0","animation","type","id","xAxisIndex","yAxisIndex","silent","clip","large","encode","x","y","emphasis","z"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport chroma from 'chroma-js';\nimport type { CandlestickSeriesOption } from 'echarts';\n\nimport type { ChartStyles } from '../chartUtils/getChartStyles';\n\ninterface GetSeriesCandlestickConfigParams {\n styles: ChartStyles;\n isLoading: boolean;\n locale: string;\n}\n\nexport const getSeriesCandlestickConfig = ({\n styles,\n isLoading,\n locale,\n}: GetSeriesCandlestickConfigParams): CandlestickSeriesOption => {\n const { candleLongColor, candleShortColor } = styles;\n const isJapanese = locale === Locale.ja;\n\n const itemStyle = isJapanese\n ? {\n color: chroma(candleShortColor).desaturate().css(),\n color0: chroma(candleLongColor).desaturate().css(),\n borderColor: candleShortColor,\n borderColor0: candleLongColor,\n }\n : {\n color: chroma(candleLongColor).desaturate().css(),\n color0: chroma(candleShortColor).desaturate().css(),\n borderColor: candleLongColor,\n borderColor0: candleShortColor,\n };\n\n return {\n animation: isLoading,\n type: 'candlestick',\n id: 'candlestick',\n xAxisIndex: 0,\n yAxisIndex: 0,\n silent: true,\n clip: true,\n large: true,\n encode: {\n x: 'dates',\n y: ['open', 'close', 'low', 'high'],\n },\n itemStyle,\n emphasis: {\n itemStyle: {\n color: itemStyle.color,\n color0: itemStyle.color0,\n },\n },\n z: 3,\n };\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,kBAAkB;AACzC,OAAOC,MAAM,MAAM,WAAW;AAW9B,OAAO,MAAMC,0BAA0B,GAAGC,IAAA,IAIuB;EAAA,IAJtB;IACzCC,MAAM;IACNC,SAAS;IACTC;EACgC,CAAC,GAAAH,IAAA;EACjC,MAAM;IAAEI,eAAe;IAAEC;EAAiB,CAAC,GAAGJ,MAAM;EACpD,MAAMK,UAAU,GAAGH,MAAM,KAAKN,MAAM,CAACU,EAAE;EAEvC,MAAMC,SAAS,GAAGF,UAAU,GACxB;IACEG,KAAK,EAAEX,MAAM,CAACO,gBAAgB,CAAC,CAACK,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IAClDC,MAAM,EAAEd,MAAM,CAACM,eAAe,CAAC,CAACM,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IAClDE,WAAW,EAAER,gBAAgB;IAC7BS,YAAY,EAAEV;EAChB,CAAC,GACD;IACEK,KAAK,EAAEX,MAAM,CAACM,eAAe,CAAC,CAACM,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IACjDC,MAAM,EAAEd,MAAM,CAACO,gBAAgB,CAAC,CAACK,UAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IACnDE,WAAW,EAAET,eAAe;IAC5BU,YAAY,EAAET;EAChB,CAAC;EAEL,OAAO;IACLU,SAAS,EAAEb,SAAS;IACpBc,IAAI,EAAE,aAAa;IACnBC,EAAE,EAAE,aAAa;IACjBC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE,CAAC;IACbC,MAAM,EAAE,IAAI;IACZC,IAAI,EAAE,IAAI;IACVC,KAAK,EAAE,IAAI;IACXC,MAAM,EAAE;MACNC,CAAC,EAAE,OAAO;MACVC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IACpC,CAAC;IACDjB,SAAS;IACTkB,QAAQ,EAAE;MACRlB,SAAS,EAAE;QACTC,KAAK,EAAED,SAAS,CAACC,KAAK;QACtBG,MAAM,EAAEJ,SAAS,CAACI;MACpB;IACF,CAAC;IACDe,CAAC,EAAE;EACL,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["CHART_CONFIG","getDataZoomConfig","getGridConfig","getGridLines","getLabelsConfig","getSeriesCandlestickConfig","getSeriesHeatmapConfig","getSeriesSentimentConfig","getTooltipConfig","getVisualMapConfig","getXAxisConfig","getYAxisConfig","isDifferenceGreaterThanTwoWeeks","getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","selectedPriceRef","current","initialStartZoom","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","heatmapChart","sentimentChart","animation","tooltip","tooltipLinesColor","grid","xAxis","yAxis","dataZoom","visualMap","sentimentLongColor","sentimentShortColor","graphic","dataset","source","series"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n isDesktop,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n selectedPriceRef,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n locale,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["CHART_CONFIG","getDataZoomConfig","getGridConfig","getGridLines","getLabelsConfig","getSeriesCandlestickConfig","getSeriesHeatmapConfig","getSeriesSentimentConfig","getTooltipConfig","getVisualMapConfig","getXAxisConfig","getYAxisConfig","isDifferenceGreaterThanTwoWeeks","getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","selectedPriceRef","current","initialStartZoom","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","heatmapChart","sentimentChart","animation","tooltip","tooltipLinesColor","grid","xAxis","yAxis","dataZoom","visualMap","sentimentLongColor","sentimentShortColor","graphic","dataset","source","series"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n isDesktop,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n selectedPriceRef,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, locale, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n locale,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,iBAAiB,EACjBC,aAAa,EACbC,YAAY,EACZC,eAAe,EACfC,0BAA0B,EAC1BC,sBAAsB,EACtBC,wBAAwB,EACxBC,gBAAgB,EAChBC,kBAAkB,EAClBC,cAAc,EACdC,cAAc,QACT,gBAAgB;AACvB,SAASC,+BAA+B,QAAQ,cAAc;AAC9D,SAASC,cAAc,QAAQ,6BAA6B;AAG5D,OAAO,MAAMC,SAAwB,GAAGC,IAAA,IAyBlC;EAAA,IAzBmC;IACvCC,QAAQ,EAAE;MACRC,KAAK;MACLC,WAAW;MACXC,YAAY;MACZC,UAAU;MACVC,WAAW;MACXC,UAAU;MACVC,WAAW;MACXC,eAAe;MACfC;IACF,CAAC;IACDC,cAAc,EAAE;MACdC,WAAW;MACXC,OAAO;MACPC,gBAAgB;MAChBC,QAAQ;MACRC,qBAAqB;MACrBC;IACF,CAAC;IACDC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC;EACF,CAAC,GAAAtB,IAAA;EACC,MAAMuB,MAAM,GAAGzB,cAAc,CAACqB,MAAM,CAAC;EACrC,MAAMK,gBAAgB,GAAG;IAAEC,OAAO,EAAE;EAAE,CAAC;EAEvC,MAAMC,gBAAgB,GAAGN,SAAS,GAC9BnC,YAAY,CAAC0C,0BAA0B,GACvC1C,YAAY,CAAC2C,yBAAyB;EAE1C,MAAMC,gBAAgB,GAAG3B,KAAK,CAAC4B,KAAK,CACjC5B,KAAK,CAAC6B,MAAM,GAAGL,gBAAgB,GAAI,GAAG,EACtCxB,KAAK,CAAC6B,MAAM,GAAG9C,YAAY,CAAC+C,gBAAgB,GAAI,GACnD,CAAC;EAED,MAAMC,qBAAqB,GAAGpC,+BAA+B,CAC3DgC,gBAAgB,CAAC,CAAC,CAAC,EACnBA,gBAAgB,CAACA,gBAAgB,CAACE,MAAM,GAAG,CAAC,CAC9C,CAAC;EAED,MAAMG,YAAY,GAChB3B,UAAU,IAAIA,UAAU,CAACwB,MAAM,GAAG,CAAC,GAC/B,CACExC,sBAAsB,CAAC;IACrBqB,WAAW;IACXC,OAAO;IACPM,MAAM;IACNF,qBAAqB;IACrBD,qBAAqB;IACrBE;EACF,CAAC,CAAC,CACH,GACD,EAAE;EAER,MAAMiB,cAAc,GAClBzB,cAAc,IAAIA,cAAc,CAACqB,MAAM,GAAG,CAAC,GACvC,CACEvC,wBAAwB,CAAC;IACvB+B,MAAM;IACNL;EACF,CAAC,CAAC,CACH,GACD,EAAE;EAER,OAAO;IACLkB,SAAS,EAAE,KAAK;IAChBC,OAAO,EAAE5C,gBAAgB,CAAC;MACxBsB,QAAQ;MACRH,WAAW;MACXC,OAAO;MACPQ,aAAa;MACbG,gBAAgB;MAChBc,iBAAiB,EAAEf,MAAM,CAACe,iBAAiB;MAC3C5B,cAAc;MACdD,eAAe;MACfW,SAAS;MACTD,MAAM;MACNG;IACF,CAAC,CAAC;IACFiB,IAAI,EAAEpD,aAAa,CAAC;MAAEiC;IAAU,CAAC,CAAC;IAClCoB,KAAK,EAAE7C,cAAc,CAAC;MACpBO,KAAK;MACL+B,qBAAqB;MACrBX,MAAM;MACNF;IACF,CAAC,CAAC;IACFqB,KAAK,EAAE7C,cAAc,CAAC;MACpBgB,WAAW;MACXE,gBAAgB;MAChBU;IACF,CAAC,CAAC;IACFkB,QAAQ,EAAExD,iBAAiB,CAAC;MAAEkC;IAAU,CAAC,CAAC;IAC1CuB,SAAS,EAAEjD,kBAAkB,CAAC;MAC5BkD,kBAAkB,EAAErB,MAAM,CAACqB,kBAAkB;MAC7CC,mBAAmB,EAAEtB,MAAM,CAACsB;IAC9B,CAAC,CAAC;IACFC,OAAO,EAAE,CACP,GAAG1D,YAAY,CAAC;MAAE+B,MAAM;MAAEC;IAAU,CAAC,CAAC,EACtC,GAAG/B,eAAe,CAAC;MAAE8B,MAAM;MAAEC,SAAS;MAAEE,MAAM;MAAED;IAAc,CAAC,CAAC,CACjE;IACD0B,OAAO,EAAE;MACPC,MAAM,EAAE;QACN9C,KAAK;QACLC,WAAW;QACXC,YAAY;QACZC,UAAU;QACVC,WAAW;QACXC,UAAU,EAAEA,UAAU,IAAI,EAAE;QAC5BC,WAAW,EAAEA,WAAW,IAAI,EAAE;QAC9BC,eAAe;QACfC;MACF;IACF,CAAC;IACDuC,MAAM,EAAE,CACN3D,0BAA0B,CAAC;MACzBiC,MAAM;MACNL,SAAS;MACTI;IACF,CAAC,CAAC,EACF,GAAGY,YAAY,EACf,GAAGC,cAAc;EAErB,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -2,7 +2,8 @@ import type { GraphicComponentOption } from 'echarts';
|
|
|
2
2
|
interface getLabelsConfigParams {
|
|
3
3
|
isDark: boolean;
|
|
4
4
|
isDesktop: boolean;
|
|
5
|
+
locale: string;
|
|
5
6
|
labelCallback: (key: string, params?: Record<string, unknown>) => string;
|
|
6
7
|
}
|
|
7
|
-
export declare const getLabelsConfig: ({ isDark, isDesktop, labelCallback, }: getLabelsConfigParams) => GraphicComponentOption[];
|
|
8
|
+
export declare const getLabelsConfig: ({ isDark, isDesktop, locale, labelCallback, }: getLabelsConfigParams) => GraphicComponentOption[];
|
|
8
9
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-crowd-view-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.67",
|
|
4
4
|
"description": "Labs Crowd View Widget",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"author": "OANDA",
|
|
14
14
|
"license": "UNLICENSED",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@oanda/labs-widget-common": "^1.0.
|
|
16
|
+
"@oanda/labs-widget-common": "^1.0.249",
|
|
17
17
|
"@oanda/mono-i18n": "10.0.1",
|
|
18
18
|
"chroma-js": "^3.1.2",
|
|
19
19
|
"decimal.js": "^10.6.0",
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
"@graphql-codegen/client-preset": "4.1.0",
|
|
25
25
|
"@types/chroma-js": "^3.1.2"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "7cdd69cbf04997c244ed467dd94e5827c029fcfa"
|
|
28
28
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { colorPalette } from '@oanda/labs-widget-common';
|
|
2
|
+
import { Locale } from '@oanda/mono-i18n';
|
|
2
3
|
import chroma from 'chroma-js';
|
|
3
4
|
import type { GraphicComponentOption } from 'echarts';
|
|
4
5
|
|
|
@@ -7,14 +8,18 @@ import { CHART_CONFIG } from '../../../constants';
|
|
|
7
8
|
interface getLabelsConfigParams {
|
|
8
9
|
isDark: boolean;
|
|
9
10
|
isDesktop: boolean;
|
|
11
|
+
locale: string;
|
|
10
12
|
labelCallback: (key: string, params?: Record<string, unknown>) => string;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export const getLabelsConfig = ({
|
|
14
16
|
isDark,
|
|
15
17
|
isDesktop,
|
|
18
|
+
locale,
|
|
16
19
|
labelCallback,
|
|
17
20
|
}: getLabelsConfigParams): GraphicComponentOption[] => {
|
|
21
|
+
const isJapanese = locale === Locale.ja;
|
|
22
|
+
|
|
18
23
|
const ySentimentLabelSize = isDesktop
|
|
19
24
|
? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE
|
|
20
25
|
: CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;
|
|
@@ -30,10 +35,17 @@ export const getLabelsConfig = ({
|
|
|
30
35
|
const backgroundColor = isDark ? colorPalette.black : colorPalette.white;
|
|
31
36
|
const shadowColor = chroma(colorPalette.black).alpha(0.1).hex();
|
|
32
37
|
|
|
38
|
+
const sentimentText =
|
|
39
|
+
isJapanese && isDesktop
|
|
40
|
+
? labelCallback('sentiment').split('').join('\n')
|
|
41
|
+
: labelCallback('sentiment').toUpperCase();
|
|
42
|
+
const priceText =
|
|
43
|
+
isJapanese && isDesktop
|
|
44
|
+
? labelCallback('price').split('').join('\n')
|
|
45
|
+
: labelCallback('price').toUpperCase();
|
|
46
|
+
|
|
33
47
|
// Estimate text width for centering rotated text
|
|
34
48
|
// Approximate: fontSize * characterCount * 0.65 (typical character width ratio)
|
|
35
|
-
const sentimentText = labelCallback('sentiment').toUpperCase();
|
|
36
|
-
const priceText = labelCallback('price').toUpperCase();
|
|
37
49
|
const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;
|
|
38
50
|
const priceEstimatedWidth = 10 * priceText.length * 0.65;
|
|
39
51
|
const sentimentVerticalOffset = sentimentEstimatedWidth / 2;
|
|
@@ -132,7 +144,7 @@ export const getLabelsConfig = ({
|
|
|
132
144
|
{
|
|
133
145
|
type: 'text',
|
|
134
146
|
z: 30,
|
|
135
|
-
rotation: isDesktop ? Math.PI / 2 : 0,
|
|
147
|
+
rotation: !isJapanese && isDesktop ? Math.PI / 2 : 0,
|
|
136
148
|
left: `5px`,
|
|
137
149
|
top: isDesktop
|
|
138
150
|
? `${topMargin + mainHeight / 2 - sentimentVerticalOffset}px`
|
|
@@ -149,7 +161,7 @@ export const getLabelsConfig = ({
|
|
|
149
161
|
{
|
|
150
162
|
type: 'text',
|
|
151
163
|
z: 30,
|
|
152
|
-
rotation: isDesktop ? -Math.PI / 2 : 0,
|
|
164
|
+
rotation: !isJapanese && isDesktop ? -Math.PI / 2 : 0,
|
|
153
165
|
right: `5px`,
|
|
154
166
|
top: isDesktop
|
|
155
167
|
? `${topMargin + mainHeight / 2 - priceVerticalOffset}px`
|
|
@@ -117,7 +117,7 @@ export const getOption: GetOptionType = ({
|
|
|
117
117
|
}),
|
|
118
118
|
graphic: [
|
|
119
119
|
...getGridLines({ isDark, isDesktop }),
|
|
120
|
-
...getLabelsConfig({ isDark, isDesktop, labelCallback }),
|
|
120
|
+
...getLabelsConfig({ isDark, isDesktop, locale, labelCallback }),
|
|
121
121
|
],
|
|
122
122
|
dataset: {
|
|
123
123
|
source: {
|