@truedat/qx 7.13.9 → 7.14.0

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 (46) hide show
  1. package/package.json +3 -3
  2. package/src/components/common/ClauseViewer.js +183 -21
  3. package/src/components/common/expressions/Condition.js +13 -6
  4. package/src/components/dataViews/DataViewEditor.js +0 -2
  5. package/src/components/dataViews/DataViewSummary.js +73 -0
  6. package/src/components/dataViews/__tests__/AdvancedDataViewEditor.spec.js +4 -1
  7. package/src/components/dataViews/__tests__/DataViewEditor.spec.js +167 -132
  8. package/src/components/dataViews/__tests__/DataViewSummary.spec.js +820 -0
  9. package/src/components/dataViews/__tests__/DataViews.spec.js +57 -17
  10. package/src/components/dataViews/__tests__/SimpleDataViewEditor.spec.js +140 -141
  11. package/src/components/dataViews/__tests__/__snapshots__/AdvancedDataViewEditor.spec.js.snap +963 -759
  12. package/src/components/dataViews/__tests__/__snapshots__/DataViewSelect.spec.js.snap +17 -13
  13. package/src/components/dataViews/__tests__/__snapshots__/DataViewSummary.spec.js.snap +1786 -0
  14. package/src/components/dataViews/__tests__/__snapshots__/Queryable.spec.js.snap +18 -14
  15. package/src/components/dataViews/__tests__/__snapshots__/Queryables.spec.js.snap +18 -14
  16. package/src/components/dataViews/advancedForm/AdvancedDataViewEditor.js +59 -48
  17. package/src/components/dataViews/queryableProperties/Join.js +2 -1
  18. package/src/components/dataViews/queryableProperties/Select.js +22 -30
  19. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Join.spec.js.snap +1 -1
  20. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Select.spec.js.snap +37 -25
  21. package/src/components/dataViews/queryableSummaryHelpers.js +101 -0
  22. package/src/components/dataViews/simpleForm/SimpleDataViewEditor.js +9 -4
  23. package/src/components/dataViews/summary/From.js +45 -0
  24. package/src/components/dataViews/summary/GroupBy.js +82 -0
  25. package/src/components/dataViews/summary/Join.js +60 -0
  26. package/src/components/dataViews/summary/Select.js +31 -0
  27. package/src/components/dataViews/summary/Where.js +37 -0
  28. package/src/components/qualityControls/ControlPropertiesView.js +115 -63
  29. package/src/components/qualityControls/EditQualityControl.js +5 -3
  30. package/src/components/qualityControls/NewDraftQualityControl.js +8 -3
  31. package/src/components/qualityControls/NewQualityControl.js +5 -3
  32. package/src/components/qualityControls/QualityControlCrumbs.js +46 -5
  33. package/src/components/qualityControls/QualityControlRoutes.js +3 -1
  34. package/src/components/qualityControls/QualityControls.js +9 -18
  35. package/src/components/qualityControls/QualityControlsLabelResults.js +2 -2
  36. package/src/components/qualityControls/__tests__/__snapshots__/ControlPropertiesView.spec.js.snap +12 -9
  37. package/src/components/qualityControls/__tests__/__snapshots__/EditQualityControl.spec.js.snap +536 -493
  38. package/src/components/qualityControls/__tests__/__snapshots__/NewDraftQualityControl.spec.js.snap +510 -483
  39. package/src/components/qualityControls/__tests__/__snapshots__/NewQualityControl.spec.js.snap +261 -245
  40. package/src/components/qualityControls/__tests__/__snapshots__/QualityControl.spec.js.snap +11 -8
  41. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlCrumbs.spec.js.snap +1 -1
  42. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlHeader.spec.js.snap +1 -1
  43. package/src/components/qualityControls/__tests__/__snapshots__/QualityControls.spec.js.snap +87 -87
  44. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlsLabelResults.spec.js.snap +6 -2
  45. package/src/hooks/useDataViews.js +1 -1
  46. package/src/styles/Expression.less +25 -1
@@ -0,0 +1,1786 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<DataViewSummary /> matches snapshot for FROM with GROUP BY 1`] = `
4
+ <div>
5
+ <div
6
+ class="ui segment"
7
+ >
8
+ <div
9
+ class="ui list"
10
+ role="list"
11
+ >
12
+ <div
13
+ class="item"
14
+ role="listitem"
15
+ >
16
+ <div
17
+ class="header"
18
+ style="margin-bottom: 8px;"
19
+ >
20
+ <i
21
+ aria-hidden="true"
22
+ class="database icon"
23
+ />
24
+ dataViews.form.queryable.from
25
+ </div>
26
+ <div
27
+ class="content"
28
+ >
29
+ <div
30
+ class="description-flex-wrap text-break-word description"
31
+ >
32
+ <div
33
+ class="ui horizontal label"
34
+ >
35
+ queryables.resource.selector.data_structure
36
+ </div>
37
+ <div
38
+ class="ui blue label text-break-word"
39
+ >
40
+ SALES_TABLE
41
+ </div>
42
+ <b
43
+ style="margin-right: 4px; margin-left: 4px;"
44
+ >
45
+ as
46
+ </b>
47
+ <div
48
+ class="ui blue label text-break-word"
49
+ >
50
+ sales
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ <div
56
+ class="ui divider"
57
+ />
58
+ <div
59
+ class="item"
60
+ role="listitem"
61
+ >
62
+ <div
63
+ class="header"
64
+ style="margin-bottom: 4px;"
65
+ >
66
+ <i
67
+ aria-hidden="true"
68
+ class="calculator icon"
69
+ />
70
+ dataViews.form.queryable.group_by
71
+ </div>
72
+ <div
73
+ class="content"
74
+ >
75
+ <div
76
+ class="ui segment"
77
+ >
78
+ <div
79
+ class="description"
80
+ >
81
+ <div
82
+ style="margin-bottom: 8px;"
83
+ >
84
+ <h5
85
+ class="ui header"
86
+ >
87
+ <i
88
+ aria-hidden="true"
89
+ class="group small icon"
90
+ />
91
+ queryables.group_by.form.group_fields
92
+ </h5>
93
+ </div>
94
+ <div>
95
+ <div
96
+ class="ui blue label text-break-word"
97
+ title="sales.category"
98
+ >
99
+ sales.category
100
+ </div>
101
+ <b
102
+ style="margin-right: 4px; margin-left: 4px;"
103
+ >
104
+ as
105
+ </b>
106
+ <div
107
+ class="ui blue label text-break-word"
108
+ >
109
+ category
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ <div
115
+ class="ui segment"
116
+ >
117
+ <div
118
+ class="description"
119
+ >
120
+ <div
121
+ style="margin-bottom: 8px;"
122
+ >
123
+ <h5
124
+ class="ui header"
125
+ >
126
+ <i
127
+ aria-hidden="true"
128
+ class="chart bar small icon"
129
+ />
130
+ queryables.group_by.form.aggregate_fields
131
+ </h5>
132
+ </div>
133
+ <div>
134
+ <div
135
+ class="text-align-left"
136
+ >
137
+ <div
138
+ class="ui tiny horizontal label text-break-word"
139
+ title="sum"
140
+ >
141
+ sum
142
+ </div>
143
+ <b
144
+ style="margin-right: 4px; margin-left: 4px;"
145
+ >
146
+ as
147
+ </b>
148
+ <div
149
+ class="ui tiny label text-break-word"
150
+ >
151
+ total_sales
152
+ </div>
153
+ (
154
+ <div
155
+ class="clause-viewer-function"
156
+ >
157
+ <div
158
+ class="display-flex"
159
+ >
160
+ <div
161
+ class="ui blue label text-break-word"
162
+ title="sales.amount"
163
+ >
164
+ sales.amount
165
+ </div>
166
+ </div>
167
+ </div>
168
+ )
169
+ </div>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ `;
179
+
180
+ exports[`<DataViewSummary /> matches snapshot for FROM with JOIN 1`] = `
181
+ <div>
182
+ <div
183
+ class="ui segment"
184
+ >
185
+ <div
186
+ class="ui list"
187
+ role="list"
188
+ >
189
+ <div
190
+ class="item"
191
+ role="listitem"
192
+ >
193
+ <div
194
+ class="header"
195
+ style="margin-bottom: 8px;"
196
+ >
197
+ <i
198
+ aria-hidden="true"
199
+ class="database icon"
200
+ />
201
+ dataViews.form.queryable.from
202
+ </div>
203
+ <div
204
+ class="content"
205
+ >
206
+ <div
207
+ class="description-flex-wrap text-break-word description"
208
+ >
209
+ <div
210
+ class="ui horizontal label"
211
+ >
212
+ queryables.resource.selector.data_structure
213
+ </div>
214
+ <div
215
+ class="ui blue label text-break-word"
216
+ >
217
+ USERS_TABLE
218
+ </div>
219
+ <b
220
+ style="margin-right: 4px; margin-left: 4px;"
221
+ >
222
+ as
223
+ </b>
224
+ <div
225
+ class="ui blue label text-break-word"
226
+ >
227
+ users
228
+ </div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ <div
233
+ class="ui divider"
234
+ />
235
+ <div
236
+ class="item"
237
+ role="listitem"
238
+ >
239
+ <div
240
+ class="header"
241
+ style="margin-bottom: 4px;"
242
+ >
243
+ <i
244
+ aria-hidden="true"
245
+ class="linkify icon"
246
+ />
247
+ dataViews.form.queryable.join
248
+ </div>
249
+ <div
250
+ class="content"
251
+ >
252
+ <div
253
+ class="description-flex-wrap text-break-word description"
254
+ >
255
+ <div
256
+ style="display: flex; row-gap: 5px; flex-wrap: wrap;"
257
+ >
258
+ <div
259
+ style="display: flex; align-items: center;"
260
+ >
261
+ <div
262
+ class="join_type"
263
+ >
264
+ <div
265
+ class="circle circle-left fill"
266
+ >
267
+ <div
268
+ class="circle circle-center fill"
269
+ />
270
+ </div>
271
+ <div
272
+ class="circle circle-right"
273
+ />
274
+ </div>
275
+ <div
276
+ class="ui horizontal label"
277
+ >
278
+ queryables.resource.selector.data_structure
279
+ </div>
280
+ </div>
281
+ <div
282
+ class="ui orange label text-break-word"
283
+ >
284
+ ORDERS_TABLE
285
+ </div>
286
+ </div>
287
+ <b
288
+ style="margin-right: 4px; margin-left: 4px;"
289
+ >
290
+ as
291
+ </b>
292
+ <div
293
+ class="ui orange label text-break-word"
294
+ >
295
+ orders
296
+ </div>
297
+ <div
298
+ style="margin-top: 4px; width: 100%;"
299
+ >
300
+ <div
301
+ class="ui basic compact segment text-break-word"
302
+ >
303
+ <div
304
+ class="ui segment no-margin text-break-word"
305
+ >
306
+ <div
307
+ class="text-align-left"
308
+ >
309
+ <div
310
+ class="ui tiny horizontal label text-break-word"
311
+ title="eq"
312
+ >
313
+ eq
314
+ </div>
315
+ (
316
+ <div
317
+ class="clause-viewer-function"
318
+ >
319
+ <div
320
+ class="display-flex"
321
+ >
322
+ <div
323
+ class="ui blue label text-break-word"
324
+ title="users.user_id"
325
+ >
326
+ users.user_id
327
+ </div>
328
+ </div>
329
+ <div
330
+ class="display-flex"
331
+ >
332
+ <div
333
+ class="ui orange label text-break-word"
334
+ title="orders.user_id"
335
+ >
336
+ orders.user_id
337
+ </div>
338
+ </div>
339
+ </div>
340
+ )
341
+ </div>
342
+ </div>
343
+ </div>
344
+ </div>
345
+ </div>
346
+ </div>
347
+ </div>
348
+ </div>
349
+ </div>
350
+ </div>
351
+ `;
352
+
353
+ exports[`<DataViewSummary /> matches snapshot for FROM with WHERE clause 1`] = `
354
+ <div>
355
+ <div
356
+ class="ui segment"
357
+ >
358
+ <div
359
+ class="ui list"
360
+ role="list"
361
+ >
362
+ <div
363
+ class="item"
364
+ role="listitem"
365
+ >
366
+ <div
367
+ class="header"
368
+ style="margin-bottom: 8px;"
369
+ >
370
+ <i
371
+ aria-hidden="true"
372
+ class="database icon"
373
+ />
374
+ dataViews.form.queryable.from
375
+ </div>
376
+ <div
377
+ class="content"
378
+ >
379
+ <div
380
+ class="description-flex-wrap text-break-word description"
381
+ >
382
+ <div
383
+ class="ui horizontal label"
384
+ >
385
+ queryables.resource.selector.data_structure
386
+ </div>
387
+ <div
388
+ class="ui blue label text-break-word"
389
+ >
390
+ USERS_TABLE
391
+ </div>
392
+ <b
393
+ style="margin-right: 4px; margin-left: 4px;"
394
+ >
395
+ as
396
+ </b>
397
+ <div
398
+ class="ui blue label text-break-word"
399
+ >
400
+ users
401
+ </div>
402
+ </div>
403
+ </div>
404
+ </div>
405
+ <div
406
+ class="ui divider"
407
+ />
408
+ <div
409
+ class="item"
410
+ role="listitem"
411
+ >
412
+ <div
413
+ class="header"
414
+ style="margin-bottom: 4px;"
415
+ >
416
+ <i
417
+ aria-hidden="true"
418
+ class="filter icon"
419
+ />
420
+ dataViews.form.queryable.where
421
+ </div>
422
+ <div
423
+ class="content"
424
+ >
425
+ <div
426
+ class="description"
427
+ >
428
+ <div
429
+ class="ui basic compact segment text-break-word"
430
+ >
431
+ <div
432
+ class="ui segment no-margin text-break-word"
433
+ >
434
+ <div
435
+ class="text-align-left"
436
+ >
437
+ <div
438
+ class="ui tiny horizontal label text-break-word"
439
+ title="gt"
440
+ >
441
+ gt
442
+ </div>
443
+ (
444
+ <div
445
+ class="clause-viewer-function"
446
+ >
447
+ <div
448
+ class="display-flex"
449
+ >
450
+ <div
451
+ class="ui blue label text-break-word"
452
+ title="users.age"
453
+ >
454
+ users.age
455
+ </div>
456
+ </div>
457
+ <div
458
+ class="display-flex"
459
+ >
460
+ <div
461
+ class="ui basic label text-break-word"
462
+ >
463
+ 18
464
+ </div>
465
+ </div>
466
+ </div>
467
+ )
468
+ </div>
469
+ </div>
470
+ </div>
471
+ </div>
472
+ </div>
473
+ </div>
474
+ </div>
475
+ </div>
476
+ </div>
477
+ `;
478
+
479
+ exports[`<DataViewSummary /> matches snapshot for complete data view with all queryable types 1`] = `
480
+ <div>
481
+ <div
482
+ class="ui segment"
483
+ >
484
+ <div
485
+ class="ui list"
486
+ role="list"
487
+ >
488
+ <div
489
+ class="item"
490
+ role="listitem"
491
+ >
492
+ <div
493
+ class="header"
494
+ style="margin-bottom: 8px;"
495
+ >
496
+ <i
497
+ aria-hidden="true"
498
+ class="database icon"
499
+ />
500
+ dataViews.form.queryable.from
501
+ </div>
502
+ <div
503
+ class="content"
504
+ >
505
+ <div
506
+ class="description-flex-wrap text-break-word description"
507
+ >
508
+ <div
509
+ class="ui horizontal label"
510
+ >
511
+ queryables.resource.selector.data_structure
512
+ </div>
513
+ <div
514
+ class="ui blue label text-break-word"
515
+ >
516
+ USERS_TABLE
517
+ </div>
518
+ <b
519
+ style="margin-right: 4px; margin-left: 4px;"
520
+ >
521
+ as
522
+ </b>
523
+ <div
524
+ class="ui blue label text-break-word"
525
+ >
526
+ users
527
+ </div>
528
+ </div>
529
+ </div>
530
+ </div>
531
+ <div
532
+ class="ui divider"
533
+ />
534
+ <div
535
+ class="item"
536
+ role="listitem"
537
+ >
538
+ <div
539
+ class="header"
540
+ style="margin-bottom: 4px;"
541
+ >
542
+ <i
543
+ aria-hidden="true"
544
+ class="linkify icon"
545
+ />
546
+ dataViews.form.queryable.join
547
+ </div>
548
+ <div
549
+ class="content"
550
+ >
551
+ <div
552
+ class="description-flex-wrap text-break-word description"
553
+ >
554
+ <div
555
+ style="display: flex; row-gap: 5px; flex-wrap: wrap;"
556
+ >
557
+ <div
558
+ style="display: flex; align-items: center;"
559
+ >
560
+ <div
561
+ class="join_type"
562
+ >
563
+ <div
564
+ class="circle circle-left"
565
+ >
566
+ <div
567
+ class="circle circle-center fill"
568
+ />
569
+ </div>
570
+ <div
571
+ class="circle circle-right"
572
+ />
573
+ </div>
574
+ <div
575
+ class="ui horizontal label"
576
+ >
577
+ queryables.resource.selector.data_structure
578
+ </div>
579
+ </div>
580
+ <div
581
+ class="ui orange label text-break-word"
582
+ >
583
+ ORDERS_TABLE
584
+ </div>
585
+ </div>
586
+ <b
587
+ style="margin-right: 4px; margin-left: 4px;"
588
+ >
589
+ as
590
+ </b>
591
+ <div
592
+ class="ui orange label text-break-word"
593
+ >
594
+ orders
595
+ </div>
596
+ <div
597
+ style="margin-top: 4px; width: 100%;"
598
+ >
599
+ <div
600
+ class="ui basic compact segment text-break-word"
601
+ >
602
+ <div
603
+ class="ui segment no-margin text-break-word"
604
+ >
605
+ <div
606
+ class="text-align-left"
607
+ >
608
+ <div
609
+ class="ui tiny horizontal label text-break-word"
610
+ title="eq"
611
+ >
612
+ eq
613
+ </div>
614
+ (
615
+ <div
616
+ class="clause-viewer-function"
617
+ >
618
+ <div
619
+ class="display-flex"
620
+ >
621
+ <div
622
+ class="ui blue label text-break-word"
623
+ title="users.user_id"
624
+ >
625
+ users.user_id
626
+ </div>
627
+ </div>
628
+ <div
629
+ class="display-flex"
630
+ >
631
+ <div
632
+ class="ui orange label text-break-word"
633
+ title="orders.user_id"
634
+ >
635
+ orders.user_id
636
+ </div>
637
+ </div>
638
+ </div>
639
+ )
640
+ </div>
641
+ </div>
642
+ </div>
643
+ </div>
644
+ </div>
645
+ </div>
646
+ </div>
647
+ <div
648
+ class="ui divider"
649
+ />
650
+ <div
651
+ class="item"
652
+ role="listitem"
653
+ >
654
+ <div
655
+ class="header"
656
+ style="margin-bottom: 4px;"
657
+ >
658
+ <i
659
+ aria-hidden="true"
660
+ class="filter icon"
661
+ />
662
+ dataViews.form.queryable.where
663
+ </div>
664
+ <div
665
+ class="content"
666
+ >
667
+ <div
668
+ class="description"
669
+ >
670
+ <div
671
+ class="ui basic compact segment text-break-word"
672
+ >
673
+ <div
674
+ class="ui segment no-margin text-break-word"
675
+ >
676
+ <div
677
+ class="text-align-left"
678
+ >
679
+ <div
680
+ class="ui tiny horizontal label text-break-word"
681
+ title="gt"
682
+ >
683
+ gt
684
+ </div>
685
+ (
686
+ <div
687
+ class="clause-viewer-function"
688
+ >
689
+ <div
690
+ class="display-flex"
691
+ >
692
+ <div
693
+ class="ui orange label text-break-word"
694
+ title="orders.total"
695
+ >
696
+ orders.total
697
+ </div>
698
+ </div>
699
+ <div
700
+ class="display-flex"
701
+ >
702
+ <div
703
+ class="ui basic label text-break-word"
704
+ >
705
+ 100
706
+ </div>
707
+ </div>
708
+ </div>
709
+ )
710
+ </div>
711
+ </div>
712
+ </div>
713
+ </div>
714
+ </div>
715
+ </div>
716
+ <div
717
+ class="ui divider"
718
+ />
719
+ <div
720
+ class="item"
721
+ role="listitem"
722
+ >
723
+ <div
724
+ class="header"
725
+ style="margin-bottom: 4px;"
726
+ >
727
+ <i
728
+ aria-hidden="true"
729
+ class="calculator icon"
730
+ />
731
+ dataViews.form.queryable.group_by
732
+ </div>
733
+ <div
734
+ class="content"
735
+ >
736
+ <div
737
+ class="ui segment"
738
+ >
739
+ <div
740
+ class="description"
741
+ >
742
+ <div
743
+ style="margin-bottom: 8px;"
744
+ >
745
+ <h5
746
+ class="ui header"
747
+ >
748
+ <i
749
+ aria-hidden="true"
750
+ class="group small icon"
751
+ />
752
+ queryables.group_by.form.group_fields
753
+ </h5>
754
+ </div>
755
+ <div>
756
+ <div
757
+ class="ui blue label text-break-word"
758
+ title="users.name"
759
+ >
760
+ users.name
761
+ </div>
762
+ <b
763
+ style="margin-right: 4px; margin-left: 4px;"
764
+ >
765
+ as
766
+ </b>
767
+ <div
768
+ class="ui blue label text-break-word"
769
+ >
770
+ user_name
771
+ </div>
772
+ </div>
773
+ </div>
774
+ </div>
775
+ <div
776
+ class="ui segment"
777
+ >
778
+ <div
779
+ class="description"
780
+ >
781
+ <div
782
+ style="margin-bottom: 8px;"
783
+ >
784
+ <h5
785
+ class="ui header"
786
+ >
787
+ <i
788
+ aria-hidden="true"
789
+ class="chart bar small icon"
790
+ />
791
+ queryables.group_by.form.aggregate_fields
792
+ </h5>
793
+ </div>
794
+ <div>
795
+ <div
796
+ class="text-align-left"
797
+ >
798
+ <div
799
+ class="ui tiny horizontal label text-break-word"
800
+ title="count"
801
+ >
802
+ count
803
+ </div>
804
+ <b
805
+ style="margin-right: 4px; margin-left: 4px;"
806
+ >
807
+ as
808
+ </b>
809
+ <div
810
+ class="ui tiny label text-break-word"
811
+ >
812
+ order_count
813
+ </div>
814
+ (
815
+ <div
816
+ class="clause-viewer-function"
817
+ />
818
+ )
819
+ </div>
820
+ </div>
821
+ </div>
822
+ </div>
823
+ </div>
824
+ </div>
825
+ <div
826
+ class="ui divider"
827
+ />
828
+ <div
829
+ class="item"
830
+ role="listitem"
831
+ >
832
+ <div
833
+ class="header"
834
+ style="margin-bottom: 8px;"
835
+ >
836
+ <i
837
+ aria-hidden="true"
838
+ class="columns icon"
839
+ />
840
+ dataViews.form.queryable.select
841
+ </div>
842
+ <div
843
+ class="content"
844
+ >
845
+ <div
846
+ class="list"
847
+ >
848
+ <div
849
+ class="item"
850
+ role="listitem"
851
+ >
852
+ <div
853
+ class="ui blue label text-break-word"
854
+ title="users.name"
855
+ >
856
+ users.name
857
+ </div>
858
+ <b
859
+ style="margin-right: 4px; margin-left: 4px;"
860
+ >
861
+ as
862
+ </b>
863
+ <div
864
+ class="ui blue label text-break-word"
865
+ >
866
+ user_name
867
+ </div>
868
+ </div>
869
+ <div
870
+ class="item"
871
+ role="listitem"
872
+ >
873
+ <div
874
+ class="ui purple label text-break-word"
875
+ title="Group By.order_count"
876
+ >
877
+ Group By.order_count
878
+ </div>
879
+ <b
880
+ style="margin-right: 4px; margin-left: 4px;"
881
+ >
882
+ as
883
+ </b>
884
+ <div
885
+ class="ui purple label text-break-word"
886
+ >
887
+ total_orders
888
+ </div>
889
+ </div>
890
+ </div>
891
+ </div>
892
+ </div>
893
+ </div>
894
+ </div>
895
+ </div>
896
+ `;
897
+
898
+ exports[`<DataViewSummary /> matches snapshot for data view without alias 1`] = `
899
+ <div>
900
+ <div
901
+ class="ui segment"
902
+ >
903
+ <div
904
+ class="ui list"
905
+ role="list"
906
+ >
907
+ <div
908
+ class="item"
909
+ role="listitem"
910
+ >
911
+ <div
912
+ class="header"
913
+ style="margin-bottom: 8px;"
914
+ >
915
+ <i
916
+ aria-hidden="true"
917
+ class="database icon"
918
+ />
919
+ dataViews.form.queryable.from
920
+ </div>
921
+ <div
922
+ class="content"
923
+ >
924
+ <div
925
+ class="description-flex-wrap text-break-word description"
926
+ >
927
+ <div
928
+ class="ui horizontal label"
929
+ >
930
+ queryables.resource.selector.data_structure
931
+ </div>
932
+ <div
933
+ class="ui blue label text-break-word"
934
+ >
935
+ USERS_TABLE
936
+ </div>
937
+ </div>
938
+ </div>
939
+ </div>
940
+ </div>
941
+ </div>
942
+ </div>
943
+ `;
944
+
945
+ exports[`<DataViewSummary /> matches snapshot for fields without alias 1`] = `
946
+ <div>
947
+ <div
948
+ class="ui segment"
949
+ >
950
+ <div
951
+ class="ui list"
952
+ role="list"
953
+ >
954
+ <div
955
+ class="item"
956
+ role="listitem"
957
+ >
958
+ <div
959
+ class="header"
960
+ style="margin-bottom: 8px;"
961
+ >
962
+ <i
963
+ aria-hidden="true"
964
+ class="database icon"
965
+ />
966
+ dataViews.form.queryable.from
967
+ </div>
968
+ <div
969
+ class="content"
970
+ >
971
+ <div
972
+ class="description-flex-wrap text-break-word description"
973
+ >
974
+ <div
975
+ class="ui horizontal label"
976
+ >
977
+ queryables.resource.selector.data_structure
978
+ </div>
979
+ <div
980
+ class="ui blue label text-break-word"
981
+ >
982
+ USERS_TABLE
983
+ </div>
984
+ <b
985
+ style="margin-right: 4px; margin-left: 4px;"
986
+ >
987
+ as
988
+ </b>
989
+ <div
990
+ class="ui blue label text-break-word"
991
+ >
992
+ users
993
+ </div>
994
+ </div>
995
+ </div>
996
+ </div>
997
+ <div
998
+ class="ui divider"
999
+ />
1000
+ <div
1001
+ class="item"
1002
+ role="listitem"
1003
+ >
1004
+ <div
1005
+ class="header"
1006
+ style="margin-bottom: 4px;"
1007
+ >
1008
+ <i
1009
+ aria-hidden="true"
1010
+ class="calculator icon"
1011
+ />
1012
+ dataViews.form.queryable.group_by
1013
+ </div>
1014
+ <div
1015
+ class="content"
1016
+ >
1017
+ <div
1018
+ class="ui segment"
1019
+ >
1020
+ <div
1021
+ class="description"
1022
+ >
1023
+ <div
1024
+ style="margin-bottom: 8px;"
1025
+ >
1026
+ <h5
1027
+ class="ui header"
1028
+ >
1029
+ <i
1030
+ aria-hidden="true"
1031
+ class="group small icon"
1032
+ />
1033
+ queryables.group_by.form.group_fields
1034
+ </h5>
1035
+ </div>
1036
+ <div>
1037
+ <div
1038
+ class="ui blue label text-break-word"
1039
+ title="users.category"
1040
+ >
1041
+ users.category
1042
+ </div>
1043
+ </div>
1044
+ </div>
1045
+ </div>
1046
+ </div>
1047
+ </div>
1048
+ </div>
1049
+ </div>
1050
+ </div>
1051
+ `;
1052
+
1053
+ exports[`<DataViewSummary /> matches snapshot for simple FROM only 1`] = `
1054
+ <div>
1055
+ <div
1056
+ class="ui segment"
1057
+ >
1058
+ <div
1059
+ class="ui list"
1060
+ role="list"
1061
+ >
1062
+ <div
1063
+ class="item"
1064
+ role="listitem"
1065
+ >
1066
+ <div
1067
+ class="header"
1068
+ style="margin-bottom: 8px;"
1069
+ >
1070
+ <i
1071
+ aria-hidden="true"
1072
+ class="database icon"
1073
+ />
1074
+ dataViews.form.queryable.from
1075
+ </div>
1076
+ <div
1077
+ class="content"
1078
+ >
1079
+ <div
1080
+ class="description-flex-wrap text-break-word description"
1081
+ >
1082
+ <div
1083
+ class="ui horizontal label"
1084
+ >
1085
+ queryables.resource.selector.data_structure
1086
+ </div>
1087
+ <div
1088
+ class="ui blue label text-break-word"
1089
+ >
1090
+ USERS_TABLE
1091
+ </div>
1092
+ <b
1093
+ style="margin-right: 4px; margin-left: 4px;"
1094
+ >
1095
+ as
1096
+ </b>
1097
+ <div
1098
+ class="ui blue label text-break-word"
1099
+ >
1100
+ users
1101
+ </div>
1102
+ </div>
1103
+ </div>
1104
+ </div>
1105
+ </div>
1106
+ </div>
1107
+ </div>
1108
+ `;
1109
+
1110
+ exports[`<DataViewSummary /> matches snapshot with HAVING clause (where after group_by) 1`] = `
1111
+ <div>
1112
+ <div
1113
+ class="ui segment"
1114
+ >
1115
+ <div
1116
+ class="ui list"
1117
+ role="list"
1118
+ >
1119
+ <div
1120
+ class="item"
1121
+ role="listitem"
1122
+ >
1123
+ <div
1124
+ class="header"
1125
+ style="margin-bottom: 8px;"
1126
+ >
1127
+ <i
1128
+ aria-hidden="true"
1129
+ class="database icon"
1130
+ />
1131
+ dataViews.form.queryable.from
1132
+ </div>
1133
+ <div
1134
+ class="content"
1135
+ >
1136
+ <div
1137
+ class="description-flex-wrap text-break-word description"
1138
+ >
1139
+ <div
1140
+ class="ui horizontal label"
1141
+ >
1142
+ queryables.resource.selector.data_structure
1143
+ </div>
1144
+ <div
1145
+ class="ui blue label text-break-word"
1146
+ >
1147
+ SALES_TABLE
1148
+ </div>
1149
+ <b
1150
+ style="margin-right: 4px; margin-left: 4px;"
1151
+ >
1152
+ as
1153
+ </b>
1154
+ <div
1155
+ class="ui blue label text-break-word"
1156
+ >
1157
+ sales
1158
+ </div>
1159
+ </div>
1160
+ </div>
1161
+ </div>
1162
+ <div
1163
+ class="ui divider"
1164
+ />
1165
+ <div
1166
+ class="item"
1167
+ role="listitem"
1168
+ >
1169
+ <div
1170
+ class="header"
1171
+ style="margin-bottom: 4px;"
1172
+ >
1173
+ <i
1174
+ aria-hidden="true"
1175
+ class="calculator icon"
1176
+ />
1177
+ dataViews.form.queryable.group_by
1178
+ </div>
1179
+ <div
1180
+ class="content"
1181
+ >
1182
+ <div
1183
+ class="ui segment"
1184
+ >
1185
+ <div
1186
+ class="description"
1187
+ >
1188
+ <div
1189
+ style="margin-bottom: 8px;"
1190
+ >
1191
+ <h5
1192
+ class="ui header"
1193
+ >
1194
+ <i
1195
+ aria-hidden="true"
1196
+ class="group small icon"
1197
+ />
1198
+ queryables.group_by.form.group_fields
1199
+ </h5>
1200
+ </div>
1201
+ <div>
1202
+ <div
1203
+ class="ui blue label text-break-word"
1204
+ title="sales.category"
1205
+ >
1206
+ sales.category
1207
+ </div>
1208
+ <b
1209
+ style="margin-right: 4px; margin-left: 4px;"
1210
+ >
1211
+ as
1212
+ </b>
1213
+ <div
1214
+ class="ui blue label text-break-word"
1215
+ >
1216
+ category
1217
+ </div>
1218
+ </div>
1219
+ </div>
1220
+ </div>
1221
+ <div
1222
+ class="ui segment"
1223
+ >
1224
+ <div
1225
+ class="description"
1226
+ >
1227
+ <div
1228
+ style="margin-bottom: 8px;"
1229
+ >
1230
+ <h5
1231
+ class="ui header"
1232
+ >
1233
+ <i
1234
+ aria-hidden="true"
1235
+ class="chart bar small icon"
1236
+ />
1237
+ queryables.group_by.form.aggregate_fields
1238
+ </h5>
1239
+ </div>
1240
+ <div>
1241
+ <div
1242
+ class="text-align-left"
1243
+ >
1244
+ <div
1245
+ class="ui tiny horizontal label text-break-word"
1246
+ title="sum"
1247
+ >
1248
+ sum
1249
+ </div>
1250
+ <b
1251
+ style="margin-right: 4px; margin-left: 4px;"
1252
+ >
1253
+ as
1254
+ </b>
1255
+ <div
1256
+ class="ui tiny label text-break-word"
1257
+ >
1258
+ total
1259
+ </div>
1260
+ (
1261
+ <div
1262
+ class="clause-viewer-function"
1263
+ >
1264
+ <div
1265
+ class="display-flex"
1266
+ >
1267
+ <div
1268
+ class="ui blue label text-break-word"
1269
+ title="sales.amount"
1270
+ >
1271
+ sales.amount
1272
+ </div>
1273
+ </div>
1274
+ </div>
1275
+ )
1276
+ </div>
1277
+ </div>
1278
+ </div>
1279
+ </div>
1280
+ </div>
1281
+ </div>
1282
+ <div
1283
+ class="ui divider"
1284
+ />
1285
+ <div
1286
+ class="item"
1287
+ role="listitem"
1288
+ >
1289
+ <div
1290
+ class="header"
1291
+ style="margin-bottom: 4px;"
1292
+ >
1293
+ <i
1294
+ aria-hidden="true"
1295
+ class="filter icon"
1296
+ />
1297
+ dataViews.form.queryable.having
1298
+ </div>
1299
+ <div
1300
+ class="content"
1301
+ >
1302
+ <div
1303
+ class="description"
1304
+ >
1305
+ <div
1306
+ class="ui basic compact segment text-break-word"
1307
+ >
1308
+ <div
1309
+ class="ui segment no-margin text-break-word"
1310
+ >
1311
+ <div
1312
+ class="text-align-left"
1313
+ >
1314
+ <div
1315
+ class="ui tiny horizontal label text-break-word"
1316
+ title="gt"
1317
+ >
1318
+ gt
1319
+ </div>
1320
+ (
1321
+ <div
1322
+ class="clause-viewer-function"
1323
+ >
1324
+ <div
1325
+ class="display-flex"
1326
+ >
1327
+ <div
1328
+ class="ui orange label text-break-word"
1329
+ title="Group By.total"
1330
+ >
1331
+ Group By.total
1332
+ </div>
1333
+ </div>
1334
+ <div
1335
+ class="display-flex"
1336
+ >
1337
+ <div
1338
+ class="ui basic label text-break-word"
1339
+ >
1340
+ 1000
1341
+ </div>
1342
+ </div>
1343
+ </div>
1344
+ )
1345
+ </div>
1346
+ </div>
1347
+ </div>
1348
+ </div>
1349
+ </div>
1350
+ </div>
1351
+ </div>
1352
+ </div>
1353
+ </div>
1354
+ `;
1355
+
1356
+ exports[`<DataViewSummary /> matches snapshot with data_view resource 1`] = `
1357
+ <div>
1358
+ <div
1359
+ class="ui segment"
1360
+ >
1361
+ <div
1362
+ class="ui list"
1363
+ role="list"
1364
+ >
1365
+ <div
1366
+ class="item"
1367
+ role="listitem"
1368
+ >
1369
+ <div
1370
+ class="header"
1371
+ style="margin-bottom: 8px;"
1372
+ >
1373
+ <i
1374
+ aria-hidden="true"
1375
+ class="database icon"
1376
+ />
1377
+ dataViews.form.queryable.from
1378
+ </div>
1379
+ <div
1380
+ class="content"
1381
+ >
1382
+ <div
1383
+ class="description-flex-wrap text-break-word description"
1384
+ >
1385
+ <div
1386
+ class="ui horizontal label"
1387
+ >
1388
+ queryables.resource.selector.data_view
1389
+ </div>
1390
+ <div
1391
+ class="ui blue label text-break-word"
1392
+ >
1393
+ BASE_DATA_VIEW
1394
+ </div>
1395
+ <b
1396
+ style="margin-right: 4px; margin-left: 4px;"
1397
+ >
1398
+ as
1399
+ </b>
1400
+ <div
1401
+ class="ui blue label text-break-word"
1402
+ >
1403
+ base_view
1404
+ </div>
1405
+ </div>
1406
+ </div>
1407
+ </div>
1408
+ </div>
1409
+ </div>
1410
+ </div>
1411
+ `;
1412
+
1413
+ exports[`<DataViewSummary /> matches snapshot with multiple joins 1`] = `
1414
+ <div>
1415
+ <div
1416
+ class="ui segment"
1417
+ >
1418
+ <div
1419
+ class="ui list"
1420
+ role="list"
1421
+ >
1422
+ <div
1423
+ class="item"
1424
+ role="listitem"
1425
+ >
1426
+ <div
1427
+ class="header"
1428
+ style="margin-bottom: 8px;"
1429
+ >
1430
+ <i
1431
+ aria-hidden="true"
1432
+ class="database icon"
1433
+ />
1434
+ dataViews.form.queryable.from
1435
+ </div>
1436
+ <div
1437
+ class="content"
1438
+ >
1439
+ <div
1440
+ class="description-flex-wrap text-break-word description"
1441
+ >
1442
+ <div
1443
+ class="ui horizontal label"
1444
+ >
1445
+ queryables.resource.selector.data_structure
1446
+ </div>
1447
+ <div
1448
+ class="ui blue label text-break-word"
1449
+ >
1450
+ USERS_TABLE
1451
+ </div>
1452
+ <b
1453
+ style="margin-right: 4px; margin-left: 4px;"
1454
+ >
1455
+ as
1456
+ </b>
1457
+ <div
1458
+ class="ui blue label text-break-word"
1459
+ >
1460
+ users
1461
+ </div>
1462
+ </div>
1463
+ </div>
1464
+ </div>
1465
+ <div
1466
+ class="ui divider"
1467
+ />
1468
+ <div
1469
+ class="item"
1470
+ role="listitem"
1471
+ >
1472
+ <div
1473
+ class="header"
1474
+ style="margin-bottom: 4px;"
1475
+ >
1476
+ <i
1477
+ aria-hidden="true"
1478
+ class="linkify icon"
1479
+ />
1480
+ dataViews.form.queryable.join
1481
+ </div>
1482
+ <div
1483
+ class="content"
1484
+ >
1485
+ <div
1486
+ class="description-flex-wrap text-break-word description"
1487
+ >
1488
+ <div
1489
+ style="display: flex; row-gap: 5px; flex-wrap: wrap;"
1490
+ >
1491
+ <div
1492
+ style="display: flex; align-items: center;"
1493
+ >
1494
+ <div
1495
+ class="join_type"
1496
+ >
1497
+ <div
1498
+ class="circle circle-left"
1499
+ >
1500
+ <div
1501
+ class="circle circle-center fill"
1502
+ />
1503
+ </div>
1504
+ <div
1505
+ class="circle circle-right"
1506
+ />
1507
+ </div>
1508
+ <div
1509
+ class="ui horizontal label"
1510
+ >
1511
+ queryables.resource.selector.data_structure
1512
+ </div>
1513
+ </div>
1514
+ <div
1515
+ class="ui orange label text-break-word"
1516
+ >
1517
+ ORDERS_TABLE
1518
+ </div>
1519
+ </div>
1520
+ <b
1521
+ style="margin-right: 4px; margin-left: 4px;"
1522
+ >
1523
+ as
1524
+ </b>
1525
+ <div
1526
+ class="ui orange label text-break-word"
1527
+ >
1528
+ orders
1529
+ </div>
1530
+ </div>
1531
+ </div>
1532
+ </div>
1533
+ <div
1534
+ class="ui divider"
1535
+ />
1536
+ <div
1537
+ class="item"
1538
+ role="listitem"
1539
+ >
1540
+ <div
1541
+ class="header"
1542
+ style="margin-bottom: 4px;"
1543
+ >
1544
+ <i
1545
+ aria-hidden="true"
1546
+ class="linkify icon"
1547
+ />
1548
+ dataViews.form.queryable.join
1549
+ </div>
1550
+ <div
1551
+ class="content"
1552
+ >
1553
+ <div
1554
+ class="description-flex-wrap text-break-word description"
1555
+ >
1556
+ <div
1557
+ style="display: flex; row-gap: 5px; flex-wrap: wrap;"
1558
+ >
1559
+ <div
1560
+ style="display: flex; align-items: center;"
1561
+ >
1562
+ <div
1563
+ class="join_type"
1564
+ >
1565
+ <div
1566
+ class="circle circle-left fill"
1567
+ >
1568
+ <div
1569
+ class="circle circle-center fill"
1570
+ />
1571
+ </div>
1572
+ <div
1573
+ class="circle circle-right"
1574
+ />
1575
+ </div>
1576
+ <div
1577
+ class="ui horizontal label"
1578
+ >
1579
+ queryables.resource.selector.data_structure
1580
+ </div>
1581
+ </div>
1582
+ <div
1583
+ class="ui green label text-break-word"
1584
+ >
1585
+ PRODUCTS_TABLE
1586
+ </div>
1587
+ </div>
1588
+ <b
1589
+ style="margin-right: 4px; margin-left: 4px;"
1590
+ >
1591
+ as
1592
+ </b>
1593
+ <div
1594
+ class="ui green label text-break-word"
1595
+ >
1596
+ products
1597
+ </div>
1598
+ </div>
1599
+ </div>
1600
+ </div>
1601
+ </div>
1602
+ </div>
1603
+ </div>
1604
+ `;
1605
+
1606
+ exports[`<DataViewSummary /> matches snapshot with reference dataset resource 1`] = `
1607
+ <div>
1608
+ <div
1609
+ class="ui segment"
1610
+ >
1611
+ <div
1612
+ class="ui list"
1613
+ role="list"
1614
+ >
1615
+ <div
1616
+ class="item"
1617
+ role="listitem"
1618
+ >
1619
+ <div
1620
+ class="header"
1621
+ style="margin-bottom: 8px;"
1622
+ >
1623
+ <i
1624
+ aria-hidden="true"
1625
+ class="database icon"
1626
+ />
1627
+ dataViews.form.queryable.from
1628
+ </div>
1629
+ <div
1630
+ class="content"
1631
+ >
1632
+ <div
1633
+ class="description-flex-wrap text-break-word description"
1634
+ >
1635
+ <div
1636
+ class="ui horizontal label"
1637
+ >
1638
+ queryables.resource.selector.reference_dataset
1639
+ </div>
1640
+ <div
1641
+ class="ui blue label text-break-word"
1642
+ >
1643
+ COUNTRIES
1644
+ </div>
1645
+ <b
1646
+ style="margin-right: 4px; margin-left: 4px;"
1647
+ >
1648
+ as
1649
+ </b>
1650
+ <div
1651
+ class="ui blue label text-break-word"
1652
+ >
1653
+ countries
1654
+ </div>
1655
+ </div>
1656
+ </div>
1657
+ </div>
1658
+ </div>
1659
+ </div>
1660
+ </div>
1661
+ `;
1662
+
1663
+ exports[`<DataViewSummary /> matches snapshot with select in dataView.select 1`] = `
1664
+ <div>
1665
+ <div
1666
+ class="ui segment"
1667
+ >
1668
+ <div
1669
+ class="ui list"
1670
+ role="list"
1671
+ >
1672
+ <div
1673
+ class="item"
1674
+ role="listitem"
1675
+ >
1676
+ <div
1677
+ class="header"
1678
+ style="margin-bottom: 8px;"
1679
+ >
1680
+ <i
1681
+ aria-hidden="true"
1682
+ class="database icon"
1683
+ />
1684
+ dataViews.form.queryable.from
1685
+ </div>
1686
+ <div
1687
+ class="content"
1688
+ >
1689
+ <div
1690
+ class="description-flex-wrap text-break-word description"
1691
+ >
1692
+ <div
1693
+ class="ui horizontal label"
1694
+ >
1695
+ queryables.resource.selector.data_structure
1696
+ </div>
1697
+ <div
1698
+ class="ui blue label text-break-word"
1699
+ >
1700
+ USERS_TABLE
1701
+ </div>
1702
+ <b
1703
+ style="margin-right: 4px; margin-left: 4px;"
1704
+ >
1705
+ as
1706
+ </b>
1707
+ <div
1708
+ class="ui blue label text-break-word"
1709
+ >
1710
+ users
1711
+ </div>
1712
+ </div>
1713
+ </div>
1714
+ </div>
1715
+ <div
1716
+ class="ui divider"
1717
+ />
1718
+ <div
1719
+ class="item"
1720
+ role="listitem"
1721
+ >
1722
+ <div
1723
+ class="header"
1724
+ style="margin-bottom: 8px;"
1725
+ >
1726
+ <i
1727
+ aria-hidden="true"
1728
+ class="columns icon"
1729
+ />
1730
+ dataViews.form.queryable.select
1731
+ </div>
1732
+ <div
1733
+ class="content"
1734
+ >
1735
+ <div
1736
+ class="list"
1737
+ >
1738
+ <div
1739
+ class="item"
1740
+ role="listitem"
1741
+ >
1742
+ <div
1743
+ class="ui blue label text-break-word"
1744
+ title="users.name"
1745
+ >
1746
+ users.name
1747
+ </div>
1748
+ <b
1749
+ style="margin-right: 4px; margin-left: 4px;"
1750
+ >
1751
+ as
1752
+ </b>
1753
+ <div
1754
+ class="ui blue label text-break-word"
1755
+ >
1756
+ user_name
1757
+ </div>
1758
+ </div>
1759
+ <div
1760
+ class="item"
1761
+ role="listitem"
1762
+ >
1763
+ <div
1764
+ class="ui blue label text-break-word"
1765
+ title="users.email"
1766
+ >
1767
+ users.email
1768
+ </div>
1769
+ <b
1770
+ style="margin-right: 4px; margin-left: 4px;"
1771
+ >
1772
+ as
1773
+ </b>
1774
+ <div
1775
+ class="ui blue label text-break-word"
1776
+ >
1777
+ user_email
1778
+ </div>
1779
+ </div>
1780
+ </div>
1781
+ </div>
1782
+ </div>
1783
+ </div>
1784
+ </div>
1785
+ </div>
1786
+ `;