@oanda/labs-widget-common 1.0.196 → 1.0.197

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 CHANGED
@@ -3,6 +3,782 @@
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.197 (2025-05-23)
7
+
8
+
9
+
10
+ ## 1.0.196 (2025-05-22)
11
+
12
+
13
+
14
+ ## 1.0.195 (2025-05-21)
15
+
16
+
17
+
18
+ ## 1.0.194 (2025-05-21)
19
+
20
+
21
+
22
+ ## 1.0.193 (2025-05-15)
23
+
24
+
25
+
26
+ ## 1.0.192 (2025-05-14)
27
+
28
+
29
+
30
+ ## 1.0.191 (2025-04-30)
31
+
32
+
33
+
34
+ ## 1.0.190 (2025-04-28)
35
+
36
+
37
+
38
+ ## 1.0.189 (2025-04-23)
39
+
40
+
41
+
42
+ ## 1.0.188 (2025-04-22)
43
+
44
+
45
+
46
+ ## 1.0.187 (2025-04-18)
47
+
48
+
49
+
50
+ ## 1.0.186 (2025-04-10)
51
+
52
+
53
+
54
+ ## 1.0.185 (2025-04-09)
55
+
56
+
57
+
58
+ ## 1.0.184 (2025-04-08)
59
+
60
+
61
+
62
+ ## 1.0.183 (2025-04-04)
63
+
64
+
65
+
66
+ ## 1.0.182 (2025-03-21)
67
+
68
+
69
+
70
+ ## 1.0.181 (2025-03-13)
71
+
72
+
73
+
74
+ ## 1.0.180 (2025-01-30)
75
+
76
+
77
+
78
+ ## 1.0.179 (2025-01-29)
79
+
80
+
81
+
82
+ ## 1.0.178 (2025-01-12)
83
+
84
+
85
+
86
+ ## 1.0.177 (2025-01-10)
87
+
88
+
89
+
90
+ ## 1.0.176 (2025-01-10)
91
+
92
+
93
+
94
+ ## 1.0.175 (2025-01-08)
95
+
96
+
97
+
98
+ ## 1.0.174 (2024-12-16)
99
+
100
+
101
+
102
+ ## 1.0.173 (2024-12-11)
103
+
104
+
105
+
106
+ ## 1.0.172 (2024-11-29)
107
+
108
+
109
+
110
+ ## 1.0.171 (2024-11-28)
111
+
112
+
113
+
114
+ ## 1.0.170 (2024-11-28)
115
+
116
+
117
+
118
+ ## 1.0.169 (2024-11-20)
119
+
120
+
121
+
122
+ ## 1.0.168 (2024-11-19)
123
+
124
+
125
+
126
+ ## 1.0.167 (2024-10-14)
127
+
128
+
129
+
130
+ ## 1.0.166 (2024-10-07)
131
+
132
+
133
+
134
+ ## 1.0.165 (2024-10-03)
135
+
136
+
137
+
138
+ ## 1.0.164 (2024-09-26)
139
+
140
+
141
+
142
+ ## 1.0.163 (2024-09-18)
143
+
144
+
145
+
146
+ ## 1.0.162 (2024-09-12)
147
+
148
+
149
+
150
+ ## 1.0.161 (2024-09-11)
151
+
152
+
153
+
154
+ ## 1.0.160 (2024-09-10)
155
+
156
+
157
+
158
+ ## 1.0.159 (2024-09-09)
159
+
160
+
161
+
162
+ ## 1.0.158 (2024-09-04)
163
+
164
+
165
+
166
+ ## 1.0.157 (2024-09-04)
167
+
168
+
169
+
170
+ ## 1.0.156 (2024-09-02)
171
+
172
+
173
+
174
+ ## 1.0.155 (2024-08-29)
175
+
176
+
177
+
178
+ ## 1.0.154 (2024-08-29)
179
+
180
+
181
+
182
+ ## 1.0.153 (2024-08-23)
183
+
184
+
185
+
186
+ ## 1.0.152 (2024-08-23)
187
+
188
+
189
+
190
+ ## 1.0.151 (2024-08-20)
191
+
192
+
193
+
194
+ ## 1.0.150 (2024-08-19)
195
+
196
+
197
+
198
+ ## 1.0.149 (2024-08-07)
199
+
200
+
201
+
202
+ ## 1.0.148 (2024-08-01)
203
+
204
+
205
+
206
+ ## 1.0.147 (2024-08-01)
207
+
208
+
209
+
210
+ ## 1.0.146 (2024-07-26)
211
+
212
+
213
+
214
+ ## 1.0.145 (2024-07-25)
215
+
216
+
217
+
218
+ ## 1.0.144 (2024-07-22)
219
+
220
+
221
+
222
+ ## 1.0.143 (2024-07-19)
223
+
224
+
225
+
226
+ ## 1.0.142 (2024-07-16)
227
+
228
+
229
+
230
+ ## 1.0.141 (2024-07-16)
231
+
232
+
233
+
234
+ ## 1.0.140 (2024-07-12)
235
+
236
+
237
+
238
+ ## 1.0.139 (2024-07-12)
239
+
240
+
241
+
242
+ ## 1.0.138 (2024-07-10)
243
+
244
+
245
+
246
+ ## 1.0.137 (2024-07-05)
247
+
248
+
249
+
250
+ ## 1.0.136 (2024-07-03)
251
+
252
+
253
+
254
+ ## 1.0.135 (2024-07-03)
255
+
256
+
257
+
258
+ ## 1.0.134 (2024-07-03)
259
+
260
+
261
+
262
+ ## 1.0.133 (2024-06-28)
263
+
264
+
265
+
266
+ ## 1.0.132 (2024-06-27)
267
+
268
+
269
+
270
+ ## 1.0.131 (2024-06-27)
271
+
272
+
273
+
274
+ ## 1.0.130 (2024-06-26)
275
+
276
+
277
+
278
+ ## 1.0.129 (2024-06-17)
279
+
280
+
281
+
282
+ ## 1.0.128 (2024-06-17)
283
+
284
+
285
+
286
+ ## 1.0.127 (2024-06-10)
287
+
288
+
289
+
290
+ ## 1.0.126 (2024-05-29)
291
+
292
+
293
+
294
+ ## 1.0.125 (2024-05-29)
295
+
296
+
297
+
298
+ ## 1.0.124 (2024-05-29)
299
+
300
+
301
+
302
+ ## 1.0.123 (2024-05-28)
303
+
304
+
305
+
306
+ ## 1.0.122 (2024-05-27)
307
+
308
+
309
+
310
+ ## 1.0.121 (2024-05-27)
311
+
312
+
313
+
314
+ ## 1.0.120 (2024-05-24)
315
+
316
+
317
+
318
+ ## 1.0.119 (2024-05-17)
319
+
320
+
321
+
322
+ ## 1.0.118 (2024-05-09)
323
+
324
+
325
+
326
+ ## 1.0.117 (2024-05-07)
327
+
328
+
329
+
330
+ ## 1.0.116 (2024-04-23)
331
+
332
+
333
+
334
+ ## 1.0.115 (2024-04-22)
335
+
336
+
337
+
338
+ ## 1.0.114 (2024-04-19)
339
+
340
+
341
+
342
+ ## 1.0.113 (2024-04-19)
343
+
344
+
345
+
346
+ ## 1.0.112 (2024-04-15)
347
+
348
+
349
+
350
+ ## 1.0.111 (2024-04-11)
351
+
352
+
353
+
354
+ ## 1.0.110 (2024-04-05)
355
+
356
+
357
+
358
+ ## 1.0.109 (2024-04-05)
359
+
360
+
361
+
362
+ ## 1.0.108 (2024-04-04)
363
+
364
+
365
+
366
+ ## 1.0.107 (2024-04-03)
367
+
368
+
369
+
370
+ ## 1.0.106 (2024-03-29)
371
+
372
+
373
+
374
+ ## 1.0.105 (2024-03-28)
375
+
376
+
377
+
378
+ ## 1.0.104 (2024-03-21)
379
+
380
+
381
+
382
+ ## 1.0.103 (2024-03-20)
383
+
384
+
385
+
386
+ ## 1.0.102 (2024-03-20)
387
+
388
+
389
+
390
+ ## 1.0.101 (2024-03-13)
391
+
392
+
393
+
394
+ ## 1.0.100 (2024-03-12)
395
+
396
+
397
+
398
+ ## 1.0.99 (2024-03-11)
399
+
400
+
401
+
402
+ ## 1.0.98 (2024-03-07)
403
+
404
+
405
+
406
+ ## 1.0.97 (2024-03-06)
407
+
408
+
409
+
410
+ ## 1.0.96 (2024-03-06)
411
+
412
+
413
+
414
+ ## 1.0.95 (2024-03-04)
415
+
416
+
417
+
418
+ ## 1.0.94 (2024-02-29)
419
+
420
+
421
+
422
+ ## 1.0.93 (2024-02-28)
423
+
424
+
425
+
426
+ ## 1.0.92 (2024-02-28)
427
+
428
+
429
+
430
+ ## 1.0.91 (2024-02-23)
431
+
432
+
433
+
434
+ ## 1.0.90 (2024-02-23)
435
+
436
+
437
+
438
+ ## 1.0.89 (2024-02-21)
439
+
440
+
441
+
442
+ ## 1.0.88 (2024-02-21)
443
+
444
+
445
+
446
+ ## 1.0.87 (2024-02-20)
447
+
448
+
449
+
450
+ ## 1.0.86 (2024-02-20)
451
+
452
+
453
+
454
+ ## 1.0.85 (2024-02-13)
455
+
456
+
457
+
458
+ ## 1.0.84 (2024-02-13)
459
+
460
+
461
+
462
+ ## 1.0.83 (2024-02-09)
463
+
464
+
465
+
466
+ ## 1.0.82 (2024-02-05)
467
+
468
+
469
+
470
+ ## 1.0.81 (2024-02-05)
471
+
472
+
473
+
474
+ ## 1.0.80 (2024-02-05)
475
+
476
+
477
+
478
+ ## 1.0.79 (2024-02-05)
479
+
480
+
481
+
482
+ ## 1.0.78 (2024-01-30)
483
+
484
+
485
+
486
+ ## 1.0.77 (2024-01-25)
487
+
488
+
489
+
490
+ ## 1.0.76 (2024-01-25)
491
+
492
+
493
+
494
+ ## 1.0.75 (2024-01-22)
495
+
496
+
497
+
498
+ ## 1.0.74 (2024-01-22)
499
+
500
+
501
+
502
+ ## 1.0.73 (2024-01-22)
503
+
504
+
505
+
506
+ ## 1.0.72 (2024-01-19)
507
+
508
+
509
+
510
+ ## 1.0.71 (2024-01-18)
511
+
512
+
513
+
514
+ ## 1.0.70 (2024-01-17)
515
+
516
+
517
+
518
+ ## 1.0.69 (2024-01-17)
519
+
520
+
521
+
522
+ ## 1.0.68 (2024-01-15)
523
+
524
+
525
+
526
+ ## 1.0.67 (2024-01-15)
527
+
528
+
529
+
530
+ ## 1.0.66 (2024-01-12)
531
+
532
+
533
+
534
+ ## 1.0.65 (2024-01-11)
535
+
536
+
537
+
538
+ ## 1.0.64 (2024-01-11)
539
+
540
+
541
+
542
+ ## 1.0.63 (2024-01-11)
543
+
544
+
545
+
546
+ ## 1.0.62 (2024-01-10)
547
+
548
+
549
+
550
+ ## 1.0.61 (2024-01-09)
551
+
552
+
553
+
554
+ ## 1.0.60 (2024-01-05)
555
+
556
+
557
+
558
+ ## 1.0.59 (2023-12-27)
559
+
560
+
561
+
562
+ ## 1.0.58 (2023-12-22)
563
+
564
+
565
+
566
+ ## 1.0.57 (2023-12-22)
567
+
568
+
569
+
570
+ ## 1.0.56 (2023-12-21)
571
+
572
+
573
+
574
+ ## 1.0.55 (2023-12-19)
575
+
576
+
577
+
578
+ ## 1.0.54 (2023-12-15)
579
+
580
+
581
+
582
+ ## 1.0.53 (2023-12-13)
583
+
584
+
585
+
586
+ ## 1.0.52 (2023-12-13)
587
+
588
+
589
+
590
+ ## 1.0.51 (2023-12-07)
591
+
592
+
593
+
594
+ ## 1.0.50 (2023-12-04)
595
+
596
+
597
+
598
+ ## 1.0.49 (2023-12-01)
599
+
600
+
601
+
602
+ ## 1.0.48 (2023-12-01)
603
+
604
+
605
+
606
+ ## 1.0.47 (2023-11-29)
607
+
608
+
609
+
610
+ ## 1.0.46 (2023-11-28)
611
+
612
+
613
+
614
+ ## 1.0.45 (2023-11-23)
615
+
616
+
617
+
618
+ ## 1.0.44 (2023-11-22)
619
+
620
+
621
+
622
+ ## 1.0.43 (2023-11-15)
623
+
624
+
625
+
626
+ ## 1.0.42 (2023-11-10)
627
+
628
+
629
+
630
+ ## 1.0.41 (2023-11-03)
631
+
632
+
633
+
634
+ ## 1.0.40 (2023-11-02)
635
+
636
+
637
+
638
+ ## 1.0.39 (2023-11-02)
639
+
640
+
641
+
642
+ ## 1.0.38 (2023-10-26)
643
+
644
+
645
+
646
+ ## 1.0.37 (2023-10-26)
647
+
648
+
649
+
650
+ ## 1.0.36 (2023-10-25)
651
+
652
+
653
+
654
+ ## 1.0.35 (2023-10-24)
655
+
656
+
657
+
658
+ ## 1.0.34 (2023-10-23)
659
+
660
+
661
+
662
+ ## 1.0.33 (2023-10-23)
663
+
664
+
665
+
666
+ ## 1.0.32 (2023-10-23)
667
+
668
+
669
+
670
+ ## 1.0.31 (2023-10-20)
671
+
672
+
673
+
674
+ ## 1.0.30 (2023-10-19)
675
+
676
+
677
+
678
+ ## 1.0.29 (2023-10-19)
679
+
680
+
681
+
682
+ ## 1.0.28 (2023-10-19)
683
+
684
+
685
+
686
+ ## 1.0.27 (2023-10-18)
687
+
688
+
689
+
690
+ ## 1.0.26 (2023-10-18)
691
+
692
+
693
+
694
+ ## 1.0.25 (2023-10-17)
695
+
696
+
697
+
698
+ ## 1.0.24 (2023-10-13)
699
+
700
+
701
+
702
+ ## 1.0.23 (2023-10-13)
703
+
704
+
705
+
706
+ ## 1.0.22 (2023-10-11)
707
+
708
+
709
+
710
+ ## 1.0.21 (2023-10-10)
711
+
712
+
713
+
714
+ ## 1.0.20 (2023-10-06)
715
+
716
+
717
+
718
+ ## 1.0.19 (2023-10-06)
719
+
720
+
721
+
722
+ ## 1.0.18 (2023-10-05)
723
+
724
+
725
+
726
+ ## 1.0.17 (2023-10-04)
727
+
728
+
729
+
730
+ ## 1.0.16 (2023-10-04)
731
+
732
+
733
+
734
+ ## 1.0.15 (2023-10-04)
735
+
736
+
737
+
738
+ ## 1.0.14 (2023-10-03)
739
+
740
+
741
+
742
+ ## 1.0.13 (2023-10-03)
743
+
744
+
745
+
746
+ ## 1.0.12 (2023-10-03)
747
+
748
+
749
+
750
+ ## 1.0.11 (2023-10-02)
751
+
752
+
753
+
754
+ ## 1.0.10 (2023-09-29)
755
+
756
+
757
+
758
+ ## 1.0.9 (2023-09-28)
759
+
760
+
761
+
762
+ ## 1.0.8 (2023-09-27)
763
+
764
+
765
+
766
+ ## 1.0.7 (2023-09-26)
767
+
768
+
769
+
770
+ ## 1.0.6 (2023-09-21)
771
+
772
+
773
+
774
+ ## 1.0.5 (2023-09-13)
775
+
776
+ **Note:** Version bump only for package @oanda/labs-widget-common
777
+
778
+
779
+
780
+
781
+
6
782
  ## 1.0.196 (2025-05-22)
7
783
 
8
784
 
@@ -10,7 +10,10 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _images = require("../../images");
11
11
  var _providers = require("../../providers");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- const ChartError = () => {
13
+ const ChartError = _ref => {
14
+ let {
15
+ errorType = 'dataUnavailable'
16
+ } = _ref;
14
17
  const {
15
18
  lang
16
19
  } = (0, _monoI18n.useLocale)();
@@ -25,7 +28,7 @@ const ChartError = () => {
25
28
  "data-testid": "chart-error"
26
29
  }, _react.default.createElement(_images.ChartErrorIcon, null), _react.default.createElement("span", {
27
30
  className: "lw-mt-3 lw-font-sans lw-uppercase"
28
- }, lang('data_unavailable')));
31
+ }, errorType === 'dataUnavailable' ? lang('data_unavailable') : lang('no_matching_results')));
29
32
  };
30
33
  exports.ChartError = ChartError;
31
34
  const Error = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"Error.js","names":["_monoI18n","require","_classnames","_interopRequireDefault","_react","_images","_providers","e","__esModule","default","ChartError","lang","useLocale","isDark","useLayoutProvider","createElement","className","classnames","ChartErrorIcon","exports","Error","ErrorIcon","WidgetError"],"sources":["../../../../src/components/Error/Error.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { ChartErrorIcon, ErrorIcon } from '../../images';\nimport { useLayoutProvider } from '../../providers';\n\nconst ChartError = () => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-flex-1 lw-flex-col lw-items-center lw-justify-center lw-stroke-2',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"chart-error\"\n >\n <ChartErrorIcon />\n <span className=\"lw-mt-3 lw-font-sans lw-uppercase\">\n {lang('data_unavailable')}\n </span>\n </div>\n );\n};\n\nconst Error = () => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-items-center lw-justify-center lw-gap-1',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"error\"\n >\n <ErrorIcon />\n <span className=\"lw-font-sans lw-text-xs lw-uppercase\">\n {lang('data_unavailable')}\n </span>\n </div>\n );\n};\n\nconst WidgetError = () => (\n <div\n className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\"\n data-testid=\"widget-error\"\n >\n <ChartError />\n </div>\n);\n\nexport { ChartError, Error, WidgetError };\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAAoD,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpD,MAAMG,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAC5B,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,4BAAiB,EAAC,CAAC;EAEtC,OACEV,MAAA,CAAAK,OAAA,CAAAM,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EACnB,6EAA6E,EAC7E;MACE,sBAAsB,EAAEJ,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAa,GAEzBT,MAAA,CAAAK,OAAA,CAAAM,aAAA,CAACV,OAAA,CAAAa,cAAc,MAAE,CAAC,EAClBd,MAAA,CAAAK,OAAA,CAAAM,aAAA;IAAMC,SAAS,EAAC;EAAmC,GAChDL,IAAI,CAAC,kBAAkB,CACpB,CACH,CAAC;AAEV,CAAC;AAACQ,OAAA,CAAAT,UAAA,GAAAA,UAAA;AAEF,MAAMU,KAAK,GAAGA,CAAA,KAAM;EAClB,MAAM;IAAET;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAC5B,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,4BAAiB,EAAC,CAAC;EAEtC,OACEV,MAAA,CAAAK,OAAA,CAAAM,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EACnB,oDAAoD,EACpD;MACE,sBAAsB,EAAEJ,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAO,GAEnBT,MAAA,CAAAK,OAAA,CAAAM,aAAA,CAACV,OAAA,CAAAgB,SAAS,MAAE,CAAC,EACbjB,MAAA,CAAAK,OAAA,CAAAM,aAAA;IAAMC,SAAS,EAAC;EAAsC,GACnDL,IAAI,CAAC,kBAAkB,CACpB,CACH,CAAC;AAEV,CAAC;AAACQ,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAEF,MAAME,WAAW,GAAGA,CAAA,KAClBlB,MAAA,CAAAK,OAAA,CAAAM,aAAA;EACEC,SAAS,EAAC,mGAAmG;EAC7G,eAAY;AAAc,GAE1BZ,MAAA,CAAAK,OAAA,CAAAM,aAAA,CAACL,UAAU,MAAE,CACV,CACN;AAACS,OAAA,CAAAG,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"file":"Error.js","names":["_monoI18n","require","_classnames","_interopRequireDefault","_react","_images","_providers","e","__esModule","default","ChartError","_ref","errorType","lang","useLocale","isDark","useLayoutProvider","createElement","className","classnames","ChartErrorIcon","exports","Error","ErrorIcon","WidgetError"],"sources":["../../../../src/components/Error/Error.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { ChartErrorIcon, ErrorIcon } from '../../images';\nimport { useLayoutProvider } from '../../providers';\n\nconst ChartError = ({\n errorType = 'dataUnavailable',\n}: {\n errorType?: 'dataUnavailable' | 'noMatchingResults';\n}) => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-flex-1 lw-flex-col lw-items-center lw-justify-center lw-stroke-2',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"chart-error\"\n >\n <ChartErrorIcon />\n <span className=\"lw-mt-3 lw-font-sans lw-uppercase\">\n {errorType === 'dataUnavailable'\n ? lang('data_unavailable')\n : lang('no_matching_results')}\n </span>\n </div>\n );\n};\n\nconst Error = () => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-items-center lw-justify-center lw-gap-1',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"error\"\n >\n <ErrorIcon />\n <span className=\"lw-font-sans lw-text-xs lw-uppercase\">\n {lang('data_unavailable')}\n </span>\n </div>\n );\n};\n\nconst WidgetError = () => (\n <div\n className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\"\n data-testid=\"widget-error\"\n >\n <ChartError />\n </div>\n);\n\nexport { ChartError, Error, WidgetError };\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAAoD,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpD,MAAMG,UAAU,GAAGC,IAAA,IAIb;EAAA,IAJc;IAClBC,SAAS,GAAG;EAGd,CAAC,GAAAD,IAAA;EACC,MAAM;IAAEE;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAC5B,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,4BAAiB,EAAC,CAAC;EAEtC,OACEZ,MAAA,CAAAK,OAAA,CAAAQ,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EACnB,6EAA6E,EAC7E;MACE,sBAAsB,EAAEJ,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAa,GAEzBX,MAAA,CAAAK,OAAA,CAAAQ,aAAA,CAACZ,OAAA,CAAAe,cAAc,MAAE,CAAC,EAClBhB,MAAA,CAAAK,OAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmC,GAChDN,SAAS,KAAK,iBAAiB,GAC5BC,IAAI,CAAC,kBAAkB,CAAC,GACxBA,IAAI,CAAC,qBAAqB,CAC1B,CACH,CAAC;AAEV,CAAC;AAACQ,OAAA,CAAAX,UAAA,GAAAA,UAAA;AAEF,MAAMY,KAAK,GAAGA,CAAA,KAAM;EAClB,MAAM;IAAET;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAC5B,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,4BAAiB,EAAC,CAAC;EAEtC,OACEZ,MAAA,CAAAK,OAAA,CAAAQ,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EACnB,oDAAoD,EACpD;MACE,sBAAsB,EAAEJ,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAO,GAEnBX,MAAA,CAAAK,OAAA,CAAAQ,aAAA,CAACZ,OAAA,CAAAkB,SAAS,MAAE,CAAC,EACbnB,MAAA,CAAAK,OAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAsC,GACnDL,IAAI,CAAC,kBAAkB,CACpB,CACH,CAAC;AAEV,CAAC;AAACQ,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAEF,MAAME,WAAW,GAAGA,CAAA,KAClBpB,MAAA,CAAAK,OAAA,CAAAQ,aAAA;EACEC,SAAS,EAAC,mGAAmG;EAC7G,eAAY;AAAc,GAE1Bd,MAAA,CAAAK,OAAA,CAAAQ,aAAA,CAACP,UAAU,MAAE,CACV,CACN;AAACW,OAAA,CAAAG,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -26,6 +26,7 @@ function Table(_ref) {
26
26
  const onScroll = event => {
27
27
  setIsScrolled(event.currentTarget.scrollLeft > 0);
28
28
  };
29
+ const isEmptyData = records.length === 0;
29
30
  return _react.default.createElement("div", {
30
31
  className: "lw-relative lw-overflow-x-auto",
31
32
  onScroll: onScroll
@@ -36,11 +37,13 @@ function Table(_ref) {
36
37
  columns: headerConfig,
37
38
  isError: !!isError,
38
39
  isScrolled: isScrolled
39
- }), !isError && _react.default.createElement("tbody", null, _react.default.createElement(_react.default.Fragment, null, records.map((record, index) => renderRow(record, index, isScrolled))))), isError && _react.default.createElement("div", {
40
+ }), !isError && _react.default.createElement("tbody", null, _react.default.createElement(_react.default.Fragment, null, records.map((record, index) => renderRow(record, index, isScrolled))))), (isError || isEmptyData) && _react.default.createElement("div", {
40
41
  className: (0, _classnames.default)('lw-sticky lw-left-0 lw-top-0 lw-flex lw-h-[250px] lw-w-full lw-items-center lw-justify-center lw-border-t lw-border-t-border-primary', {
41
42
  'lw-bg-bg-primary': isDark,
42
43
  'lw-bg-bg-secondary': !isDark
43
44
  })
44
- }, _react.default.createElement(_Error.ChartError, null)));
45
+ }, _react.default.createElement(_Error.ChartError, {
46
+ errorType: isEmptyData ? 'noMatchingResults' : undefined
47
+ })));
45
48
  }
46
49
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["_classnames","_interopRequireDefault","require","_react","_interopRequireWildcard","_providers","_Error","_TableHeader","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Table","_ref","records","headerConfig","renderRow","isError","isDark","useLayoutProvider","isScrolled","setIsScrolled","useState","onScroll","event","currentTarget","scrollLeft","createElement","className","TableHeader","columns","Fragment","map","record","index","classnames","ChartError"],"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport type { SyntheticEvent } from 'react';\nimport React, { useState } from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { ChartError } from '../Error';\nimport { TableHeader } from './TableHeader';\nimport type { TableProps } from './types';\n\nfunction Table<T>({\n records,\n headerConfig,\n renderRow,\n isError,\n}: TableProps<T>) {\n const { isDark } = useLayoutProvider();\n const [isScrolled, setIsScrolled] = useState(false);\n\n const onScroll = (event: SyntheticEvent<HTMLDivElement>) => {\n setIsScrolled(event.currentTarget.scrollLeft > 0);\n };\n\n return (\n <div className=\"lw-relative lw-overflow-x-auto\" onScroll={onScroll}>\n <table className=\"lw-w-full lw-border-collapse\" data-testid=\"table\">\n <TableHeader\n columns={headerConfig}\n isError={!!isError}\n isScrolled={isScrolled}\n />\n {!isError && (\n <tbody>\n <>\n {records.map((record, index) =>\n renderRow(record, index, isScrolled)\n )}\n </>\n </tbody>\n )}\n </table>\n {isError && (\n <div\n className={classnames(\n 'lw-sticky lw-left-0 lw-top-0 lw-flex lw-h-[250px] lw-w-full lw-items-center lw-justify-center lw-border-t lw-border-t-border-primary',\n {\n 'lw-bg-bg-primary': isDark,\n 'lw-bg-bg-secondary': !isDark,\n }\n )}\n >\n <ChartError />\n </div>\n )}\n </div>\n );\n}\n\nexport { Table };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Table.js","names":["_classnames","_interopRequireDefault","require","_react","_interopRequireWildcard","_providers","_Error","_TableHeader","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Table","_ref","records","headerConfig","renderRow","isError","isDark","useLayoutProvider","isScrolled","setIsScrolled","useState","onScroll","event","currentTarget","scrollLeft","isEmptyData","length","createElement","className","TableHeader","columns","Fragment","map","record","index","classnames","ChartError","errorType","undefined"],"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport type { SyntheticEvent } from 'react';\nimport React, { useState } from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { ChartError } from '../Error';\nimport { TableHeader } from './TableHeader';\nimport type { TableProps } from './types';\n\nfunction Table<T>({\n records,\n headerConfig,\n renderRow,\n isError,\n}: TableProps<T>) {\n const { isDark } = useLayoutProvider();\n const [isScrolled, setIsScrolled] = useState(false);\n\n const onScroll = (event: SyntheticEvent<HTMLDivElement>) => {\n setIsScrolled(event.currentTarget.scrollLeft > 0);\n };\n\n const isEmptyData = records.length === 0;\n\n return (\n <div className=\"lw-relative lw-overflow-x-auto\" onScroll={onScroll}>\n <table className=\"lw-w-full lw-border-collapse\" data-testid=\"table\">\n <TableHeader\n columns={headerConfig}\n isError={!!isError}\n isScrolled={isScrolled}\n />\n {!isError && (\n <tbody>\n <>\n {records.map((record, index) =>\n renderRow(record, index, isScrolled)\n )}\n </>\n </tbody>\n )}\n </table>\n {(isError || isEmptyData) && (\n <div\n className={classnames(\n 'lw-sticky lw-left-0 lw-top-0 lw-flex lw-h-[250px] lw-w-full lw-items-center lw-justify-center lw-border-t lw-border-t-border-primary',\n {\n 'lw-bg-bg-primary': isDark,\n 'lw-bg-bg-secondary': !isDark,\n }\n )}\n >\n <ChartError\n errorType={isEmptyData ? 'noMatchingResults' : undefined}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport { Table };\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "data_unavailable": "Data unavailable",
3
+ "no_matching_results": "No matching results",
3
4
  "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries"
4
5
  }
@@ -3,7 +3,10 @@ import classnames from 'classnames';
3
3
  import React from 'react';
4
4
  import { ChartErrorIcon, ErrorIcon } from '../../images';
5
5
  import { useLayoutProvider } from '../../providers';
6
- const ChartError = () => {
6
+ const ChartError = _ref => {
7
+ let {
8
+ errorType = 'dataUnavailable'
9
+ } = _ref;
7
10
  const {
8
11
  lang
9
12
  } = useLocale();
@@ -18,7 +21,7 @@ const ChartError = () => {
18
21
  "data-testid": "chart-error"
19
22
  }, React.createElement(ChartErrorIcon, null), React.createElement("span", {
20
23
  className: "lw-mt-3 lw-font-sans lw-uppercase"
21
- }, lang('data_unavailable')));
24
+ }, errorType === 'dataUnavailable' ? lang('data_unavailable') : lang('no_matching_results')));
22
25
  };
23
26
  const Error = () => {
24
27
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"Error.js","names":["useLocale","classnames","React","ChartErrorIcon","ErrorIcon","useLayoutProvider","ChartError","lang","isDark","createElement","className","Error","WidgetError"],"sources":["../../../../src/components/Error/Error.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { ChartErrorIcon, ErrorIcon } from '../../images';\nimport { useLayoutProvider } from '../../providers';\n\nconst ChartError = () => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-flex-1 lw-flex-col lw-items-center lw-justify-center lw-stroke-2',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"chart-error\"\n >\n <ChartErrorIcon />\n <span className=\"lw-mt-3 lw-font-sans lw-uppercase\">\n {lang('data_unavailable')}\n </span>\n </div>\n );\n};\n\nconst Error = () => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-items-center lw-justify-center lw-gap-1',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"error\"\n >\n <ErrorIcon />\n <span className=\"lw-font-sans lw-text-xs lw-uppercase\">\n {lang('data_unavailable')}\n </span>\n </div>\n );\n};\n\nconst WidgetError = () => (\n <div\n className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\"\n data-testid=\"widget-error\"\n >\n <ChartError />\n </div>\n);\n\nexport { ChartError, Error, WidgetError };\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc,EAAEC,SAAS,QAAQ,cAAc;AACxD,SAASC,iBAAiB,QAAQ,iBAAiB;AAEnD,MAAMC,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAM;IAAEC;EAAK,CAAC,GAAGP,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEQ;EAAO,CAAC,GAAGH,iBAAiB,CAAC,CAAC;EAEtC,OACEH,KAAA,CAAAO,aAAA;IACEC,SAAS,EAAET,UAAU,CACnB,6EAA6E,EAC7E;MACE,sBAAsB,EAAEO,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAa,GAEzBN,KAAA,CAAAO,aAAA,CAACN,cAAc,MAAE,CAAC,EAClBD,KAAA,CAAAO,aAAA;IAAMC,SAAS,EAAC;EAAmC,GAChDH,IAAI,CAAC,kBAAkB,CACpB,CACH,CAAC;AAEV,CAAC;AAED,MAAMI,KAAK,GAAGA,CAAA,KAAM;EAClB,MAAM;IAAEJ;EAAK,CAAC,GAAGP,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEQ;EAAO,CAAC,GAAGH,iBAAiB,CAAC,CAAC;EAEtC,OACEH,KAAA,CAAAO,aAAA;IACEC,SAAS,EAAET,UAAU,CACnB,oDAAoD,EACpD;MACE,sBAAsB,EAAEO,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAO,GAEnBN,KAAA,CAAAO,aAAA,CAACL,SAAS,MAAE,CAAC,EACbF,KAAA,CAAAO,aAAA;IAAMC,SAAS,EAAC;EAAsC,GACnDH,IAAI,CAAC,kBAAkB,CACpB,CACH,CAAC;AAEV,CAAC;AAED,MAAMK,WAAW,GAAGA,CAAA,KAClBV,KAAA,CAAAO,aAAA;EACEC,SAAS,EAAC,mGAAmG;EAC7G,eAAY;AAAc,GAE1BR,KAAA,CAAAO,aAAA,CAACH,UAAU,MAAE,CACV,CACN;AAED,SAASA,UAAU,EAAEK,KAAK,EAAEC,WAAW","ignoreList":[]}
1
+ {"version":3,"file":"Error.js","names":["useLocale","classnames","React","ChartErrorIcon","ErrorIcon","useLayoutProvider","ChartError","_ref","errorType","lang","isDark","createElement","className","Error","WidgetError"],"sources":["../../../../src/components/Error/Error.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { ChartErrorIcon, ErrorIcon } from '../../images';\nimport { useLayoutProvider } from '../../providers';\n\nconst ChartError = ({\n errorType = 'dataUnavailable',\n}: {\n errorType?: 'dataUnavailable' | 'noMatchingResults';\n}) => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-flex-1 lw-flex-col lw-items-center lw-justify-center lw-stroke-2',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"chart-error\"\n >\n <ChartErrorIcon />\n <span className=\"lw-mt-3 lw-font-sans lw-uppercase\">\n {errorType === 'dataUnavailable'\n ? lang('data_unavailable')\n : lang('no_matching_results')}\n </span>\n </div>\n );\n};\n\nconst Error = () => {\n const { lang } = useLocale();\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-items-center lw-justify-center lw-gap-1',\n {\n 'lw-text-text-primary': isDark,\n 'lw-text-text-secondary': !isDark,\n }\n )}\n data-testid=\"error\"\n >\n <ErrorIcon />\n <span className=\"lw-font-sans lw-text-xs lw-uppercase\">\n {lang('data_unavailable')}\n </span>\n </div>\n );\n};\n\nconst WidgetError = () => (\n <div\n className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\"\n data-testid=\"widget-error\"\n >\n <ChartError />\n </div>\n);\n\nexport { ChartError, Error, WidgetError };\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc,EAAEC,SAAS,QAAQ,cAAc;AACxD,SAASC,iBAAiB,QAAQ,iBAAiB;AAEnD,MAAMC,UAAU,GAAGC,IAAA,IAIb;EAAA,IAJc;IAClBC,SAAS,GAAG;EAGd,CAAC,GAAAD,IAAA;EACC,MAAM;IAAEE;EAAK,CAAC,GAAGT,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEU;EAAO,CAAC,GAAGL,iBAAiB,CAAC,CAAC;EAEtC,OACEH,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAEX,UAAU,CACnB,6EAA6E,EAC7E;MACE,sBAAsB,EAAES,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAa,GAEzBR,KAAA,CAAAS,aAAA,CAACR,cAAc,MAAE,CAAC,EAClBD,KAAA,CAAAS,aAAA;IAAMC,SAAS,EAAC;EAAmC,GAChDJ,SAAS,KAAK,iBAAiB,GAC5BC,IAAI,CAAC,kBAAkB,CAAC,GACxBA,IAAI,CAAC,qBAAqB,CAC1B,CACH,CAAC;AAEV,CAAC;AAED,MAAMI,KAAK,GAAGA,CAAA,KAAM;EAClB,MAAM;IAAEJ;EAAK,CAAC,GAAGT,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEU;EAAO,CAAC,GAAGL,iBAAiB,CAAC,CAAC;EAEtC,OACEH,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAEX,UAAU,CACnB,oDAAoD,EACpD;MACE,sBAAsB,EAAES,MAAM;MAC9B,wBAAwB,EAAE,CAACA;IAC7B,CACF,CAAE;IACF,eAAY;EAAO,GAEnBR,KAAA,CAAAS,aAAA,CAACP,SAAS,MAAE,CAAC,EACbF,KAAA,CAAAS,aAAA;IAAMC,SAAS,EAAC;EAAsC,GACnDH,IAAI,CAAC,kBAAkB,CACpB,CACH,CAAC;AAEV,CAAC;AAED,MAAMK,WAAW,GAAGA,CAAA,KAClBZ,KAAA,CAAAS,aAAA;EACEC,SAAS,EAAC,mGAAmG;EAC7G,eAAY;AAAc,GAE1BV,KAAA,CAAAS,aAAA,CAACL,UAAU,MAAE,CACV,CACN;AAED,SAASA,UAAU,EAAEO,KAAK,EAAEC,WAAW","ignoreList":[]}
@@ -17,6 +17,7 @@ function Table(_ref) {
17
17
  const onScroll = event => {
18
18
  setIsScrolled(event.currentTarget.scrollLeft > 0);
19
19
  };
20
+ const isEmptyData = records.length === 0;
20
21
  return React.createElement("div", {
21
22
  className: "lw-relative lw-overflow-x-auto",
22
23
  onScroll: onScroll
@@ -27,12 +28,14 @@ function Table(_ref) {
27
28
  columns: headerConfig,
28
29
  isError: !!isError,
29
30
  isScrolled: isScrolled
30
- }), !isError && React.createElement("tbody", null, React.createElement(React.Fragment, null, records.map((record, index) => renderRow(record, index, isScrolled))))), isError && React.createElement("div", {
31
+ }), !isError && React.createElement("tbody", null, React.createElement(React.Fragment, null, records.map((record, index) => renderRow(record, index, isScrolled))))), (isError || isEmptyData) && React.createElement("div", {
31
32
  className: classnames('lw-sticky lw-left-0 lw-top-0 lw-flex lw-h-[250px] lw-w-full lw-items-center lw-justify-center lw-border-t lw-border-t-border-primary', {
32
33
  'lw-bg-bg-primary': isDark,
33
34
  'lw-bg-bg-secondary': !isDark
34
35
  })
35
- }, React.createElement(ChartError, null)));
36
+ }, React.createElement(ChartError, {
37
+ errorType: isEmptyData ? 'noMatchingResults' : undefined
38
+ })));
36
39
  }
37
40
  export { Table };
38
41
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["classnames","React","useState","useLayoutProvider","ChartError","TableHeader","Table","_ref","records","headerConfig","renderRow","isError","isDark","isScrolled","setIsScrolled","onScroll","event","currentTarget","scrollLeft","createElement","className","columns","Fragment","map","record","index"],"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport type { SyntheticEvent } from 'react';\nimport React, { useState } from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { ChartError } from '../Error';\nimport { TableHeader } from './TableHeader';\nimport type { TableProps } from './types';\n\nfunction Table<T>({\n records,\n headerConfig,\n renderRow,\n isError,\n}: TableProps<T>) {\n const { isDark } = useLayoutProvider();\n const [isScrolled, setIsScrolled] = useState(false);\n\n const onScroll = (event: SyntheticEvent<HTMLDivElement>) => {\n setIsScrolled(event.currentTarget.scrollLeft > 0);\n };\n\n return (\n <div className=\"lw-relative lw-overflow-x-auto\" onScroll={onScroll}>\n <table className=\"lw-w-full lw-border-collapse\" data-testid=\"table\">\n <TableHeader\n columns={headerConfig}\n isError={!!isError}\n isScrolled={isScrolled}\n />\n {!isError && (\n <tbody>\n <>\n {records.map((record, index) =>\n renderRow(record, index, isScrolled)\n )}\n </>\n </tbody>\n )}\n </table>\n {isError && (\n <div\n className={classnames(\n 'lw-sticky lw-left-0 lw-top-0 lw-flex lw-h-[250px] lw-w-full lw-items-center lw-justify-center lw-border-t lw-border-t-border-primary',\n {\n 'lw-bg-bg-primary': isDark,\n 'lw-bg-bg-secondary': !isDark,\n }\n )}\n >\n <ChartError />\n </div>\n )}\n </div>\n );\n}\n\nexport { Table };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AAEnC,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,iBAAiB,QAAQ,iBAAiB;AACnD,SAASC,UAAU,QAAQ,UAAU;AACrC,SAASC,WAAW,QAAQ,eAAe;AAG3C,SAASC,KAAKA,CAAAC,IAAA,EAKI;EAAA,IALA;IAChBC,OAAO;IACPC,YAAY;IACZC,SAAS;IACTC;EACa,CAAC,GAAAJ,IAAA;EACd,MAAM;IAAEK;EAAO,CAAC,GAAGT,iBAAiB,CAAC,CAAC;EACtC,MAAM,CAACU,UAAU,EAAEC,aAAa,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EAEnD,MAAMa,QAAQ,GAAIC,KAAqC,IAAK;IAC1DF,aAAa,CAACE,KAAK,CAACC,aAAa,CAACC,UAAU,GAAG,CAAC,CAAC;EACnD,CAAC;EAED,OACEjB,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC,gCAAgC;IAACL,QAAQ,EAAEA;EAAS,GACjEd,KAAA,CAAAkB,aAAA;IAAOC,SAAS,EAAC,8BAA8B;IAAC,eAAY;EAAO,GACjEnB,KAAA,CAAAkB,aAAA,CAACd,WAAW;IACVgB,OAAO,EAAEZ,YAAa;IACtBE,OAAO,EAAE,CAAC,CAACA,OAAQ;IACnBE,UAAU,EAAEA;EAAW,CACxB,CAAC,EACD,CAACF,OAAO,IACPV,KAAA,CAAAkB,aAAA,gBACElB,KAAA,CAAAkB,aAAA,CAAAlB,KAAA,CAAAqB,QAAA,QACGd,OAAO,CAACe,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KACzBf,SAAS,CAACc,MAAM,EAAEC,KAAK,EAAEZ,UAAU,CACrC,CACA,CACG,CAEJ,CAAC,EACPF,OAAO,IACNV,KAAA,CAAAkB,aAAA;IACEC,SAAS,EAAEpB,UAAU,CACnB,sIAAsI,EACtI;MACE,kBAAkB,EAAEY,MAAM;MAC1B,oBAAoB,EAAE,CAACA;IACzB,CACF;EAAE,GAEFX,KAAA,CAAAkB,aAAA,CAACf,UAAU,MAAE,CACV,CAEJ,CAAC;AAEV;AAEA,SAASE,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"Table.js","names":["classnames","React","useState","useLayoutProvider","ChartError","TableHeader","Table","_ref","records","headerConfig","renderRow","isError","isDark","isScrolled","setIsScrolled","onScroll","event","currentTarget","scrollLeft","isEmptyData","length","createElement","className","columns","Fragment","map","record","index","errorType","undefined"],"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport type { SyntheticEvent } from 'react';\nimport React, { useState } from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { ChartError } from '../Error';\nimport { TableHeader } from './TableHeader';\nimport type { TableProps } from './types';\n\nfunction Table<T>({\n records,\n headerConfig,\n renderRow,\n isError,\n}: TableProps<T>) {\n const { isDark } = useLayoutProvider();\n const [isScrolled, setIsScrolled] = useState(false);\n\n const onScroll = (event: SyntheticEvent<HTMLDivElement>) => {\n setIsScrolled(event.currentTarget.scrollLeft > 0);\n };\n\n const isEmptyData = records.length === 0;\n\n return (\n <div className=\"lw-relative lw-overflow-x-auto\" onScroll={onScroll}>\n <table className=\"lw-w-full lw-border-collapse\" data-testid=\"table\">\n <TableHeader\n columns={headerConfig}\n isError={!!isError}\n isScrolled={isScrolled}\n />\n {!isError && (\n <tbody>\n <>\n {records.map((record, index) =>\n renderRow(record, index, isScrolled)\n )}\n </>\n </tbody>\n )}\n </table>\n {(isError || isEmptyData) && (\n <div\n className={classnames(\n 'lw-sticky lw-left-0 lw-top-0 lw-flex lw-h-[250px] lw-w-full lw-items-center lw-justify-center lw-border-t lw-border-t-border-primary',\n {\n 'lw-bg-bg-primary': isDark,\n 'lw-bg-bg-secondary': !isDark,\n }\n )}\n >\n <ChartError\n errorType={isEmptyData ? 'noMatchingResults' : undefined}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport { Table };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AAEnC,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,iBAAiB,QAAQ,iBAAiB;AACnD,SAASC,UAAU,QAAQ,UAAU;AACrC,SAASC,WAAW,QAAQ,eAAe;AAG3C,SAASC,KAAKA,CAAAC,IAAA,EAKI;EAAA,IALA;IAChBC,OAAO;IACPC,YAAY;IACZC,SAAS;IACTC;EACa,CAAC,GAAAJ,IAAA;EACd,MAAM;IAAEK;EAAO,CAAC,GAAGT,iBAAiB,CAAC,CAAC;EACtC,MAAM,CAACU,UAAU,EAAEC,aAAa,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EAEnD,MAAMa,QAAQ,GAAIC,KAAqC,IAAK;IAC1DF,aAAa,CAACE,KAAK,CAACC,aAAa,CAACC,UAAU,GAAG,CAAC,CAAC;EACnD,CAAC;EAED,MAAMC,WAAW,GAAGX,OAAO,CAACY,MAAM,KAAK,CAAC;EAExC,OACEnB,KAAA,CAAAoB,aAAA;IAAKC,SAAS,EAAC,gCAAgC;IAACP,QAAQ,EAAEA;EAAS,GACjEd,KAAA,CAAAoB,aAAA;IAAOC,SAAS,EAAC,8BAA8B;IAAC,eAAY;EAAO,GACjErB,KAAA,CAAAoB,aAAA,CAAChB,WAAW;IACVkB,OAAO,EAAEd,YAAa;IACtBE,OAAO,EAAE,CAAC,CAACA,OAAQ;IACnBE,UAAU,EAAEA;EAAW,CACxB,CAAC,EACD,CAACF,OAAO,IACPV,KAAA,CAAAoB,aAAA,gBACEpB,KAAA,CAAAoB,aAAA,CAAApB,KAAA,CAAAuB,QAAA,QACGhB,OAAO,CAACiB,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KACzBjB,SAAS,CAACgB,MAAM,EAAEC,KAAK,EAAEd,UAAU,CACrC,CACA,CACG,CAEJ,CAAC,EACP,CAACF,OAAO,IAAIQ,WAAW,KACtBlB,KAAA,CAAAoB,aAAA;IACEC,SAAS,EAAEtB,UAAU,CACnB,sIAAsI,EACtI;MACE,kBAAkB,EAAEY,MAAM;MAC1B,oBAAoB,EAAE,CAACA;IACzB,CACF;EAAE,GAEFX,KAAA,CAAAoB,aAAA,CAACjB,UAAU;IACTwB,SAAS,EAAET,WAAW,GAAG,mBAAmB,GAAGU;EAAU,CAC1D,CACE,CAEJ,CAAC;AAEV;AAEA,SAASvB,KAAK","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "data_unavailable": "Data unavailable",
3
+ "no_matching_results": "No matching results",
3
4
  "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries"
4
5
  }
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
- declare const ChartError: () => React.JSX.Element;
2
+ declare const ChartError: ({ errorType, }: {
3
+ errorType?: "dataUnavailable" | "noMatchingResults";
4
+ }) => React.JSX.Element;
3
5
  declare const Error: () => React.JSX.Element;
4
6
  declare const WidgetError: () => React.JSX.Element;
5
7
  export { ChartError, Error, WidgetError };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oanda/labs-widget-common",
3
- "version": "1.0.196",
3
+ "version": "1.0.197",
4
4
  "description": "Labs Widget Common",
5
5
  "main": "dist/main/index.js",
6
6
  "module": "dist/module/index.js",
@@ -21,5 +21,5 @@
21
21
  "tailwind-merge": "2.2.2",
22
22
  "usehooks-ts": "3.0.2"
23
23
  },
24
- "gitHead": "ce7aa8fffcd7421cab1451dd20e994dd2d813729"
24
+ "gitHead": "ecd6f0edf62d64f6537ce92408ae285fc012e18e"
25
25
  }
@@ -5,7 +5,11 @@ import React from 'react';
5
5
  import { ChartErrorIcon, ErrorIcon } from '../../images';
6
6
  import { useLayoutProvider } from '../../providers';
7
7
 
8
- const ChartError = () => {
8
+ const ChartError = ({
9
+ errorType = 'dataUnavailable',
10
+ }: {
11
+ errorType?: 'dataUnavailable' | 'noMatchingResults';
12
+ }) => {
9
13
  const { lang } = useLocale();
10
14
  const { isDark } = useLayoutProvider();
11
15
 
@@ -22,7 +26,9 @@ const ChartError = () => {
22
26
  >
23
27
  <ChartErrorIcon />
24
28
  <span className="lw-mt-3 lw-font-sans lw-uppercase">
25
- {lang('data_unavailable')}
29
+ {errorType === 'dataUnavailable'
30
+ ? lang('data_unavailable')
31
+ : lang('no_matching_results')}
26
32
  </span>
27
33
  </div>
28
34
  );
@@ -20,6 +20,8 @@ function Table<T>({
20
20
  setIsScrolled(event.currentTarget.scrollLeft > 0);
21
21
  };
22
22
 
23
+ const isEmptyData = records.length === 0;
24
+
23
25
  return (
24
26
  <div className="lw-relative lw-overflow-x-auto" onScroll={onScroll}>
25
27
  <table className="lw-w-full lw-border-collapse" data-testid="table">
@@ -38,7 +40,7 @@ function Table<T>({
38
40
  </tbody>
39
41
  )}
40
42
  </table>
41
- {isError && (
43
+ {(isError || isEmptyData) && (
42
44
  <div
43
45
  className={classnames(
44
46
  'lw-sticky lw-left-0 lw-top-0 lw-flex lw-h-[250px] lw-w-full lw-items-center lw-justify-center lw-border-t lw-border-t-border-primary',
@@ -48,7 +50,9 @@ function Table<T>({
48
50
  }
49
51
  )}
50
52
  >
51
- <ChartError />
53
+ <ChartError
54
+ errorType={isEmptyData ? 'noMatchingResults' : undefined}
55
+ />
52
56
  </div>
53
57
  )}
54
58
  </div>
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "data_unavailable": "Data unavailable",
3
+ "no_matching_results": "No matching results",
3
4
  "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries"
4
5
  }