@genspectrum/dashboard-components 0.14.1 → 0.14.2

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 (54) hide show
  1. package/custom-elements.json +11 -11
  2. package/dist/assets/mutationOverTimeWorker-Dxnxrfe0.js.map +1 -1
  3. package/dist/components.d.ts +47 -51
  4. package/dist/components.js +17 -7
  5. package/dist/components.js.map +1 -1
  6. package/dist/util.d.ts +46 -46
  7. package/package.json +2 -2
  8. package/src/lapisApi/lapisApi.ts +1 -1
  9. package/src/operator/FillMissingOperator.spec.ts +1 -1
  10. package/src/operator/GroupByAndSumOperator.spec.ts +1 -1
  11. package/src/operator/GroupByOperator.spec.ts +2 -2
  12. package/src/operator/MapOperator.spec.ts +1 -1
  13. package/src/operator/MockOperator.spec.ts +1 -1
  14. package/src/operator/MockOperator.ts +6 -4
  15. package/src/operator/SortOperator.spec.ts +1 -1
  16. package/src/preact/aggregatedData/aggregate.stories.tsx +1 -1
  17. package/src/preact/components/csv-download-button.stories.tsx +2 -2
  18. package/src/preact/components/csv-download-button.tsx +1 -1
  19. package/src/preact/components/error-boundary.stories.tsx +5 -5
  20. package/src/preact/components/error-boundary.tsx +14 -3
  21. package/src/preact/components/error-display.stories.tsx +9 -9
  22. package/src/preact/components/fullscreen.tsx +3 -3
  23. package/src/preact/components/info.tsx +1 -1
  24. package/src/preact/components/mutation-type-selector.stories.tsx +1 -1
  25. package/src/preact/components/table.stories.tsx +3 -3
  26. package/src/preact/components/table.tsx +1 -1
  27. package/src/preact/dateRangeSelector/date-range-selector.stories.tsx +3 -6
  28. package/src/preact/dateRangeSelector/date-range-selector.tsx +2 -2
  29. package/src/preact/lineageFilter/lineage-filter.stories.tsx +6 -6
  30. package/src/preact/locationFilter/fetchAutocompletionList.ts +1 -1
  31. package/src/preact/locationFilter/location-filter.stories.tsx +6 -6
  32. package/src/preact/map/sequences-by-location.stories.tsx +1 -1
  33. package/src/preact/mutationFilter/mutation-filter.stories.tsx +2 -2
  34. package/src/preact/mutations/getMutationsGridData.ts +1 -1
  35. package/src/preact/mutationsOverTime/mutations-over-time-grid.tsx +3 -3
  36. package/src/preact/mutationsOverTime/mutations-over-time.stories.tsx +1 -1
  37. package/src/preact/mutationsOverTime/mutations-over-time.tsx +1 -0
  38. package/src/preact/numberSequencesOverTime/number-sequences-over-time.stories.tsx +1 -1
  39. package/src/preact/prevalenceOverTime/prevalence-over-time-bubble-chart.tsx +4 -4
  40. package/src/preact/prevalenceOverTime/prevalence-over-time.stories.tsx +1 -1
  41. package/src/preact/relativeGrowthAdvantage/relative-growth-advantage.stories.tsx +1 -1
  42. package/src/preact/shared/floating-ui/hooks.ts +1 -1
  43. package/src/preact/textInput/text-input.stories.tsx +4 -4
  44. package/src/utils/map2d.ts +1 -0
  45. package/src/web-components/gs-app.stories.ts +7 -7
  46. package/src/web-components/input/gs-date-range-selector.stories.ts +6 -6
  47. package/src/web-components/input/gs-lineage-filter.stories.ts +1 -1
  48. package/src/web-components/input/gs-location-filter.stories.ts +1 -1
  49. package/src/web-components/input/gs-mutation-filter.stories.ts +7 -7
  50. package/src/web-components/input/gs-text-input.stories.ts +3 -3
  51. package/src/web-components/visualization/gs-aggregate.tsx +2 -2
  52. package/standalone-bundle/assets/mutationOverTimeWorker-CmSrq4SZ.js.map +1 -1
  53. package/standalone-bundle/dashboard-components.js +70 -63
  54. package/standalone-bundle/dashboard-components.js.map +1 -1
@@ -45,7 +45,7 @@ export declare class AggregateComponent extends PreactLitAdapterWithGridJsStyles
45
45
  /**
46
46
  * A list of tabs with views that this component should provide.
47
47
  */
48
- views: AggregateView[];
48
+ views: ('table' | 'bar')[];
49
49
  /**
50
50
  * The filter to apply to the data.
51
51
  * It must be a valid LAPIS filter object.
@@ -89,10 +89,6 @@ export declare class AggregateComponent extends PreactLitAdapterWithGridJsStyles
89
89
  render(): JSX_2.Element;
90
90
  }
91
91
 
92
- declare type AggregateView = default_2.infer<typeof aggregateViewSchema>;
93
-
94
- declare const aggregateViewSchema: default_2.ZodUnion<[default_2.ZodLiteral<"table">, default_2.ZodLiteral<"bar">]>;
95
-
96
92
  /**
97
93
  * ## Context
98
94
  *
@@ -1346,11 +1342,7 @@ declare global {
1346
1342
 
1347
1343
  declare global {
1348
1344
  interface HTMLElementTagNameMap {
1349
- 'gs-date-range-selector': DateRangeSelectorComponent;
1350
- }
1351
- interface HTMLElementEventMap {
1352
- 'gs-date-range-filter-changed': CustomEvent<Record<string, string>>;
1353
- 'gs-date-range-option-changed': DateRangeOptionChangedEvent;
1345
+ 'gs-mutations-component': MutationsComponent;
1354
1346
  }
1355
1347
  }
1356
1348
 
@@ -1358,7 +1350,7 @@ declare global {
1358
1350
  declare global {
1359
1351
  namespace JSX {
1360
1352
  interface IntrinsicElements {
1361
- 'gs-date-range-selector': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1353
+ 'gs-mutations-component': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1362
1354
  }
1363
1355
  }
1364
1356
  }
@@ -1366,10 +1358,7 @@ declare global {
1366
1358
 
1367
1359
  declare global {
1368
1360
  interface HTMLElementTagNameMap {
1369
- 'gs-text-input': TextInputComponent;
1370
- }
1371
- interface HTMLElementEventMap {
1372
- 'gs-text-input-changed': TextInputChangedEvent;
1361
+ 'gs-mutation-comparison-component': MutationComparisonComponent;
1373
1362
  }
1374
1363
  }
1375
1364
 
@@ -1377,7 +1366,7 @@ declare global {
1377
1366
  declare global {
1378
1367
  namespace JSX {
1379
1368
  interface IntrinsicElements {
1380
- 'gs-text-input': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1369
+ 'gs-mutation-comparison-component': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1381
1370
  }
1382
1371
  }
1383
1372
  }
@@ -1385,10 +1374,7 @@ declare global {
1385
1374
 
1386
1375
  declare global {
1387
1376
  interface HTMLElementTagNameMap {
1388
- 'gs-location-filter': LocationFilterComponent;
1389
- }
1390
- interface HTMLElementEventMap {
1391
- 'gs-location-changed': LocationChangedEvent;
1377
+ 'gs-prevalence-over-time': PrevalenceOverTimeComponent;
1392
1378
  }
1393
1379
  }
1394
1380
 
@@ -1396,7 +1382,7 @@ declare global {
1396
1382
  declare global {
1397
1383
  namespace JSX {
1398
1384
  interface IntrinsicElements {
1399
- 'gs-location-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1385
+ 'gs-prevalence-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1400
1386
  }
1401
1387
  }
1402
1388
  }
@@ -1404,10 +1390,7 @@ declare global {
1404
1390
 
1405
1391
  declare global {
1406
1392
  interface HTMLElementTagNameMap {
1407
- 'gs-lineage-filter': LineageFilterComponent;
1408
- }
1409
- interface HTMLElementEventMap {
1410
- 'gs-lineage-filter-changed': LineageFilterChangedEvent;
1393
+ 'gs-relative-growth-advantage': RelativeGrowthAdvantageComponent;
1411
1394
  }
1412
1395
  }
1413
1396
 
@@ -1415,7 +1398,7 @@ declare global {
1415
1398
  declare global {
1416
1399
  namespace JSX {
1417
1400
  interface IntrinsicElements {
1418
- 'gs-lineage-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1401
+ 'gs-relative-growth-advantage': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1419
1402
  }
1420
1403
  }
1421
1404
  }
@@ -1423,10 +1406,7 @@ declare global {
1423
1406
 
1424
1407
  declare global {
1425
1408
  interface HTMLElementTagNameMap {
1426
- 'gs-mutation-filter': MutationFilterComponent;
1427
- }
1428
- interface HTMLElementEventMap {
1429
- 'gs-mutation-filter-changed': CustomEvent<MutationsFilter>;
1409
+ 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1430
1410
  }
1431
1411
  }
1432
1412
 
@@ -1434,7 +1414,7 @@ declare global {
1434
1414
  declare global {
1435
1415
  namespace JSX {
1436
1416
  interface IntrinsicElements {
1437
- 'gs-mutation-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1417
+ 'gs-number-sequences-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1438
1418
  }
1439
1419
  }
1440
1420
  }
@@ -1442,7 +1422,7 @@ declare global {
1442
1422
 
1443
1423
  declare global {
1444
1424
  interface HTMLElementTagNameMap {
1445
- 'gs-wastewater-mutations-over-time': WastewaterMutationsOverTimeComponent;
1425
+ 'gs-aggregate': AggregateComponent;
1446
1426
  }
1447
1427
  }
1448
1428
 
@@ -1450,7 +1430,7 @@ declare global {
1450
1430
  declare global {
1451
1431
  namespace JSX {
1452
1432
  interface IntrinsicElements {
1453
- 'gs-wastewater-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1433
+ 'gs-aggregate': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1454
1434
  }
1455
1435
  }
1456
1436
  }
@@ -1458,7 +1438,7 @@ declare global {
1458
1438
 
1459
1439
  declare global {
1460
1440
  interface HTMLElementTagNameMap {
1461
- 'gs-mutation-comparison-component': MutationComparisonComponent;
1441
+ 'gs-mutations-over-time': MutationsOverTimeComponent;
1462
1442
  }
1463
1443
  }
1464
1444
 
@@ -1466,7 +1446,7 @@ declare global {
1466
1446
  declare global {
1467
1447
  namespace JSX {
1468
1448
  interface IntrinsicElements {
1469
- 'gs-mutation-comparison-component': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1449
+ 'gs-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1470
1450
  }
1471
1451
  }
1472
1452
  }
@@ -1474,7 +1454,7 @@ declare global {
1474
1454
 
1475
1455
  declare global {
1476
1456
  interface HTMLElementTagNameMap {
1477
- 'gs-prevalence-over-time': PrevalenceOverTimeComponent;
1457
+ 'gs-sequences-by-location': SequencesByLocationComponent;
1478
1458
  }
1479
1459
  }
1480
1460
 
@@ -1482,7 +1462,7 @@ declare global {
1482
1462
  declare global {
1483
1463
  namespace JSX {
1484
1464
  interface IntrinsicElements {
1485
- 'gs-prevalence-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1465
+ 'gs-sequences-by-location': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1486
1466
  }
1487
1467
  }
1488
1468
  }
@@ -1490,7 +1470,7 @@ declare global {
1490
1470
 
1491
1471
  declare global {
1492
1472
  interface HTMLElementTagNameMap {
1493
- 'gs-mutations-component': MutationsComponent;
1473
+ 'gs-statistics': StatisticsComponent;
1494
1474
  }
1495
1475
  }
1496
1476
 
@@ -1498,7 +1478,7 @@ declare global {
1498
1478
  declare global {
1499
1479
  namespace JSX {
1500
1480
  interface IntrinsicElements {
1501
- 'gs-mutations-component': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1481
+ 'gs-statistics': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1502
1482
  }
1503
1483
  }
1504
1484
  }
@@ -1506,7 +1486,7 @@ declare global {
1506
1486
 
1507
1487
  declare global {
1508
1488
  interface HTMLElementTagNameMap {
1509
- 'gs-relative-growth-advantage': RelativeGrowthAdvantageComponent;
1489
+ 'gs-wastewater-mutations-over-time': WastewaterMutationsOverTimeComponent;
1510
1490
  }
1511
1491
  }
1512
1492
 
@@ -1514,7 +1494,7 @@ declare global {
1514
1494
  declare global {
1515
1495
  namespace JSX {
1516
1496
  interface IntrinsicElements {
1517
- 'gs-relative-growth-advantage': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1497
+ 'gs-wastewater-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1518
1498
  }
1519
1499
  }
1520
1500
  }
@@ -1522,7 +1502,11 @@ declare global {
1522
1502
 
1523
1503
  declare global {
1524
1504
  interface HTMLElementTagNameMap {
1525
- 'gs-aggregate': AggregateComponent;
1505
+ 'gs-date-range-selector': DateRangeSelectorComponent;
1506
+ }
1507
+ interface HTMLElementEventMap {
1508
+ 'gs-date-range-filter-changed': CustomEvent<Record<string, string>>;
1509
+ 'gs-date-range-option-changed': DateRangeOptionChangedEvent;
1526
1510
  }
1527
1511
  }
1528
1512
 
@@ -1530,7 +1514,7 @@ declare global {
1530
1514
  declare global {
1531
1515
  namespace JSX {
1532
1516
  interface IntrinsicElements {
1533
- 'gs-aggregate': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1517
+ 'gs-date-range-selector': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1534
1518
  }
1535
1519
  }
1536
1520
  }
@@ -1538,7 +1522,10 @@ declare global {
1538
1522
 
1539
1523
  declare global {
1540
1524
  interface HTMLElementTagNameMap {
1541
- 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1525
+ 'gs-text-input': TextInputComponent;
1526
+ }
1527
+ interface HTMLElementEventMap {
1528
+ 'gs-text-input-changed': TextInputChangedEvent;
1542
1529
  }
1543
1530
  }
1544
1531
 
@@ -1546,7 +1533,7 @@ declare global {
1546
1533
  declare global {
1547
1534
  namespace JSX {
1548
1535
  interface IntrinsicElements {
1549
- 'gs-number-sequences-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1536
+ 'gs-text-input': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1550
1537
  }
1551
1538
  }
1552
1539
  }
@@ -1554,7 +1541,10 @@ declare global {
1554
1541
 
1555
1542
  declare global {
1556
1543
  interface HTMLElementTagNameMap {
1557
- 'gs-mutations-over-time': MutationsOverTimeComponent;
1544
+ 'gs-location-filter': LocationFilterComponent;
1545
+ }
1546
+ interface HTMLElementEventMap {
1547
+ 'gs-location-changed': LocationChangedEvent;
1558
1548
  }
1559
1549
  }
1560
1550
 
@@ -1562,7 +1552,7 @@ declare global {
1562
1552
  declare global {
1563
1553
  namespace JSX {
1564
1554
  interface IntrinsicElements {
1565
- 'gs-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1555
+ 'gs-location-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1566
1556
  }
1567
1557
  }
1568
1558
  }
@@ -1570,7 +1560,10 @@ declare global {
1570
1560
 
1571
1561
  declare global {
1572
1562
  interface HTMLElementTagNameMap {
1573
- 'gs-sequences-by-location': SequencesByLocationComponent;
1563
+ 'gs-lineage-filter': LineageFilterComponent;
1564
+ }
1565
+ interface HTMLElementEventMap {
1566
+ 'gs-lineage-filter-changed': LineageFilterChangedEvent;
1574
1567
  }
1575
1568
  }
1576
1569
 
@@ -1578,7 +1571,7 @@ declare global {
1578
1571
  declare global {
1579
1572
  namespace JSX {
1580
1573
  interface IntrinsicElements {
1581
- 'gs-sequences-by-location': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1574
+ 'gs-lineage-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1582
1575
  }
1583
1576
  }
1584
1577
  }
@@ -1586,7 +1579,10 @@ declare global {
1586
1579
 
1587
1580
  declare global {
1588
1581
  interface HTMLElementTagNameMap {
1589
- 'gs-statistics': StatisticsComponent;
1582
+ 'gs-mutation-filter': MutationFilterComponent;
1583
+ }
1584
+ interface HTMLElementEventMap {
1585
+ 'gs-mutation-filter-changed': CustomEvent<MutationsFilter>;
1590
1586
  }
1591
1587
  }
1592
1588
 
@@ -1594,7 +1590,7 @@ declare global {
1594
1590
  declare global {
1595
1591
  namespace JSX {
1596
1592
  interface IntrinsicElements {
1597
- 'gs-statistics': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1593
+ 'gs-mutation-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1598
1594
  }
1599
1595
  }
1600
1596
  }
@@ -1554,6 +1554,15 @@ const ErrorBoundary = ({
1554
1554
  }) => {
1555
1555
  const [internalError, resetError] = b2();
1556
1556
  const componentPropsParseError = useCheckComponentProps(schema, componentProps);
1557
+ y(
1558
+ () => {
1559
+ if (internalError) {
1560
+ resetError();
1561
+ }
1562
+ },
1563
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- this should run if and only if the props of the component change
1564
+ [componentProps]
1565
+ );
1557
1566
  if (internalError) {
1558
1567
  return /* @__PURE__ */ u$1(ResizeContainer, { size, children: /* @__PURE__ */ u$1(ErrorDisplay, { error: internalError, resetError, layout }) });
1559
1568
  }
@@ -1581,14 +1590,14 @@ const Fullscreen = () => {
1581
1590
  "button",
1582
1591
  {
1583
1592
  ref: element,
1584
- onClick: async () => {
1593
+ onClick: () => {
1585
1594
  if (element.current) {
1586
1595
  if (isFullscreen) {
1587
- await document.exitFullscreen();
1596
+ void document.exitFullscreen();
1588
1597
  } else {
1589
1598
  const componentRoot = findComponentRoot(element.current);
1590
1599
  if (componentRoot) {
1591
- await componentRoot.requestFullscreen();
1600
+ void componentRoot.requestFullscreen();
1592
1601
  }
1593
1602
  }
1594
1603
  }
@@ -1666,7 +1675,7 @@ function useFloatingUi(referenceRef, floatingRef, middleware, placement) {
1666
1675
  const { current: reference } = referenceRef;
1667
1676
  const { current: floating } = floatingRef;
1668
1677
  const update = () => {
1669
- computePosition(reference, floating, {
1678
+ void computePosition(reference, floating, {
1670
1679
  placement,
1671
1680
  middleware
1672
1681
  }).then(({ x: x2, y: y2 }) => {
@@ -9557,7 +9566,7 @@ const MutationsOverTimeGrid = ({
9557
9566
  style: { gridRowStart: rowIndex + 2, gridColumnStart: 1 },
9558
9567
  children: /* @__PURE__ */ u$1(MutationCell, { mutation })
9559
9568
  },
9560
- `mutation-${mutation.toString()}`
9569
+ `mutation-${mutation.code}`
9561
9570
  ),
9562
9571
  dates.map((date, columnIndex) => {
9563
9572
  const value = data.get(mutation, date) ?? null;
@@ -9582,10 +9591,10 @@ const MutationsOverTimeGrid = ({
9582
9591
  }
9583
9592
  )
9584
9593
  },
9585
- `${mutation.toString()}-${date.toString()}`
9594
+ `${mutation.code}-${date.dateString}`
9586
9595
  );
9587
9596
  })
9588
- ] }, `fragment-${mutation.toString()}`);
9597
+ ] }, `fragment-${mutation.code}`);
9589
9598
  })
9590
9599
  ]
9591
9600
  }
@@ -9725,6 +9734,7 @@ const MutationsOverTimeInner = (componentProps) => {
9725
9734
  }, [granularity, lapis, lapisDateField, lapisFilter, sequenceType]);
9726
9735
  const { data, error, isLoading } = useWebWorker(
9727
9736
  messageToWorker,
9737
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
9728
9738
  WorkerWrapper
9729
9739
  );
9730
9740
  if (isLoading) {