@oanda/labs-crowd-view-widget 1.0.55 → 1.0.56

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 (123) hide show
  1. package/CHANGELOG.md +228 -0
  2. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +8 -5
  3. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +15 -3
  5. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +28 -14
  7. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +19 -7
  9. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  10. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +20 -8
  11. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  12. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +44 -5
  13. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  14. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +14 -6
  15. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  16. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +11 -4
  17. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  18. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +2 -2
  19. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -1
  20. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +6 -5
  21. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -1
  22. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +72 -14
  23. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  24. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +3 -3
  25. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -1
  26. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js +11 -0
  27. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  28. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js +11 -0
  29. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js.map +1 -0
  30. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +1 -1
  31. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -1
  32. package/dist/main/CrowdViewWidget/components/Chart/getOption.js +9 -3
  33. package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  34. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  35. package/dist/main/CrowdViewWidget/components/Chart/useResizeObserver.js +47 -0
  36. package/dist/main/CrowdViewWidget/components/Chart/useResizeObserver.js.map +1 -0
  37. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +1 -1
  38. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  39. package/dist/main/CrowdViewWidget/constants.js +20 -7
  40. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  41. package/dist/main/CrowdViewWidget/selectConfig.js +3 -3
  42. package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -1
  43. package/dist/main/translations/sources/en.json +10 -9
  44. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +9 -6
  45. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  46. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +15 -3
  47. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  48. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +28 -14
  49. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  50. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +19 -7
  51. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  52. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +20 -8
  53. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  54. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +43 -5
  55. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  56. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +14 -6
  57. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  58. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +12 -5
  59. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  60. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +2 -2
  61. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -1
  62. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +6 -5
  63. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -1
  64. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +72 -14
  65. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  66. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +3 -3
  67. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -1
  68. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js +1 -0
  69. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  70. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js +4 -0
  71. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js.map +1 -0
  72. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +1 -1
  73. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -1
  74. package/dist/module/CrowdViewWidget/components/Chart/getOption.js +9 -3
  75. package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  76. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  77. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js +40 -0
  78. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js.map +1 -0
  79. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +1 -1
  80. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  81. package/dist/module/CrowdViewWidget/constants.js +20 -7
  82. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  83. package/dist/module/CrowdViewWidget/selectConfig.js +3 -3
  84. package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
  85. package/dist/module/translations/sources/en.json +10 -9
  86. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.d.ts +4 -1
  87. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.d.ts +2 -1
  88. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.d.ts +2 -1
  89. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.d.ts +1 -1
  90. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.d.ts +1 -1
  91. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.d.ts +4 -1
  92. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.d.ts +1 -1
  93. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/index.d.ts +1 -0
  94. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.d.ts +1 -0
  95. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +1 -0
  96. package/dist/types/CrowdViewWidget/components/Chart/useResizeObserver.d.ts +5 -0
  97. package/dist/types/CrowdViewWidget/constants.d.ts +24 -19
  98. package/package.json +3 -3
  99. package/src/CrowdViewWidget/components/Chart/Chart.tsx +12 -5
  100. package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +22 -3
  101. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts +34 -19
  102. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridLines.ts +27 -6
  103. package/src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts +26 -10
  104. package/src/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.ts +86 -43
  105. package/src/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.ts +12 -5
  106. package/src/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.ts +12 -6
  107. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.ts +3 -2
  108. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.ts +6 -4
  109. package/src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts +119 -22
  110. package/src/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.ts +8 -3
  111. package/src/CrowdViewWidget/components/Chart/chartUtils/index.ts +1 -0
  112. package/src/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.ts +3 -0
  113. package/src/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.ts +1 -1
  114. package/src/CrowdViewWidget/components/Chart/getOption.ts +6 -0
  115. package/src/CrowdViewWidget/components/Chart/types.ts +1 -0
  116. package/src/CrowdViewWidget/components/Chart/useResizeObserver.ts +51 -0
  117. package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +3 -2
  118. package/src/CrowdViewWidget/constants.ts +24 -5
  119. package/src/CrowdViewWidget/selectConfig.ts +4 -4
  120. package/src/translations/sources/en.json +10 -9
  121. package/test/components/Chart/utils/chartUtils.test.ts +16 -4
  122. package/test/components/Chart/utils/handleLabelUpdate.test.ts +32 -16
  123. package/test/utils/processPriceCandles.test.ts +4 -4
@@ -95,7 +95,8 @@ describe('handleLabelUpdate', () => {
95
95
  mockInstance,
96
96
  mainData,
97
97
  labelTimerRef,
98
- isGreaterThanTwoWeeksRef
98
+ isGreaterThanTwoWeeksRef,
99
+ 'en-US'
99
100
  );
100
101
 
101
102
  jest.advanceTimersByTime(50);
@@ -113,7 +114,8 @@ describe('handleLabelUpdate', () => {
113
114
  mockInstance,
114
115
  mainData,
115
116
  labelTimerRef,
116
- isGreaterThanTwoWeeksRef
117
+ isGreaterThanTwoWeeksRef,
118
+ 'en-US'
117
119
  );
118
120
 
119
121
  jest.advanceTimersByTime(50);
@@ -131,7 +133,8 @@ describe('handleLabelUpdate', () => {
131
133
  mockInstance,
132
134
  mainData,
133
135
  labelTimerRef,
134
- isGreaterThanTwoWeeksRef
136
+ isGreaterThanTwoWeeksRef,
137
+ 'en-US'
135
138
  );
136
139
 
137
140
  jest.advanceTimersByTime(50);
@@ -149,7 +152,8 @@ describe('handleLabelUpdate', () => {
149
152
  mockInstance,
150
153
  mainData,
151
154
  labelTimerRef,
152
- isGreaterThanTwoWeeksRef
155
+ isGreaterThanTwoWeeksRef,
156
+ 'en-US'
153
157
  );
154
158
 
155
159
  jest.advanceTimersByTime(50);
@@ -167,7 +171,8 @@ describe('handleLabelUpdate', () => {
167
171
  mockInstance,
168
172
  mainData,
169
173
  labelTimerRef,
170
- isGreaterThanTwoWeeksRef
174
+ isGreaterThanTwoWeeksRef,
175
+ 'en-US'
171
176
  );
172
177
 
173
178
  jest.advanceTimersByTime(50);
@@ -187,7 +192,8 @@ describe('handleLabelUpdate', () => {
187
192
  mockInstance,
188
193
  mainData,
189
194
  labelTimerRef,
190
- isGreaterThanTwoWeeksRef
195
+ isGreaterThanTwoWeeksRef,
196
+ 'en-US'
191
197
  );
192
198
 
193
199
  jest.advanceTimersByTime(50);
@@ -205,7 +211,8 @@ describe('handleLabelUpdate', () => {
205
211
  mockInstance,
206
212
  mainData,
207
213
  labelTimerRef,
208
- isGreaterThanTwoWeeksRef
214
+ isGreaterThanTwoWeeksRef,
215
+ 'en-US'
209
216
  );
210
217
 
211
218
  jest.advanceTimersByTime(50);
@@ -227,7 +234,8 @@ describe('handleLabelUpdate', () => {
227
234
  mockInstance,
228
235
  mainData,
229
236
  labelTimerRef,
230
- isGreaterThanTwoWeeksRef
237
+ isGreaterThanTwoWeeksRef,
238
+ 'en-US'
231
239
  );
232
240
 
233
241
  jest.advanceTimersByTime(50);
@@ -264,7 +272,8 @@ describe('handleLabelUpdate', () => {
264
272
  mockInstance,
265
273
  mainData,
266
274
  labelTimerRef,
267
- isGreaterThanTwoWeeksRef
275
+ isGreaterThanTwoWeeksRef,
276
+ 'en-US'
268
277
  );
269
278
 
270
279
  jest.advanceTimersByTime(50);
@@ -285,7 +294,8 @@ describe('handleLabelUpdate', () => {
285
294
  mockInstance,
286
295
  mainData,
287
296
  labelTimerRef,
288
- isGreaterThanTwoWeeksRef
297
+ isGreaterThanTwoWeeksRef,
298
+ 'en-US'
289
299
  );
290
300
 
291
301
  jest.advanceTimersByTime(50);
@@ -310,7 +320,8 @@ describe('handleLabelUpdate', () => {
310
320
  mockInstance,
311
321
  mainData,
312
322
  labelTimerRef,
313
- isGreaterThanTwoWeeksRef
323
+ isGreaterThanTwoWeeksRef,
324
+ 'en-US'
314
325
  );
315
326
 
316
327
  expect(clearTimeoutSpy).toHaveBeenCalledWith(existingTimeout);
@@ -329,7 +340,8 @@ describe('handleLabelUpdate', () => {
329
340
  mockInstance,
330
341
  mainData,
331
342
  labelTimerRef,
332
- isGreaterThanTwoWeeksRef
343
+ isGreaterThanTwoWeeksRef,
344
+ 'en-US'
333
345
  );
334
346
 
335
347
  // Should not be called before timeout
@@ -358,7 +370,8 @@ describe('handleLabelUpdate', () => {
358
370
  mockInstance,
359
371
  mainData,
360
372
  labelTimerRef,
361
- isGreaterThanTwoWeeksRef
373
+ isGreaterThanTwoWeeksRef,
374
+ 'en-US'
362
375
  );
363
376
 
364
377
  jest.advanceTimersByTime(50);
@@ -376,7 +389,8 @@ describe('handleLabelUpdate', () => {
376
389
 
377
390
  expect(mockFormatXAxisLabel).toHaveBeenCalledWith(
378
391
  '2025-01-01T00:00:00Z',
379
- true
392
+ true,
393
+ 'en-US'
380
394
  );
381
395
  });
382
396
 
@@ -392,7 +406,8 @@ describe('handleLabelUpdate', () => {
392
406
  mockInstance,
393
407
  mainData,
394
408
  labelTimerRef,
395
- isGreaterThanTwoWeeksRef
409
+ isGreaterThanTwoWeeksRef,
410
+ 'en-US'
396
411
  );
397
412
 
398
413
  jest.advanceTimersByTime(50);
@@ -412,7 +427,8 @@ describe('handleLabelUpdate', () => {
412
427
 
413
428
  expect(mockFormatXAxisAdditionalLabel).toHaveBeenCalledWith(
414
429
  '2025-01-02T00:00:00Z',
415
- true
430
+ true,
431
+ 'en-US'
416
432
  );
417
433
  });
418
434
  });
@@ -90,7 +90,7 @@ describe('processPriceCandles', () => {
90
90
  expect(result.minPrice).toBe(0.9);
91
91
  expect(result.maxPrice).toBe(1.8);
92
92
  expect(result.pipsLocation).toBe(4);
93
- expect(result.dates).toHaveLength(3);
93
+ expect(result.dates).toHaveLength(4);
94
94
  expect(result.candlesOpen).toHaveLength(3);
95
95
  expect(result.candlesClose).toHaveLength(3);
96
96
  expect(result.candlesLow).toHaveLength(3);
@@ -131,7 +131,7 @@ describe('processPriceCandles', () => {
131
131
  expect(result.minPrice).toBe(1.0);
132
132
  expect(result.maxPrice).toBe(1.8);
133
133
  expect(result.pipsLocation).toBe(4);
134
- expect(result.dates).toHaveLength(2);
134
+ expect(result.dates).toHaveLength(3);
135
135
  expect(result.candlesOpen).toHaveLength(2);
136
136
  });
137
137
 
@@ -188,7 +188,7 @@ describe('processPriceCandles', () => {
188
188
  expect(result.minPrice).toBe(1.0);
189
189
  expect(result.maxPrice).toBe(1.5);
190
190
  expect(result.pipsLocation).toBe(4);
191
- expect(result.dates).toHaveLength(1);
191
+ expect(result.dates).toHaveLength(2);
192
192
  expect(result.candlesOpen).toHaveLength(1);
193
193
  });
194
194
 
@@ -263,7 +263,7 @@ describe('processPriceCandles', () => {
263
263
  const result = processPriceCandles(mockData);
264
264
  expect(result.hasValidCandles).toBe(true);
265
265
  expect(result.pipsLocation).toBe(4);
266
- expect(result.dates).toHaveLength(10000);
266
+ expect(result.dates).toHaveLength(10001);
267
267
  // Should calculate min/max without stack overflow
268
268
  expect(result.minPrice).toBeGreaterThan(0);
269
269
  expect(result.maxPrice).toBeGreaterThan(result.minPrice);