@oanda/labs-sentiment-widget 1.0.67 → 1.0.69

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 (49) hide show
  1. package/CHANGELOG.md +524 -0
  2. package/dist/main/SentimentWidget/Tool.js +11 -4
  3. package/dist/main/SentimentWidget/Tool.js.map +1 -1
  4. package/dist/main/SentimentWidget/Widget.js +15 -5
  5. package/dist/main/SentimentWidget/Widget.js.map +1 -1
  6. package/dist/main/constant.js +2 -1
  7. package/dist/main/constant.js.map +1 -1
  8. package/dist/main/gql/getInstrumentSentiment.js +1 -1
  9. package/dist/main/gql/getInstrumentSentiment.js.map +1 -1
  10. package/dist/main/gql/getSentimentList.js +1 -1
  11. package/dist/main/gql/getSentimentList.js.map +1 -1
  12. package/dist/main/gql/types/gql.js +2 -2
  13. package/dist/main/gql/types/gql.js.map +1 -1
  14. package/dist/main/gql/types/graphql.js +55 -1
  15. package/dist/main/gql/types/graphql.js.map +1 -1
  16. package/dist/main/translations/sources/en.json +3 -1
  17. package/dist/main/translations/sources/zh_TW.json +3 -1
  18. package/dist/module/SentimentWidget/Tool.js +13 -6
  19. package/dist/module/SentimentWidget/Tool.js.map +1 -1
  20. package/dist/module/SentimentWidget/Widget.js +17 -7
  21. package/dist/module/SentimentWidget/Widget.js.map +1 -1
  22. package/dist/module/constant.js +2 -1
  23. package/dist/module/constant.js.map +1 -1
  24. package/dist/module/gql/getInstrumentSentiment.js +1 -1
  25. package/dist/module/gql/getInstrumentSentiment.js.map +1 -1
  26. package/dist/module/gql/getSentimentList.js +1 -1
  27. package/dist/module/gql/getSentimentList.js.map +1 -1
  28. package/dist/module/gql/types/gql.js +2 -2
  29. package/dist/module/gql/types/gql.js.map +1 -1
  30. package/dist/module/gql/types/graphql.js +54 -0
  31. package/dist/module/gql/types/graphql.js.map +1 -1
  32. package/dist/module/translations/sources/en.json +3 -1
  33. package/dist/module/translations/sources/zh_TW.json +3 -1
  34. package/dist/types/SentimentWidget/utils.d.ts +1 -0
  35. package/dist/types/constant.d.ts +2 -1
  36. package/dist/types/gql/types/gql.d.ts +4 -4
  37. package/dist/types/gql/types/graphql.d.ts +92 -15
  38. package/package.json +3 -3
  39. package/src/SentimentWidget/Tool.tsx +21 -4
  40. package/src/SentimentWidget/Widget.tsx +35 -23
  41. package/src/constant.ts +3 -1
  42. package/src/gql/getInstrumentSentiment.ts +1 -0
  43. package/src/gql/getSentimentList.ts +1 -0
  44. package/src/gql/types/gql.ts +4 -4
  45. package/src/gql/types/graphql.ts +108 -20
  46. package/src/translations/sources/en.json +3 -1
  47. package/src/translations/sources/zh_TW.json +3 -1
  48. package/test/Widget.test.tsx +4 -4
  49. package/test/sortData.test.ts +42 -12
package/CHANGELOG.md CHANGED
@@ -3,6 +3,530 @@
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.69 (2024-01-17)
7
+
8
+
9
+
10
+ ## 1.0.68 (2024-01-15)
11
+
12
+
13
+
14
+ ## 1.0.67 (2024-01-15)
15
+
16
+
17
+
18
+ ## 1.0.66 (2024-01-12)
19
+
20
+
21
+
22
+ ## 1.0.65 (2024-01-11)
23
+
24
+
25
+
26
+ ## 1.0.64 (2024-01-11)
27
+
28
+
29
+
30
+ ## 1.0.63 (2024-01-11)
31
+
32
+
33
+
34
+ ## 1.0.62 (2024-01-10)
35
+
36
+
37
+
38
+ ## 1.0.61 (2024-01-09)
39
+
40
+
41
+
42
+ ## 1.0.60 (2024-01-05)
43
+
44
+
45
+
46
+ ## 1.0.59 (2023-12-27)
47
+
48
+
49
+
50
+ ## 1.0.58 (2023-12-22)
51
+
52
+
53
+
54
+ ## 1.0.57 (2023-12-22)
55
+
56
+
57
+
58
+ ## 1.0.56 (2023-12-21)
59
+
60
+
61
+
62
+ ## 1.0.55 (2023-12-19)
63
+
64
+
65
+
66
+ ## 1.0.54 (2023-12-15)
67
+
68
+
69
+
70
+ ## 1.0.53 (2023-12-13)
71
+
72
+
73
+
74
+ ## 1.0.52 (2023-12-13)
75
+
76
+
77
+
78
+ ## 1.0.51 (2023-12-07)
79
+
80
+
81
+
82
+ ## 1.0.50 (2023-12-04)
83
+
84
+
85
+
86
+ ## 1.0.49 (2023-12-01)
87
+
88
+
89
+
90
+ ## 1.0.48 (2023-12-01)
91
+
92
+
93
+
94
+ ## 1.0.47 (2023-11-29)
95
+
96
+
97
+
98
+ ## 1.0.46 (2023-11-28)
99
+
100
+
101
+
102
+ ## 1.0.45 (2023-11-23)
103
+
104
+
105
+
106
+ ## 1.0.44 (2023-11-22)
107
+
108
+
109
+
110
+ ## 1.0.43 (2023-11-15)
111
+
112
+
113
+
114
+ ## 1.0.42 (2023-11-10)
115
+
116
+
117
+
118
+ ## 1.0.41 (2023-11-03)
119
+
120
+
121
+
122
+ ## 1.0.40 (2023-11-02)
123
+
124
+
125
+
126
+ ## 1.0.39 (2023-11-02)
127
+
128
+
129
+
130
+ ## 1.0.38 (2023-10-26)
131
+
132
+
133
+
134
+ ## 1.0.37 (2023-10-26)
135
+
136
+
137
+
138
+ ## 1.0.36 (2023-10-25)
139
+
140
+
141
+
142
+ ## 1.0.35 (2023-10-24)
143
+
144
+
145
+
146
+ ## 1.0.34 (2023-10-23)
147
+
148
+
149
+
150
+ ## 1.0.33 (2023-10-23)
151
+
152
+
153
+
154
+ ## 1.0.32 (2023-10-23)
155
+
156
+
157
+
158
+ ## 1.0.31 (2023-10-20)
159
+
160
+
161
+
162
+ ## 1.0.30 (2023-10-19)
163
+
164
+
165
+
166
+ ## 1.0.29 (2023-10-19)
167
+
168
+
169
+
170
+ ## 1.0.28 (2023-10-19)
171
+
172
+
173
+
174
+ ## 1.0.27 (2023-10-18)
175
+
176
+
177
+
178
+ ## 1.0.26 (2023-10-18)
179
+
180
+
181
+
182
+ ## 1.0.25 (2023-10-17)
183
+
184
+
185
+
186
+ ## 1.0.24 (2023-10-13)
187
+
188
+
189
+
190
+ ## 1.0.23 (2023-10-13)
191
+
192
+
193
+
194
+ ## 1.0.22 (2023-10-11)
195
+
196
+
197
+
198
+ ## 1.0.21 (2023-10-10)
199
+
200
+
201
+
202
+ ## 1.0.20 (2023-10-06)
203
+
204
+
205
+
206
+ ## 1.0.19 (2023-10-06)
207
+
208
+
209
+
210
+ ## 1.0.18 (2023-10-05)
211
+
212
+
213
+
214
+ ## 1.0.17 (2023-10-04)
215
+
216
+
217
+
218
+ ## 1.0.16 (2023-10-04)
219
+
220
+
221
+
222
+ ## 1.0.15 (2023-10-04)
223
+
224
+
225
+
226
+ ## 1.0.14 (2023-10-03)
227
+
228
+
229
+
230
+ ## 1.0.13 (2023-10-03)
231
+
232
+
233
+
234
+ ## 1.0.12 (2023-10-03)
235
+
236
+
237
+
238
+ ## 1.0.11 (2023-10-02)
239
+
240
+
241
+
242
+ ## 1.0.10 (2023-09-29)
243
+
244
+
245
+
246
+ ## 1.0.9 (2023-09-28)
247
+
248
+
249
+
250
+ ## 1.0.8 (2023-09-27)
251
+
252
+
253
+
254
+ ## 1.0.7 (2023-09-26)
255
+
256
+
257
+
258
+ ## 1.0.6 (2023-09-21)
259
+
260
+
261
+
262
+ ## 1.0.5 (2023-09-13)
263
+
264
+ **Note:** Version bump only for package @oanda/labs-sentiment-widget
265
+
266
+
267
+
268
+
269
+
270
+ ## 1.0.68 (2024-01-15)
271
+
272
+
273
+
274
+ ## 1.0.67 (2024-01-15)
275
+
276
+
277
+
278
+ ## 1.0.66 (2024-01-12)
279
+
280
+
281
+
282
+ ## 1.0.65 (2024-01-11)
283
+
284
+
285
+
286
+ ## 1.0.64 (2024-01-11)
287
+
288
+
289
+
290
+ ## 1.0.63 (2024-01-11)
291
+
292
+
293
+
294
+ ## 1.0.62 (2024-01-10)
295
+
296
+
297
+
298
+ ## 1.0.61 (2024-01-09)
299
+
300
+
301
+
302
+ ## 1.0.60 (2024-01-05)
303
+
304
+
305
+
306
+ ## 1.0.59 (2023-12-27)
307
+
308
+
309
+
310
+ ## 1.0.58 (2023-12-22)
311
+
312
+
313
+
314
+ ## 1.0.57 (2023-12-22)
315
+
316
+
317
+
318
+ ## 1.0.56 (2023-12-21)
319
+
320
+
321
+
322
+ ## 1.0.55 (2023-12-19)
323
+
324
+
325
+
326
+ ## 1.0.54 (2023-12-15)
327
+
328
+
329
+
330
+ ## 1.0.53 (2023-12-13)
331
+
332
+
333
+
334
+ ## 1.0.52 (2023-12-13)
335
+
336
+
337
+
338
+ ## 1.0.51 (2023-12-07)
339
+
340
+
341
+
342
+ ## 1.0.50 (2023-12-04)
343
+
344
+
345
+
346
+ ## 1.0.49 (2023-12-01)
347
+
348
+
349
+
350
+ ## 1.0.48 (2023-12-01)
351
+
352
+
353
+
354
+ ## 1.0.47 (2023-11-29)
355
+
356
+
357
+
358
+ ## 1.0.46 (2023-11-28)
359
+
360
+
361
+
362
+ ## 1.0.45 (2023-11-23)
363
+
364
+
365
+
366
+ ## 1.0.44 (2023-11-22)
367
+
368
+
369
+
370
+ ## 1.0.43 (2023-11-15)
371
+
372
+
373
+
374
+ ## 1.0.42 (2023-11-10)
375
+
376
+
377
+
378
+ ## 1.0.41 (2023-11-03)
379
+
380
+
381
+
382
+ ## 1.0.40 (2023-11-02)
383
+
384
+
385
+
386
+ ## 1.0.39 (2023-11-02)
387
+
388
+
389
+
390
+ ## 1.0.38 (2023-10-26)
391
+
392
+
393
+
394
+ ## 1.0.37 (2023-10-26)
395
+
396
+
397
+
398
+ ## 1.0.36 (2023-10-25)
399
+
400
+
401
+
402
+ ## 1.0.35 (2023-10-24)
403
+
404
+
405
+
406
+ ## 1.0.34 (2023-10-23)
407
+
408
+
409
+
410
+ ## 1.0.33 (2023-10-23)
411
+
412
+
413
+
414
+ ## 1.0.32 (2023-10-23)
415
+
416
+
417
+
418
+ ## 1.0.31 (2023-10-20)
419
+
420
+
421
+
422
+ ## 1.0.30 (2023-10-19)
423
+
424
+
425
+
426
+ ## 1.0.29 (2023-10-19)
427
+
428
+
429
+
430
+ ## 1.0.28 (2023-10-19)
431
+
432
+
433
+
434
+ ## 1.0.27 (2023-10-18)
435
+
436
+
437
+
438
+ ## 1.0.26 (2023-10-18)
439
+
440
+
441
+
442
+ ## 1.0.25 (2023-10-17)
443
+
444
+
445
+
446
+ ## 1.0.24 (2023-10-13)
447
+
448
+
449
+
450
+ ## 1.0.23 (2023-10-13)
451
+
452
+
453
+
454
+ ## 1.0.22 (2023-10-11)
455
+
456
+
457
+
458
+ ## 1.0.21 (2023-10-10)
459
+
460
+
461
+
462
+ ## 1.0.20 (2023-10-06)
463
+
464
+
465
+
466
+ ## 1.0.19 (2023-10-06)
467
+
468
+
469
+
470
+ ## 1.0.18 (2023-10-05)
471
+
472
+
473
+
474
+ ## 1.0.17 (2023-10-04)
475
+
476
+
477
+
478
+ ## 1.0.16 (2023-10-04)
479
+
480
+
481
+
482
+ ## 1.0.15 (2023-10-04)
483
+
484
+
485
+
486
+ ## 1.0.14 (2023-10-03)
487
+
488
+
489
+
490
+ ## 1.0.13 (2023-10-03)
491
+
492
+
493
+
494
+ ## 1.0.12 (2023-10-03)
495
+
496
+
497
+
498
+ ## 1.0.11 (2023-10-02)
499
+
500
+
501
+
502
+ ## 1.0.10 (2023-09-29)
503
+
504
+
505
+
506
+ ## 1.0.9 (2023-09-28)
507
+
508
+
509
+
510
+ ## 1.0.8 (2023-09-27)
511
+
512
+
513
+
514
+ ## 1.0.7 (2023-09-26)
515
+
516
+
517
+
518
+ ## 1.0.6 (2023-09-21)
519
+
520
+
521
+
522
+ ## 1.0.5 (2023-09-13)
523
+
524
+ **Note:** Version bump only for package @oanda/labs-sentiment-widget
525
+
526
+
527
+
528
+
529
+
6
530
  ## 1.0.67 (2024-01-15)
7
531
 
8
532
 
@@ -31,14 +31,17 @@ const Tool = _ref => {
31
31
  },
32
32
  fetchPolicy: 'cache-and-network'
33
33
  });
34
+ const {
35
+ lang
36
+ } = (0, _monoI18n.useLocale)();
37
+ const [updatedTimestamp, setUpdatedTimestamp] = (0, _react.useState)(_constant.EMPTY_VALUE);
34
38
  (0, _react.useEffect)(() => {
35
39
  if (data) {
40
+ var _;
36
41
  setSortedData((0, _utils.sortData)(data, sort));
42
+ setUpdatedTimestamp((0, _labsWidgetCommon.formatUpdatedTimestamp)((_ = data.sentimentList[0]) === null || _ === void 0 ? void 0 : _.updatedAt, lang('today')));
37
43
  }
38
44
  }, [data, sort]);
39
- const {
40
- lang
41
- } = (0, _monoI18n.useLocale)();
42
45
  return _react.default.createElement("div", {
43
46
  "data-testid": "sentiment-tool",
44
47
  className: "lw-relative lw-bg-bg-primary lw-text-sm lw-tracking-normal lw-text-text-primary"
@@ -77,7 +80,11 @@ const Tool = _ref => {
77
80
  sentiment: item.sentiment
78
81
  }))))), _react.default.createElement(_labsWidgetCommon.Tooltip, {
79
82
  id: _constant.INSTRUMENT_TOOLTIP_ID
80
- }));
83
+ }), !error && _react.default.createElement("div", {
84
+ className: "lw-mt-2 lw-h-8"
85
+ }, _react.default.createElement(_labsWidgetCommon.InfoBox, {
86
+ text: "".concat(lang('last_updated'), ": ").concat(updatedTimestamp)
87
+ })));
81
88
  };
82
89
  exports.Tool = Tool;
83
90
  //# sourceMappingURL=Tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_client","_monoI18n","_getSentimentList","_utils","_SortSwitch","_graphql","_constant","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Tool","_ref","division","sort","setSort","useState","Sort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","useQuery","getSentimentList","variables","fetchPolicy","useEffect","sortData","lang","useLocale","createElement","className","length","ChartError","Fragment","SortSwitch","disabled","selected","SelectedArrow","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","Loader","size","LoaderSize","md","Truncate","maxWidth","tooltipId","INSTRUMENT_TOOLTIP_ID","text","displayName","Sentiment","isLoading","height","SentimentHeight","sentiment","Tooltip","id","exports"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport {\n GetSentimentListQuery, GetSentimentListQueryVariables, SentimentInstrument, Sort,\n} from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<Omit<SentimentInstrument, 'id'>[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n }\n }, [data, sort]);\n\n const { lang } = useLocale();\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"lw-relative lw-bg-bg-primary lw-text-sm lw-tracking-normal lw-text-text-primary\">\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === Sort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <div className=\"lw-mb-2 lw-flex lw-justify-between lw-font-semibold\">\n <span className=\"lw-ml-[7.5rem] lw-uppercase md:lw-ml-40\">{lang('net_short')}</span>\n <span className=\"lw-text-right lw-uppercase md:lw-mr-10\">{lang('net_long')}</span>\n </div>\n {sortedData.map((item, index) => (\n <div className=\"lw-flex lw-h-8 lw-w-full lw-items-center\" key={item.name || index}>\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={item.displayName || '\\u2014'}\n />\n )}\n </div>\n <Sentiment\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_client","_monoI18n","_getSentimentList","_utils","_SortSwitch","_graphql","_constant","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Tool","_ref","division","sort","setSort","useState","Sort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","useQuery","getSentimentList","variables","fetchPolicy","lang","useLocale","updatedTimestamp","setUpdatedTimestamp","EMPTY_VALUE","useEffect","_","sortData","formatUpdatedTimestamp","sentimentList","updatedAt","createElement","className","length","ChartError","Fragment","SortSwitch","disabled","selected","SelectedArrow","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","Loader","size","LoaderSize","md","Truncate","maxWidth","tooltipId","INSTRUMENT_TOOLTIP_ID","text","displayName","Sentiment","isLoading","height","SentimentHeight","sentiment","Tooltip","id","InfoBox","concat","exports"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment,\n SentimentHeight,\n Loader,\n LoaderSize,\n ChartError,\n Truncate,\n Tooltip,\n InfoBox,\n formatUpdatedTimestamp,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport {\n GetSentimentListQuery, GetSentimentListQueryVariables, SentimentInstrument, Sort,\n} from '../gql/types/graphql';\nimport { EMPTY_VALUE, INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<Omit<SentimentInstrument, 'id'>[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const { lang } = useLocale();\n const [updatedTimestamp, setUpdatedTimestamp] = useState(EMPTY_VALUE);\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n setUpdatedTimestamp(formatUpdatedTimestamp(data.sentimentList![0]?.updatedAt, lang('today')));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, sort]);\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"lw-relative lw-bg-bg-primary lw-text-sm lw-tracking-normal lw-text-text-primary\">\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === Sort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <div className=\"lw-mb-2 lw-flex lw-justify-between lw-font-semibold\">\n <span className=\"lw-ml-[7.5rem] lw-uppercase md:lw-ml-40\">{lang('net_short')}</span>\n <span className=\"lw-text-right lw-uppercase md:lw-mr-10\">{lang('net_long')}</span>\n </div>\n {sortedData.map((item, index) => (\n <div className=\"lw-flex lw-h-8 lw-w-full lw-items-center\" key={item.name || index}>\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={item.displayName || '\\u2014'}\n />\n )}\n </div>\n <Sentiment\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n {!error\n && (\n <div className=\"lw-mt-2 lw-h-8\">\n <InfoBox text={`${lang('last_updated')}: ${updatedTimestamp}`} />\n </div>\n )}\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
@@ -6,12 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Widget = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
+ var _monoI18n = require("@oanda/mono-i18n");
9
10
  var _client = require("@apollo/client");
10
11
  var _getInstrumentSentiment = require("../gql/getInstrumentSentiment");
11
12
  var _constant = require("../constant");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14
  const Widget = _ref => {
14
- var _data$sentiment, _data$sentiment2;
15
+ var _data$sentiment;
15
16
  let {
16
17
  instrument,
17
18
  division
@@ -28,10 +29,15 @@ const Widget = _ref => {
28
29
  fetchPolicy: 'cache-and-network'
29
30
  });
30
31
  const {
31
- sentiment
32
+ lang
33
+ } = (0, _monoI18n.useLocale)();
34
+ const {
35
+ displayName,
36
+ sentiment,
37
+ updatedAt
32
38
  } = (data === null || data === void 0 || (_data$sentiment = data.sentiment) === null || _data$sentiment === void 0 ? void 0 : _data$sentiment[0]) || {};
33
39
  const isError = error || (sentiment === null || sentiment === void 0 ? void 0 : sentiment.shortPercent) === 0 && (sentiment === null || sentiment === void 0 ? void 0 : sentiment.longPercent) === 0 || (sentiment === null || sentiment === void 0 ? void 0 : sentiment.shortPercent) === undefined || (sentiment === null || sentiment === void 0 ? void 0 : sentiment.longPercent) === undefined;
34
- return _react.default.createElement("div", {
40
+ return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
35
41
  "data-testid": "sentiment-widget",
36
42
  className: "lw-border lw-border-solid lw-border-border-primary lw-bg-bg-primary lw-p-4 lw-text-sm lw-tracking-normal lw-text-text-primary"
37
43
  }, _react.default.createElement("div", {
@@ -44,13 +50,17 @@ const Widget = _ref => {
44
50
  maxWidth: 120,
45
51
  tooltipId: _constant.INSTRUMENT_TOOLTIP_ID,
46
52
  className: "lw-pr-2 lw-font-sans lw-text-sm lw-font-bold",
47
- text: (data === null || data === void 0 || (_data$sentiment2 = data.sentiment) === null || _data$sentiment2 === void 0 || (_data$sentiment2 = _data$sentiment2[0]) === null || _data$sentiment2 === void 0 ? void 0 : _data$sentiment2.displayName) || '\u2014'
53
+ text: displayName || '\u2014'
48
54
  })), _react.default.createElement(_labsWidgetCommon.Sentiment, {
49
55
  withError: false,
50
56
  isLoading: loading,
51
57
  height: _labsWidgetCommon.SentimentHeight.md,
52
58
  sentiment: sentiment
53
- })), !loading && isError && _react.default.createElement(_labsWidgetCommon.Error, null));
59
+ })), !loading && isError && _react.default.createElement(_labsWidgetCommon.Error, null)), !isError && updatedAt && _react.default.createElement("div", {
60
+ className: "lw-mt-2 lw-h-8"
61
+ }, _react.default.createElement(_labsWidgetCommon.InfoBox, {
62
+ text: "".concat(lang('last_updated'), ": ").concat((0, _labsWidgetCommon.formatUpdatedTimestamp)(updatedAt, lang('today')) || _constant.EMPTY_VALUE)
63
+ })));
54
64
  };
55
65
  exports.Widget = Widget;
56
66
  //# sourceMappingURL=Widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Widget.js","names":["_react","_interopRequireDefault","require","_labsWidgetCommon","_client","_getInstrumentSentiment","_constant","obj","__esModule","default","Widget","_ref","_data$sentiment","_data$sentiment2","instrument","division","loading","data","error","useQuery","getInstrumentSentiment","variables","name","fetchPolicy","sentiment","isError","shortPercent","longPercent","undefined","createElement","className","Loader","size","LoaderSize","md","Truncate","maxWidth","tooltipId","INSTRUMENT_TOOLTIP_ID","text","displayName","Sentiment","withError","isLoading","height","SentimentHeight","Error","exports"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Error, Loader, LoaderSize, Truncate,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\nimport { SentimentWidgetConfig } from './types';\nimport { GetInstrumentSentimentQuery, GetInstrumentSentimentQueryVariables } from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Widget = ({ instrument, division }: SentimentWidgetConfig) => {\n const { loading, data, error } = useQuery<\n GetInstrumentSentimentQuery,\n GetInstrumentSentimentQueryVariables\n >(getInstrumentSentiment, {\n variables: {\n name: instrument,\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const { sentiment } = data?.sentiment?.[0] || {};\n const isError = error\n || (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0)\n || sentiment?.shortPercent === undefined\n || sentiment?.longPercent === undefined;\n\n return (\n <div data-testid=\"sentiment-widget\" className=\"lw-border lw-border-solid lw-border-border-primary lw-bg-bg-primary lw-p-4 lw-text-sm lw-tracking-normal lw-text-text-primary\">\n <div className=\"lw-flex lw-items-center lw-justify-between\">\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading && <Loader size={LoaderSize.md} />}\n {!loading && !isError && (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={data?.sentiment?.[0]?.displayName || '\\u2014'}\n />\n )}\n </div>\n <Sentiment\n withError={false}\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={sentiment}\n />\n </div>\n {!loading && isError && <Error />}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AAGA,IAAAI,SAAA,GAAAJ,OAAA;AAAoD,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpD,MAAMG,MAAM,GAAGC,IAAA,IAAqD;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EAAA,IAApD;IAAEC,UAAU;IAAEC;EAAgC,CAAC,GAAAJ,IAAA;EAC7D,MAAM;IAAEK,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,gBAAQ,EAGvCC,8CAAsB,EAAE;IACxBC,SAAS,EAAE;MACTC,IAAI,EAAER,UAAU;MAChBC;IACF,CAAC;IACDQ,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAU,CAAC,GAAG,CAAAP,IAAI,aAAJA,IAAI,gBAAAL,eAAA,GAAJK,IAAI,CAAEO,SAAS,cAAAZ,eAAA,uBAAfA,eAAA,CAAkB,CAAC,CAAC,KAAI,CAAC,CAAC;EAChD,MAAMa,OAAO,GAAGP,KAAK,IACf,CAAAM,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAK,CAAC,IAAI,CAAAF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAK,CAAE,IAC/D,CAAAH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAKE,SAAS,IACrC,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAKC,SAAS;EAEzC,OACE5B,MAAA,CAAAS,OAAA,CAAAoB,aAAA;IAAK,eAAY,kBAAkB;IAACC,SAAS,EAAC;EAA+H,GAC3K9B,MAAA,CAAAS,OAAA,CAAAoB,aAAA;IAAKC,SAAS,EAAC;EAA4C,GACzD9B,MAAA,CAAAS,OAAA,CAAAoB,aAAA;IAAKC,SAAS,EAAC;EAA0B,GACtCd,OAAO,IAAIhB,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAAC1B,iBAAA,CAAA4B,MAAM;IAACC,IAAI,EAAEC,4BAAU,CAACC;EAAG,CAAE,CAAC,EAC1C,CAAClB,OAAO,IAAI,CAACS,OAAO,IACnBzB,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAAC1B,iBAAA,CAAAgC,QAAQ;IACPC,QAAQ,EAAE,GAAI;IACdC,SAAS,EAAEC,+BAAsB;IACjCR,SAAS,EAAC,8CAA8C;IACxDS,IAAI,EAAE,CAAAtB,IAAI,aAAJA,IAAI,gBAAAJ,gBAAA,GAAJI,IAAI,CAAEO,SAAS,cAAAX,gBAAA,gBAAAA,gBAAA,GAAfA,gBAAA,CAAkB,CAAC,CAAC,cAAAA,gBAAA,uBAApBA,gBAAA,CAAsB2B,WAAW,KAAI;EAAS,CACrD,CAEA,CAAC,EACNxC,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAAC1B,iBAAA,CAAAsC,SAAS;IACRC,SAAS,EAAE,KAAM;IACjBC,SAAS,EAAE3B,OAAQ;IACnB4B,MAAM,EAAEC,iCAAe,CAACX,EAAG;IAC3BV,SAAS,EAAEA;EAAU,CACtB,CACE,CAAC,EACL,CAACR,OAAO,IAAIS,OAAO,IAAIzB,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAAC1B,iBAAA,CAAA2C,KAAK,MAAE,CAC7B,CAAC;AAEV,CAAC;AAACC,OAAA,CAAArC,MAAA,GAAAA,MAAA"}
1
+ {"version":3,"file":"Widget.js","names":["_react","_interopRequireDefault","require","_labsWidgetCommon","_monoI18n","_client","_getInstrumentSentiment","_constant","obj","__esModule","default","Widget","_ref","_data$sentiment","instrument","division","loading","data","error","useQuery","getInstrumentSentiment","variables","name","fetchPolicy","lang","useLocale","displayName","sentiment","updatedAt","isError","shortPercent","longPercent","undefined","createElement","Fragment","className","Loader","size","LoaderSize","md","Truncate","maxWidth","tooltipId","INSTRUMENT_TOOLTIP_ID","text","Sentiment","withError","isLoading","height","SentimentHeight","Error","InfoBox","concat","formatUpdatedTimestamp","EMPTY_VALUE","exports"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Error, Loader, LoaderSize, Truncate, InfoBox, formatUpdatedTimestamp,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\nimport { SentimentWidgetConfig } from './types';\nimport { GetInstrumentSentimentQuery, GetInstrumentSentimentQueryVariables } from '../gql/types/graphql';\nimport { EMPTY_VALUE, INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Widget = ({ instrument, division }: SentimentWidgetConfig) => {\n const { loading, data, error } = useQuery<\n GetInstrumentSentimentQuery,\n GetInstrumentSentimentQueryVariables\n >(getInstrumentSentiment, {\n variables: {\n name: instrument,\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const { lang } = useLocale();\n\n const { displayName, sentiment, updatedAt } = data?.sentiment?.[0] || {};\n\n const isError = error\n || (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0)\n || sentiment?.shortPercent === undefined\n || sentiment?.longPercent === undefined;\n\n return (\n <>\n <div data-testid=\"sentiment-widget\" className=\"lw-border lw-border-solid lw-border-border-primary lw-bg-bg-primary lw-p-4 lw-text-sm lw-tracking-normal lw-text-text-primary\">\n <div className=\"lw-flex lw-items-center lw-justify-between\">\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading && <Loader size={LoaderSize.md} />}\n {!loading && !isError && (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={displayName || '\\u2014'}\n />\n )}\n </div>\n <Sentiment\n withError={false}\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={sentiment}\n />\n </div>\n\n {!loading && isError && <Error />}\n </div>\n {!isError && updatedAt && (\n <div className=\"lw-mt-2 lw-h-8\">\n <InfoBox text={`${lang('last_updated')}: ${formatUpdatedTimestamp(updatedAt, lang('today')) || EMPTY_VALUE}`} />\n </div>\n )}\n </>\n );\n};\n\nexport { Widget };\n"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.INSTRUMENT_TOOLTIP_ID = void 0;
6
+ exports.INSTRUMENT_TOOLTIP_ID = exports.EMPTY_VALUE = void 0;
7
+ const EMPTY_VALUE = exports.EMPTY_VALUE = '\u2014';
7
8
  const INSTRUMENT_TOOLTIP_ID = exports.INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';
8
9
  //# sourceMappingURL=constant.js.map