@genspectrum/dashboard-components 1.13.0 → 1.14.1

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 (27) hide show
  1. package/custom-elements.json +393 -2
  2. package/dist/components.d.ts +170 -53
  3. package/dist/components.js +702 -164
  4. package/dist/components.js.map +1 -1
  5. package/dist/util.d.ts +190 -55
  6. package/package.json +1 -1
  7. package/src/lapisApi/lapisTypes.ts +1 -1
  8. package/src/preact/prevalenceOverTime/prevalence-over-time-bubble-chart.tsx +1 -1
  9. package/src/preact/queriesOverTime/__mockData__/defaultMockData/queriesOverTime.json +32 -0
  10. package/src/preact/queriesOverTime/__mockData__/manyQueries.json +128 -0
  11. package/src/preact/queriesOverTime/__mockData__/request1800s.json +16 -0
  12. package/src/preact/queriesOverTime/__mockData__/withGaps.json +52 -0
  13. package/src/preact/queriesOverTime/getFilteredQueriesOverTimeData.ts +85 -0
  14. package/src/preact/queriesOverTime/queries-over-time-filter.tsx +25 -0
  15. package/src/preact/queriesOverTime/queries-over-time-grid-tooltip.stories.tsx +134 -0
  16. package/src/preact/queriesOverTime/queries-over-time-grid-tooltip.tsx +123 -0
  17. package/src/preact/queriesOverTime/queries-over-time.stories.tsx +481 -0
  18. package/src/preact/queriesOverTime/queries-over-time.tsx +304 -0
  19. package/src/utilEntrypoint.ts +1 -0
  20. package/src/web-components/visualization/gs-mutations-over-time.spec-d.ts +3 -0
  21. package/src/web-components/visualization/gs-mutations-over-time.tsx +1 -1
  22. package/src/web-components/visualization/gs-queries-over-time.spec-d.ts +38 -0
  23. package/src/web-components/visualization/gs-queries-over-time.stories.ts +288 -0
  24. package/src/web-components/visualization/gs-queries-over-time.tsx +154 -0
  25. package/src/web-components/visualization/index.ts +1 -0
  26. package/standalone-bundle/dashboard-components.js +8510 -8069
  27. package/standalone-bundle/dashboard-components.js.map +1 -1
package/dist/util.d.ts CHANGED
@@ -734,20 +734,139 @@ export declare type PrevalenceOverTimeView = default_2.infer<typeof prevalenceOv
734
734
 
735
735
  declare const prevalenceOverTimeViewSchema: default_2.ZodUnion<[default_2.ZodLiteral<"table">, default_2.ZodLiteral<"bar">, default_2.ZodLiteral<"line">, default_2.ZodLiteral<"bubble">]>;
736
736
 
737
+ export declare type QueriesOverTimeProps = default_2.infer<typeof queriesOverTimeSchema>;
738
+
739
+ declare const queriesOverTimeSchema: default_2.ZodObject<{
740
+ lapisFilter: default_2.ZodIntersection<default_2.ZodRecord<default_2.ZodString, default_2.ZodUnion<[default_2.ZodString, default_2.ZodArray<default_2.ZodString, "many">, default_2.ZodNumber, default_2.ZodNull, default_2.ZodBoolean, default_2.ZodUndefined]>>, default_2.ZodObject<{
741
+ nucleotideMutations: default_2.ZodOptional<default_2.ZodArray<default_2.ZodString, "many">>;
742
+ aminoAcidMutations: default_2.ZodOptional<default_2.ZodArray<default_2.ZodString, "many">>;
743
+ nucleotideInsertions: default_2.ZodOptional<default_2.ZodArray<default_2.ZodString, "many">>;
744
+ aminoAcidInsertions: default_2.ZodOptional<default_2.ZodArray<default_2.ZodString, "many">>;
745
+ }, "strip", default_2.ZodTypeAny, {
746
+ nucleotideMutations?: string[] | undefined;
747
+ aminoAcidMutations?: string[] | undefined;
748
+ nucleotideInsertions?: string[] | undefined;
749
+ aminoAcidInsertions?: string[] | undefined;
750
+ }, {
751
+ nucleotideMutations?: string[] | undefined;
752
+ aminoAcidMutations?: string[] | undefined;
753
+ nucleotideInsertions?: string[] | undefined;
754
+ aminoAcidInsertions?: string[] | undefined;
755
+ }>>;
756
+ queries: default_2.ZodArray<default_2.ZodObject<{
757
+ displayLabel: default_2.ZodString;
758
+ countQuery: default_2.ZodString;
759
+ coverageQuery: default_2.ZodString;
760
+ }, "strip", default_2.ZodTypeAny, {
761
+ displayLabel: string;
762
+ countQuery: string;
763
+ coverageQuery: string;
764
+ }, {
765
+ displayLabel: string;
766
+ countQuery: string;
767
+ coverageQuery: string;
768
+ }>, "many">;
769
+ views: default_2.ZodArray<default_2.ZodLiteral<"grid">, "many">;
770
+ granularity: default_2.ZodUnion<[default_2.ZodLiteral<"day">, default_2.ZodLiteral<"week">, default_2.ZodLiteral<"month">, default_2.ZodLiteral<"year">]>;
771
+ lapisDateField: default_2.ZodString;
772
+ initialMeanProportionInterval: default_2.ZodObject<{
773
+ min: default_2.ZodNumber;
774
+ max: default_2.ZodNumber;
775
+ }, "strip", default_2.ZodTypeAny, {
776
+ min: number;
777
+ max: number;
778
+ }, {
779
+ min: number;
780
+ max: number;
781
+ }>;
782
+ hideGaps: default_2.ZodOptional<default_2.ZodBoolean>;
783
+ width: default_2.ZodString;
784
+ height: default_2.ZodOptional<default_2.ZodString>;
785
+ pageSizes: default_2.ZodUnion<[default_2.ZodArray<default_2.ZodNumber, "many">, default_2.ZodNumber]>;
786
+ customColumns: default_2.ZodOptional<default_2.ZodArray<default_2.ZodObject<{
787
+ header: default_2.ZodString;
788
+ values: default_2.ZodRecord<default_2.ZodString, default_2.ZodUnion<[default_2.ZodString, default_2.ZodNumber]>>;
789
+ }, "strip", default_2.ZodTypeAny, {
790
+ values: Record<string, string | number>;
791
+ header: string;
792
+ }, {
793
+ values: Record<string, string | number>;
794
+ header: string;
795
+ }>, "many">>;
796
+ }, "strip", default_2.ZodTypeAny, {
797
+ lapisFilter: Record<string, string | number | boolean | string[] | null | undefined> & {
798
+ nucleotideMutations?: string[] | undefined;
799
+ aminoAcidMutations?: string[] | undefined;
800
+ nucleotideInsertions?: string[] | undefined;
801
+ aminoAcidInsertions?: string[] | undefined;
802
+ };
803
+ queries: {
804
+ displayLabel: string;
805
+ countQuery: string;
806
+ coverageQuery: string;
807
+ }[];
808
+ width: string;
809
+ views: "grid"[];
810
+ granularity: "day" | "week" | "month" | "year";
811
+ lapisDateField: string;
812
+ pageSizes: number | number[];
813
+ initialMeanProportionInterval: {
814
+ min: number;
815
+ max: number;
816
+ };
817
+ height?: string | undefined;
818
+ hideGaps?: boolean | undefined;
819
+ customColumns?: {
820
+ values: Record<string, string | number>;
821
+ header: string;
822
+ }[] | undefined;
823
+ }, {
824
+ lapisFilter: Record<string, string | number | boolean | string[] | null | undefined> & {
825
+ nucleotideMutations?: string[] | undefined;
826
+ aminoAcidMutations?: string[] | undefined;
827
+ nucleotideInsertions?: string[] | undefined;
828
+ aminoAcidInsertions?: string[] | undefined;
829
+ };
830
+ queries: {
831
+ displayLabel: string;
832
+ countQuery: string;
833
+ coverageQuery: string;
834
+ }[];
835
+ width: string;
836
+ views: "grid"[];
837
+ granularity: "day" | "week" | "month" | "year";
838
+ lapisDateField: string;
839
+ pageSizes: number | number[];
840
+ initialMeanProportionInterval: {
841
+ min: number;
842
+ max: number;
843
+ };
844
+ height?: string | undefined;
845
+ hideGaps?: boolean | undefined;
846
+ customColumns?: {
847
+ values: Record<string, string | number>;
848
+ header: string;
849
+ }[] | undefined;
850
+ }>;
851
+
852
+ export declare type QueriesOverTimeView = default_2.infer<typeof queriesOverTimeViewSchema>;
853
+
854
+ declare const queriesOverTimeViewSchema: default_2.ZodLiteral<"grid">;
855
+
737
856
  export declare type QueryDefinition = default_2.infer<typeof queryDefinition>;
738
857
 
739
858
  declare const queryDefinition: default_2.ZodObject<{
740
- displayLabel: default_2.ZodOptional<default_2.ZodString>;
859
+ displayLabel: default_2.ZodString;
741
860
  countQuery: default_2.ZodString;
742
861
  coverageQuery: default_2.ZodString;
743
862
  }, "strip", default_2.ZodTypeAny, {
863
+ displayLabel: string;
744
864
  countQuery: string;
745
865
  coverageQuery: string;
746
- displayLabel?: string | undefined;
747
866
  }, {
867
+ displayLabel: string;
748
868
  countQuery: string;
749
869
  coverageQuery: string;
750
- displayLabel?: string | undefined;
751
870
  }>;
752
871
 
753
872
  export declare type RelativeGrowthAdvantageProps = default_2.infer<typeof relativeGrowthAdvantagePropsSchema>;
@@ -987,7 +1106,11 @@ declare global {
987
1106
 
988
1107
  declare global {
989
1108
  interface HTMLElementTagNameMap {
990
- 'gs-genome-data-viewer': GenomeDataViewerComponent;
1109
+ 'gs-date-range-filter': DateRangeFilterComponent;
1110
+ }
1111
+ interface HTMLElementEventMap {
1112
+ [gsEventNames.dateRangeFilterChanged]: CustomEvent<Record<string, string>>;
1113
+ [gsEventNames.dateRangeOptionChanged]: DateRangeOptionChangedEvent;
991
1114
  }
992
1115
  }
993
1116
 
@@ -995,7 +1118,7 @@ declare global {
995
1118
  declare global {
996
1119
  namespace JSX {
997
1120
  interface IntrinsicElements {
998
- 'gs-genome-data-viewer': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1121
+ 'gs-date-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
999
1122
  }
1000
1123
  }
1001
1124
  }
@@ -1003,7 +1126,10 @@ declare global {
1003
1126
 
1004
1127
  declare global {
1005
1128
  interface HTMLElementTagNameMap {
1006
- 'gs-mutations': MutationsComponent;
1129
+ 'gs-location-filter': LocationFilterComponent;
1130
+ }
1131
+ interface HTMLElementEventMap {
1132
+ [gsEventNames.locationChanged]: LocationChangedEvent;
1007
1133
  }
1008
1134
  }
1009
1135
 
@@ -1011,7 +1137,7 @@ declare global {
1011
1137
  declare global {
1012
1138
  namespace JSX {
1013
1139
  interface IntrinsicElements {
1014
- 'gs-mutations': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1140
+ 'gs-location-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1015
1141
  }
1016
1142
  }
1017
1143
  }
@@ -1019,7 +1145,10 @@ declare global {
1019
1145
 
1020
1146
  declare global {
1021
1147
  interface HTMLElementTagNameMap {
1022
- 'gs-prevalence-over-time': PrevalenceOverTimeComponent;
1148
+ 'gs-text-filter': TextFilterComponent;
1149
+ }
1150
+ interface HTMLElementEventMap {
1151
+ [gsEventNames.textFilterChanged]: TextFilterChangedEvent;
1023
1152
  }
1024
1153
  }
1025
1154
 
@@ -1027,7 +1156,7 @@ declare global {
1027
1156
  declare global {
1028
1157
  namespace JSX {
1029
1158
  interface IntrinsicElements {
1030
- 'gs-prevalence-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1159
+ 'gs-text-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1031
1160
  }
1032
1161
  }
1033
1162
  }
@@ -1035,7 +1164,10 @@ declare global {
1035
1164
 
1036
1165
  declare global {
1037
1166
  interface HTMLElementTagNameMap {
1038
- 'gs-mutation-comparison': MutationComparisonComponent;
1167
+ 'gs-mutation-filter': MutationFilterComponent;
1168
+ }
1169
+ interface HTMLElementEventMap {
1170
+ [gsEventNames.mutationFilterChanged]: CustomEvent<MutationsFilter>;
1039
1171
  }
1040
1172
  }
1041
1173
 
@@ -1043,7 +1175,7 @@ declare global {
1043
1175
  declare global {
1044
1176
  namespace JSX {
1045
1177
  interface IntrinsicElements {
1046
- 'gs-mutation-comparison': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1178
+ 'gs-mutation-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1047
1179
  }
1048
1180
  }
1049
1181
  }
@@ -1051,7 +1183,11 @@ declare global {
1051
1183
 
1052
1184
  declare global {
1053
1185
  interface HTMLElementTagNameMap {
1054
- 'gs-relative-growth-advantage': RelativeGrowthAdvantageComponent;
1186
+ 'gs-lineage-filter': LineageFilterComponent;
1187
+ }
1188
+ interface HTMLElementEventMap {
1189
+ [gsEventNames.lineageFilterChanged]: LineageFilterChangedEvent;
1190
+ [gsEventNames.lineageFilterMultiChanged]: LineageMultiFilterChangedEvent;
1055
1191
  }
1056
1192
  }
1057
1193
 
@@ -1059,7 +1195,7 @@ declare global {
1059
1195
  declare global {
1060
1196
  namespace JSX {
1061
1197
  interface IntrinsicElements {
1062
- 'gs-relative-growth-advantage': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1198
+ 'gs-lineage-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1063
1199
  }
1064
1200
  }
1065
1201
  }
@@ -1067,7 +1203,11 @@ declare global {
1067
1203
 
1068
1204
  declare global {
1069
1205
  interface HTMLElementTagNameMap {
1070
- 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1206
+ 'gs-number-range-filter': NumberRangeFilterComponent;
1207
+ }
1208
+ interface HTMLElementEventMap {
1209
+ [gsEventNames.numberRangeFilterChanged]: NumberRangeFilterChangedEvent;
1210
+ [gsEventNames.numberRangeValueChanged]: NumberRangeValueChangedEvent;
1071
1211
  }
1072
1212
  }
1073
1213
 
@@ -1075,7 +1215,7 @@ declare global {
1075
1215
  declare global {
1076
1216
  namespace JSX {
1077
1217
  interface IntrinsicElements {
1078
- 'gs-number-sequences-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1218
+ 'gs-number-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1079
1219
  }
1080
1220
  }
1081
1221
  }
@@ -1083,7 +1223,7 @@ declare global {
1083
1223
 
1084
1224
  declare global {
1085
1225
  interface HTMLElementTagNameMap {
1086
- 'gs-aggregate': AggregateComponent;
1226
+ 'gs-genome-data-viewer': GenomeDataViewerComponent;
1087
1227
  }
1088
1228
  }
1089
1229
 
@@ -1091,7 +1231,7 @@ declare global {
1091
1231
  declare global {
1092
1232
  namespace JSX {
1093
1233
  interface IntrinsicElements {
1094
- 'gs-aggregate': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1234
+ 'gs-genome-data-viewer': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1095
1235
  }
1096
1236
  }
1097
1237
  }
@@ -1099,7 +1239,7 @@ declare global {
1099
1239
 
1100
1240
  declare global {
1101
1241
  interface HTMLElementTagNameMap {
1102
- 'gs-mutations-over-time': MutationsOverTimeComponent;
1242
+ 'gs-mutation-comparison': MutationComparisonComponent;
1103
1243
  }
1104
1244
  }
1105
1245
 
@@ -1107,7 +1247,7 @@ declare global {
1107
1247
  declare global {
1108
1248
  namespace JSX {
1109
1249
  interface IntrinsicElements {
1110
- 'gs-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1250
+ 'gs-mutation-comparison': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1111
1251
  }
1112
1252
  }
1113
1253
  }
@@ -1115,7 +1255,7 @@ declare global {
1115
1255
 
1116
1256
  declare global {
1117
1257
  interface HTMLElementTagNameMap {
1118
- 'gs-sequences-by-location': SequencesByLocationComponent;
1258
+ 'gs-mutations': MutationsComponent;
1119
1259
  }
1120
1260
  }
1121
1261
 
@@ -1123,7 +1263,7 @@ declare global {
1123
1263
  declare global {
1124
1264
  namespace JSX {
1125
1265
  interface IntrinsicElements {
1126
- 'gs-sequences-by-location': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1266
+ 'gs-mutations': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1127
1267
  }
1128
1268
  }
1129
1269
  }
@@ -1131,7 +1271,7 @@ declare global {
1131
1271
 
1132
1272
  declare global {
1133
1273
  interface HTMLElementTagNameMap {
1134
- 'gs-statistics': StatisticsComponent;
1274
+ 'gs-prevalence-over-time': PrevalenceOverTimeComponent;
1135
1275
  }
1136
1276
  }
1137
1277
 
@@ -1139,7 +1279,7 @@ declare global {
1139
1279
  declare global {
1140
1280
  namespace JSX {
1141
1281
  interface IntrinsicElements {
1142
- 'gs-statistics': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1282
+ 'gs-prevalence-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1143
1283
  }
1144
1284
  }
1145
1285
  }
@@ -1147,11 +1287,7 @@ declare global {
1147
1287
 
1148
1288
  declare global {
1149
1289
  interface HTMLElementTagNameMap {
1150
- 'gs-date-range-filter': DateRangeFilterComponent;
1151
- }
1152
- interface HTMLElementEventMap {
1153
- [gsEventNames.dateRangeFilterChanged]: CustomEvent<Record<string, string>>;
1154
- [gsEventNames.dateRangeOptionChanged]: DateRangeOptionChangedEvent;
1290
+ 'gs-relative-growth-advantage': RelativeGrowthAdvantageComponent;
1155
1291
  }
1156
1292
  }
1157
1293
 
@@ -1159,7 +1295,7 @@ declare global {
1159
1295
  declare global {
1160
1296
  namespace JSX {
1161
1297
  interface IntrinsicElements {
1162
- 'gs-date-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1298
+ 'gs-relative-growth-advantage': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1163
1299
  }
1164
1300
  }
1165
1301
  }
@@ -1167,10 +1303,7 @@ declare global {
1167
1303
 
1168
1304
  declare global {
1169
1305
  interface HTMLElementTagNameMap {
1170
- 'gs-location-filter': LocationFilterComponent;
1171
- }
1172
- interface HTMLElementEventMap {
1173
- [gsEventNames.locationChanged]: LocationChangedEvent;
1306
+ 'gs-aggregate': AggregateComponent;
1174
1307
  }
1175
1308
  }
1176
1309
 
@@ -1178,7 +1311,7 @@ declare global {
1178
1311
  declare global {
1179
1312
  namespace JSX {
1180
1313
  interface IntrinsicElements {
1181
- 'gs-location-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1314
+ 'gs-aggregate': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1182
1315
  }
1183
1316
  }
1184
1317
  }
@@ -1186,10 +1319,7 @@ declare global {
1186
1319
 
1187
1320
  declare global {
1188
1321
  interface HTMLElementTagNameMap {
1189
- 'gs-text-filter': TextFilterComponent;
1190
- }
1191
- interface HTMLElementEventMap {
1192
- [gsEventNames.textFilterChanged]: TextFilterChangedEvent;
1322
+ 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1193
1323
  }
1194
1324
  }
1195
1325
 
@@ -1197,7 +1327,7 @@ declare global {
1197
1327
  declare global {
1198
1328
  namespace JSX {
1199
1329
  interface IntrinsicElements {
1200
- 'gs-text-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1330
+ 'gs-number-sequences-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1201
1331
  }
1202
1332
  }
1203
1333
  }
@@ -1205,10 +1335,7 @@ declare global {
1205
1335
 
1206
1336
  declare global {
1207
1337
  interface HTMLElementTagNameMap {
1208
- 'gs-mutation-filter': MutationFilterComponent;
1209
- }
1210
- interface HTMLElementEventMap {
1211
- [gsEventNames.mutationFilterChanged]: CustomEvent<MutationsFilter>;
1338
+ 'gs-mutations-over-time': MutationsOverTimeComponent;
1212
1339
  }
1213
1340
  }
1214
1341
 
@@ -1216,7 +1343,7 @@ declare global {
1216
1343
  declare global {
1217
1344
  namespace JSX {
1218
1345
  interface IntrinsicElements {
1219
- 'gs-mutation-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1346
+ 'gs-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1220
1347
  }
1221
1348
  }
1222
1349
  }
@@ -1224,11 +1351,7 @@ declare global {
1224
1351
 
1225
1352
  declare global {
1226
1353
  interface HTMLElementTagNameMap {
1227
- 'gs-lineage-filter': LineageFilterComponent;
1228
- }
1229
- interface HTMLElementEventMap {
1230
- [gsEventNames.lineageFilterChanged]: LineageFilterChangedEvent;
1231
- [gsEventNames.lineageFilterMultiChanged]: LineageMultiFilterChangedEvent;
1354
+ 'gs-sequences-by-location': SequencesByLocationComponent;
1232
1355
  }
1233
1356
  }
1234
1357
 
@@ -1236,7 +1359,7 @@ declare global {
1236
1359
  declare global {
1237
1360
  namespace JSX {
1238
1361
  interface IntrinsicElements {
1239
- 'gs-lineage-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1362
+ 'gs-sequences-by-location': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1240
1363
  }
1241
1364
  }
1242
1365
  }
@@ -1244,11 +1367,23 @@ declare global {
1244
1367
 
1245
1368
  declare global {
1246
1369
  interface HTMLElementTagNameMap {
1247
- 'gs-number-range-filter': NumberRangeFilterComponent;
1370
+ 'gs-statistics': StatisticsComponent;
1248
1371
  }
1249
- interface HTMLElementEventMap {
1250
- [gsEventNames.numberRangeFilterChanged]: NumberRangeFilterChangedEvent;
1251
- [gsEventNames.numberRangeValueChanged]: NumberRangeValueChangedEvent;
1372
+ }
1373
+
1374
+
1375
+ declare global {
1376
+ namespace JSX {
1377
+ interface IntrinsicElements {
1378
+ 'gs-statistics': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1379
+ }
1380
+ }
1381
+ }
1382
+
1383
+
1384
+ declare global {
1385
+ interface HTMLElementTagNameMap {
1386
+ 'gs-queries-over-time': QueriesOverTimeComponent;
1252
1387
  }
1253
1388
  }
1254
1389
 
@@ -1256,7 +1391,7 @@ declare global {
1256
1391
  declare global {
1257
1392
  namespace JSX {
1258
1393
  interface IntrinsicElements {
1259
- 'gs-number-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1394
+ 'gs-queries-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1260
1395
  }
1261
1396
  }
1262
1397
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genspectrum/dashboard-components",
3
- "version": "1.13.0",
3
+ "version": "1.14.1",
4
4
  "description": "GenSpectrum web components for building dashboards",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-only",
@@ -68,7 +68,7 @@ export const mutationsOverTimeResponse = makeLapisResponse(
68
68
  export type MutationsOverTimeResponse = z.infer<typeof mutationsOverTimeResponse>;
69
69
 
70
70
  const queryDefinition = z.object({
71
- displayLabel: z.string().optional(),
71
+ displayLabel: z.string(),
72
72
  countQuery: z.string(),
73
73
  coverageQuery: z.string(),
74
74
  });
@@ -39,7 +39,7 @@ const PrevalenceOverTimeBubbleChart = ({
39
39
  };
40
40
  });
41
41
 
42
- if (nonNullDateRangeData.length === 0) {
42
+ if (nonNullDateRangeData.length === 0 || nonNullDateRangeData[0].content.length === 0) {
43
43
  return NO_DATA;
44
44
  }
45
45
 
@@ -0,0 +1,32 @@
1
+ {
2
+ "data": {
3
+ "queries": ["S:F456L (single mutation)", "R346T + F456L (combination)", "C22916T or T22917G (nucleotide OR)"],
4
+ "dateRanges": [
5
+ { "dateFrom": "2024-01-01", "dateTo": "2024-01-31" },
6
+ { "dateFrom": "2024-02-01", "dateTo": "2024-02-29" },
7
+ { "dateFrom": "2024-03-01", "dateTo": "2024-03-31" },
8
+ { "dateFrom": "2024-04-01", "dateTo": "2024-04-30" }
9
+ ],
10
+ "data": [
11
+ [
12
+ { "count": 450, "coverage": 1000 },
13
+ { "count": 380, "coverage": 950 },
14
+ { "count": 280, "coverage": 900 },
15
+ { "count": 120, "coverage": 850 }
16
+ ],
17
+ [
18
+ { "count": 320, "coverage": 1000 },
19
+ { "count": 420, "coverage": 950 },
20
+ { "count": 380, "coverage": 900 },
21
+ { "count": 290, "coverage": 850 }
22
+ ],
23
+ [
24
+ { "count": 80, "coverage": 1000 },
25
+ { "count": 150, "coverage": 950 },
26
+ { "count": 340, "coverage": 900 },
27
+ { "count": 480, "coverage": 850 }
28
+ ]
29
+ ],
30
+ "totalCountsByDateRange": [1000, 950, 900, 850]
31
+ }
32
+ }
@@ -0,0 +1,128 @@
1
+ {
2
+ "data": {
3
+ "queries": [
4
+ "S:F456L",
5
+ "S:R346T",
6
+ "S:Q493E",
7
+ "S:F486P",
8
+ "S:N460K",
9
+ "S:L455F",
10
+ "S:L455S",
11
+ "S:T572I",
12
+ "S:R190S",
13
+ "S:R190T",
14
+ "S:K478T",
15
+ "S:T22N",
16
+ "S:S31P",
17
+ "ORF1b:S997L",
18
+ "C875A"
19
+ ],
20
+ "dateRanges": [
21
+ { "dateFrom": "2024-01-01", "dateTo": "2024-01-31" },
22
+ { "dateFrom": "2024-02-01", "dateTo": "2024-02-29" },
23
+ { "dateFrom": "2024-03-01", "dateTo": "2024-03-31" },
24
+ { "dateFrom": "2024-04-01", "dateTo": "2024-04-30" }
25
+ ],
26
+ "data": [
27
+ [
28
+ { "count": 450, "coverage": 1000 },
29
+ { "count": 380, "coverage": 950 },
30
+ { "count": 280, "coverage": 900 },
31
+ { "count": 120, "coverage": 850 }
32
+ ],
33
+ [
34
+ { "count": 320, "coverage": 1000 },
35
+ { "count": 420, "coverage": 950 },
36
+ { "count": 380, "coverage": 900 },
37
+ { "count": 290, "coverage": 850 }
38
+ ],
39
+ [
40
+ { "count": 80, "coverage": 1000 },
41
+ { "count": 150, "coverage": 950 },
42
+ { "count": 340, "coverage": 900 },
43
+ { "count": 480, "coverage": 850 }
44
+ ],
45
+ [
46
+ { "count": 200, "coverage": 1000 },
47
+ { "count": 250, "coverage": 950 },
48
+ { "count": 300, "coverage": 900 },
49
+ { "count": 350, "coverage": 850 }
50
+ ],
51
+ [
52
+ { "count": 150, "coverage": 1000 },
53
+ { "count": 200, "coverage": 950 },
54
+ { "count": 250, "coverage": 900 },
55
+ { "count": 300, "coverage": 850 }
56
+ ],
57
+ [
58
+ { "count": 100, "coverage": 1000 },
59
+ { "count": 150, "coverage": 950 },
60
+ { "count": 200, "coverage": 900 },
61
+ { "count": 250, "coverage": 850 }
62
+ ],
63
+ [
64
+ { "count": 180, "coverage": 1000 },
65
+ { "count": 220, "coverage": 950 },
66
+ { "count": 260, "coverage": 900 },
67
+ { "count": 300, "coverage": 850 }
68
+ ],
69
+ [
70
+ { "count": 220, "coverage": 1000 },
71
+ { "count": 280, "coverage": 950 },
72
+ { "count": 340, "coverage": 900 },
73
+ { "count": 400, "coverage": 850 }
74
+ ],
75
+ [
76
+ { "count": 90, "coverage": 1000 },
77
+ { "count": 120, "coverage": 950 },
78
+ { "count": 150, "coverage": 900 },
79
+ { "count": 180, "coverage": 850 }
80
+ ],
81
+ [
82
+ { "count": 300, "coverage": 1000 },
83
+ { "count": 350, "coverage": 950 },
84
+ { "count": 400, "coverage": 900 },
85
+ { "count": 450, "coverage": 850 }
86
+ ],
87
+ [
88
+ { "count": 50, "coverage": 1000 },
89
+ { "count": 75, "coverage": 950 },
90
+ { "count": 100, "coverage": 900 },
91
+ { "count": 125, "coverage": 850 }
92
+ ],
93
+ [
94
+ { "count": 270, "coverage": 1000 },
95
+ { "count": 310, "coverage": 950 },
96
+ { "count": 350, "coverage": 900 },
97
+ { "count": 390, "coverage": 850 }
98
+ ],
99
+ [
100
+ { "count": 160, "coverage": 1000 },
101
+ { "count": 200, "coverage": 950 },
102
+ { "count": 240, "coverage": 900 },
103
+ { "count": 280, "coverage": 850 }
104
+ ],
105
+ [
106
+ { "count": 400, "coverage": 1000 },
107
+ { "count": 420, "coverage": 950 },
108
+ { "count": 440, "coverage": 900 },
109
+ { "count": 460, "coverage": 850 }
110
+ ],
111
+ [
112
+ { "count": 330, "coverage": 1000 },
113
+ { "count": 360, "coverage": 950 },
114
+ { "count": 390, "coverage": 900 },
115
+ { "count": 420, "coverage": 850 }
116
+ ]
117
+ ],
118
+ "totalCountsByDateRange": [1000, 950, 900, 850]
119
+ },
120
+ "info": {
121
+ "dataVersion": "test",
122
+ "requestId": "test-request-many-queries",
123
+ "requestInfo": "Mock data with many queries for testing pagination",
124
+ "reportTo": "https://github.com/GenSpectrum/LAPIS/issues",
125
+ "lapisVersion": "test",
126
+ "siloVersion": "test"
127
+ }
128
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "data": {
3
+ "queries": [],
4
+ "dateRanges": [{ "dateFrom": "1800-01-01", "dateTo": "1800-12-31" }],
5
+ "data": [],
6
+ "totalCountsByDateRange": []
7
+ },
8
+ "info": {
9
+ "dataVersion": null,
10
+ "requestId": "test-request-1800s",
11
+ "requestInfo": "Mock data for 1800s empty dataset test",
12
+ "reportTo": "https://github.com/GenSpectrum/LAPIS/issues",
13
+ "lapisVersion": "test",
14
+ "siloVersion": "test"
15
+ }
16
+ }